Jump to content

Error al modificar un modulo slider para hacer que aparezca en el Hook Top


Recommended Posts

Buenas,

 

Es mi primera incursión en este foro aunque ya he leído mucho para resolver dudas anteriores. Gracias ya de primeras por ello. :)

 

Soy novato en Prestashop, tengo un poquito de experiencia en oscommerce (sin comentarios) y me he animado a montar una tienda online con Prestashop. También tengo conocimientos "básicos ampliados" de php y mysql, por lo que cualquier respuesta será de gran ayuda.

 

En mi futura tienda he instalado un tema gratuito y en dicho tema hay un espacio dentro de la cabecera de la tienda, debajo del título y del menú horizontal, donde el creador del tema puso su bloque de nuevos productos.

 

Yo quiero usar ese espacio para poner en lugar de los nuevos productos un slider. De todos los sliders que he visto me he descargado la versión gratuito de uno creado por XMLSWF.com llamado Blaze porque es el que encaja mejor con lo que busco. Resulta que este slider ha sido diseñado para trabajar en el Hook Homepage y no en el Top que es donde yo lo quiero. Cuando intento trasladarlo allí a través del Back no me deja, así que me he animado, tras documentarme, a modificarle un poco el código.

 

He añadido la linea de:

 

if (!parent::install() ||
  !$this->registerHook('top') ||

 

 

Y más abajo:

 

/** HOOK TOP: AÑADIDO POR MI */
function hookTop($params)
{
 return $this->hookHome($params);
}

 

Al entrar en el Back e ir a Módulos me sale el error:

 

Parse error

: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in

/homepages/11/d312281359/htdocs/tienda-kite/classes/Module.php(581) : eval()'d code

on line

797

 

The following module(s) couldn't be loaded:

  • pssxmlswf_blazeslideshow (parse error in /modules/pssxmlswf_blazeslideshow/pssxmlswf_blazeslideshow.php)
  • pssxmlswf_blazeslideshow (class missing in /modules/pssxmlswf_blazeslideshow/pssxmlswf_blazeslideshow.php)

 

Y buscando en la línea 581 de Module.php veo que se trata de un IF que dice:

 

if (eval('if (false){ '.$file.' }') !== false)
  require_once( _PS_MODULE_DIR_.$module.'/'.$module.'.php' );
 else
  $errors[] = sprintf(Tools::displayError('%1$s (parse error in %2$s)'), $module,
substr($filepath, strlen(_PS_ROOT_DIR_)));

 

Yo sigo dándole vueltas y pensando en que me he equivocado, pero no llego a tanto... No soy un crack como los que hay en este foro, por eso os pido ayuda :D y lo intento hacer de la forma más precisa que sé.

 

Saludos y gracias!

Link to comment
Share on other sites

Buenas,

 

Es mi primera incursión en este foro aunque ya he leído mucho para resolver dudas anteriores. Gracias ya de primeras por ello. :)

 

Soy novato en Prestashop, tengo un poquito de experiencia en oscommerce (sin comentarios) y me he animado a montar una tienda online con Prestashop. También tengo conocimientos "básicos ampliados" de php y mysql, por lo que cualquier respuesta será de gran ayuda.

 

En mi futura tienda he instalado un tema gratuito y en dicho tema hay un espacio dentro de la cabecera de la tienda, debajo del título y del menú horizontal, donde el creador del tema puso su bloque de nuevos productos.

 

Yo quiero usar ese espacio para poner en lugar de los nuevos productos un slider. De todos los sliders que he visto me he descargado la versión gratuito de uno creado por XMLSWF.com llamado Blaze porque es el que encaja mejor con lo que busco. Resulta que este slider ha sido diseñado para trabajar en el Hook Homepage y no en el Top que es donde yo lo quiero. Cuando intento trasladarlo allí a través del Back no me deja, así que me he animado, tras documentarme, a modificarle un poco el código.

 

He añadido la linea de:

 

if (!parent::install() ||
  !$this->registerHook('top') ||

 

 

Y más abajo:

 

/** HOOK TOP: AÑADIDO POR MI */
function hookTop($params)
{
 return $this->hookHome($params);
}

 

Al entrar en el Back e ir a Módulos me sale el error:

 

Parse error

: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in

/homepages/11/d312281359/htdocs/tienda-kite/classes/Module.php(581) : eval()'d code

 

on line

797

 

 

 

The following module(s) couldn't be loaded:

  • pssxmlswf_blazeslideshow (parse error in /modules/pssxmlswf_blazeslideshow/pssxmlswf_blazeslideshow.php)
  • pssxmlswf_blazeslideshow (class missing in /modules/pssxmlswf_blazeslideshow/pssxmlswf_blazeslideshow.php)

Y buscando en la línea 581 de Module.php veo que se trata de un IF que dice:

 

if (eval('if (false){ '.$file.' }') !== false)
  require_once( _PS_MODULE_DIR_.$module.'/'.$module.'.php' );
 else
  $errors[] = sprintf(Tools::displayError('%1$s (parse error in %2$s)'), $module,
substr($filepath, strlen(_PS_ROOT_DIR_)));

 

Yo sigo dándole vueltas y pensando en que me he equivocado, pero no llego a tanto... No soy un crack como los que hay en este foro, por eso os pido ayuda :D y lo intento hacer de la forma más precisa que sé.

 

Saludos y gracias!

El problema lo tienes, no con module.php (eso fuera D, olvidate de eso) lo tienes con el modulo que has retocado, sube el fichero entero el principal del modulo que estas tocando, por que algo te has dejado.

 

Un saludo,

Link to comment
Share on other sites

Bravo! Funciona! Un millón de gracias. Pero lo bonito es aprender, no que te hagan el trabajo los demás. ¿Me puedes explicar un poquito que has hecho, por favor?

 

Ahora tengo que recolocarlo un poco ya que se me sube hasta arriba del todo de la página, quedando curiosamente en un segundo plano por detrás de los módulos de menú horizontal, moneda, idioma y login.

 

Imagino que para solucionar eso solo debo estudiar el css del módulo que había por defecto en este tema (el nuevos productos) y encontrar los parámetros de margen, no?

Link to comment
Share on other sites

Imagino que para solucionar eso solo debo estudiar el css del módulo que había por defecto en este tema (el nuevos productos) y encontrar los parámetros de margen, no?

 

 

Si ahora, te tocara tocar el css correspondiente, para dejarlo en condiciones.

 

Un saludo,

Link to comment
Share on other sites

Una pregunta Víctor. Al instalar un módulo ¿se escribe su información (php, css) en otro lado de la estructura y luego la carga de allí?

 

Lo digo porque, aunque tengo desactivado aquello de la caché para cuando se desarrolla, parece que esté atrapado en algo muy tonto. Yo he eliminado la referencia que tenía este modulo hacia su hoja de estilos y cuando subo los cambios y debugo con Chrome veo como sigue referenciándose hacia la hoja de estilos. ¿De donde saca la referencia? Si no la encuentro en los tpl ni php originales del módulo!

 

Saludos

Link to comment
Share on other sites

Una pregunta Víctor. Al instalar un módulo ¿se escribe su información (php, css) en otro lado de la estructura y luego la carga de allí?

 

Lo digo porque, aunque tengo desactivado aquello de la caché para cuando se desarrolla, parece que esté atrapado en algo muy tonto. Yo he eliminado la referencia que tenía este modulo hacia su hoja de estilos y cuando subo los cambios y debugo con Chrome veo como sigue referenciándose hacia la hoja de estilos. ¿De donde saca la referencia? Si no la encuentro en los tpl ni php originales del módulo!

 

Saludos

 

En la pestaña Preferencias/Rendimiento que opciones tienes marcadas actualmente?

 

Saludos,

Link to comment
Share on other sites

Editar css lo tendrias que hacer sin problema, tal como lo tienes ahora. (es mas ante lo has echo)

Ahora para editar *.tpls si quieres ver los cambios debes decir que si fuerze la compilacion.

 

Ahí estaba mi error!! En este módulo no se porque la hoja de estilos la llama desde el tpl (esto no se si es muy normal) y no desde el php. Yo modificaba el tpl y luego no veía ningún cambio y me tire 2 horas dándole vueltas como un tonto.

 

Gracias Víctor.

Link to comment
Share on other sites

Ahí estaba mi error!! En este módulo no se porque la hoja de estilos la llama desde el tpl (esto no se si es muy normal) y no desde el php. Yo modificaba el tpl y luego no veía ningún cambio y me tire 2 horas dándole vueltas como un tonto.

 

Gracias Víctor.

Me alegro de que hayas podido resolver el problema.

 

Un saludo, y recuerda que estaremos por el foro para guiarte por este mundo lleno de oscuridad y tinieblas.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...