Banner

Ultima revisión 05/05/2013

Cómo sacar el slider de Prestashop de la columna central

Hoy, en este tutorial vamos a aprender cómo extraer el módulo HomeSlider de PrestaShop de la columna central a la zona de la cabecera. Por defecto, este módulo no puede ser movido o trasplantado fuera de la columna central. Sin embargo, es más simple y fácil de lo que parece a primera vista.

prestashop_image

Probablemente, cuando se trata de hacer este cambio, a la fuerza bruta, se muestre este error:

Entonces ¿ Cómo modificar el módulo homeslider ?. Lo primero es abrir el archivo homeslider.php que está localizado en la carpeta modules/homeslider del directorio raíz de nuestro prestashop, pegamos justo encima de la función hookDisplayHome el siguiente código y guardamos el archivo.

public function hookdisplayTop(){
    if(!$this->_prepareHook())
    return;
 
    if ($this->context->getMobileDevice() != false)
    return false;
 
    $this->context->controller->addJS($this->_path.'js/jquery.bxSlider.min.js');
    $this->context->controller->addCSS($this->_path.'bx_styles.css');
    $this->context->controller->addJS($this->_path.'js/homeslider.js');
    return $this->display(__FILE__, 'homeslider.tpl');
}

Con esta función, que es idéntica a la función hookdisplayHome(), sólo preparamos a Prestashop para que cuando cambiemos la posición lo muestre.

Ahora tenemos que decir a Prestasho que el HomeSlider ya no pertenezca a la columna central sino a la cabecera. Para ello, desde phpMyAdmin o MySQL Workbench editamos la base de datos.

NOTA: El prefijo ps_ debéis sustituirlo por el prefijo de las tablas de vuestro Prestashop.

Ejecutamos la siguiente consulta para saber ´donde tocar:

SELECT hm.*  
 FROM `ps_hook_module` hm, `ps_module` m, `ps_hook` h 
WHERE hm.`id_module` = m.`id_module` 
  AND h.id_hook = hm.id_hook
  AND m.`name` LIKE '%homeslide%'
  AND h.name LIKE '%displayHome%'

Esta consulta nos devolvera un registro que será parecido, si no igual, a :

id_module id_shop id_hook position
39 1 8 1

Ahora consultamos el ID del Hook dónde lo queremos insertar, en este caso el TOP o header.

SELECT id_hook FROM `ps_hook` WHERE `name` LIKE 'displayTop';

Esta consulta nos devolverá el ID del hook de displayTop que, en nuestro caso, es 14. Y, ahora, finalmente editamos el registro anterior y le asignamos los valores nuevos:

UPDATE  `hd_hook_module` SET id_hook = 14, position = 10 WHERE  `id_module` = 39 AND id_hook = 8;

Recordad que los valores anteriores 14, 39 y 8 pueden ser distintos y que debésis cambiarlos por los vuestros si procede.

El motivo de establecer el campo position a 10 es para que se establezca como último elemento del hook, es decir, debajo del menu de navegación principal.

Ahora sólo queda que cambiéis los anchos, altos y demás estilos, lo que podéis hacer en el archivo bx_styles.css localizado en el mismo directorio del homeslider.php.