Jump to content

Solucionado - Posición contenido central para el hook de un módulo


blittcer

Recommended Posts

Buenas a todos, estoy intentando poner un módulo (el man carousel) debajo justo del slideshow pero no sólo en el displayHome sino en todos y no encuentro la posición displayContent o algo así no se cual será para que salga en todas partes excluyendo el producto.

 

Debería quedar según la imagen adjunta...

post-532589-0-53376900-1373228024_thumb.jpg

Edited by blittcer (see edit history)
Link to comment
Share on other sites

En displayHome queda bien pero sólo se ven en Home evidentemente, pero en Top of pages creo que me sale al comienzo de todo no en el div de contenido y me sale encima de la columna izquierda y central...

Y quiero que se vea también como en el adjunto.

post-532589-0-50815400-1373232911_thumb.jpg

Link to comment
Share on other sites

En displayHome queda bien pero sólo se ven en Home evidentemente, pero en Top of pages creo que me sale al comienzo de todo no en el div de contenido y me sale encima de la columna izquierda y central...

Y quiero que se vea también como en el adjunto.

Entonces, vas a tener que crear un hook nuevo (pienso)

Link to comment
Share on other sites

Rubalcaba el paso "/override/classes/controller/FrontController.php" de la guía que me pasaste. No encuentro el archivo FrontController.php en esa carpeta sólo me sale el index.php (instalación Prestashop 1.5.4.1).

 

 

PD: Tengo también justo la versión anterior de Prestashop y tampoco aparecer el archivo FrontController.php

Edited by blittcer (see edit history)
Link to comment
Share on other sites

Rubalcaba el paso "/override/classes/controller/FrontController.php" de la guía que me pasaste. No encuentro el archivo FrontController.php en esa carpeta sólo me sale el index.php (instalación Prestashop 1.5.4.1).

 

 

PD: Tengo también justo la versión anterior de Prestashop y tampoco aparecer el archivo FrontController.php

 

Buenos dias a todos,

 

Lo que dice la guia que te ha pasado Rubalcaba, es que crees un "override" es decir, que crees el fichero que te menciona la guía "/override/classes/controller/FrontController.php", esto evitara el modificar directamente el fichero base:

 

/classes/controller/FrontController.php

 

 

 

PD: Tengo también justo la versión anterior de Prestashop y tampoco aparecer el archivo FrontController.php

 

¿Versión anterior?

 

¿A que version te refieres?

  • Like 1
Link to comment
Share on other sites

Buenos días / Buenas noches,

 

Si pero donde está ese fichero base? o lo creo tal y como pone en la guía¿?

 

 

La versión que me refería es una 1.5.4.0 que también tenía instalada... pero bueno veo que no tiene nada que ver con la versión al parecer. (lo decía como el tutorial era para la 1.5.)

Edited by blittcer (see edit history)
Link to comment
Share on other sites

Buenos días / Buenas noches,

 

Si pero donde está ese fichero base? o lo creo tal y como pone en la guía¿?

 

El fichero base esta aqui:

 

/classes/controller/FrontController.php

 

y el override para este controlador en especifico se crea aqui: (crea directamente el override, el original no lo toques)

 

/override/classes/controller/

 

(fijate que son dos rutas distintas)

  • Like 1
Link to comment
Share on other sites

Vale ok, que es mejor que copie el FrontController.php y lo sobrecargue en "override" al completo añadiendo la línea que pide ahí. O solo añado la función initContent() que es la que vamos a sobrecargar. en el nuevo FrontController.php de "override.

Link to comment
Share on other sites

Vale ok, que es mejor que copie el FrontController.php y lo sobrecargue en "override" al completo añadiendo la línea que pide ahí. O solo añado la función initContent() que es la que vamos a sobrecargar. en el nuevo FrontController.php de "override.

Solo lo que dice la guía, es simplemente un override, no tienes porque copiar todo el contenido del fichero base, solo que vayas hacer.

  • Like 1
Link to comment
Share on other sites

Bueno hice la segunda opción, sobrecargue el método initContent() con el archivo FrontController.php en la "ruta de override".

Después el modulo Man Carousel, lo modifique para añadirle el displayContentCenter que fue el nuevo hook que yo cree, bastante coñazo porque tenía varias cosas que modificar espero haberlo hecho bien, no era nada sencillo de una línea como el módulo de ejemplo de la guía jajaja, pero nada al parecer todo funciona perfecto incluso me dejo añadirle el hook al man carousel se muestra y todo, pero claro se muestra en el footer... y aquí llega mi cuestión.

 

EN TODO LO QUE HE MODIFICADO... no he visto nada que indique la posición en si del hook jajajaja eso me imagino se deberá tocar en el theme o algo?

Link to comment
Share on other sites

Por cierto, no hace falta tanto follon para crear un nuevo hook en Prestashop 1.5 xDDDDDDDD (Ahora que me he puesto a leer el articulo he flipado xD)

 

Te digo como crear un nuevo hook con el modulo bloque de publicidad y tu ya lo aplicas esa modificacion donde quieras.

 

Vas al fichero:

 

/modules/blockadvertising/blockadvertising.php

 

Buscas esto:

 

 return (parent::install() && $this->registerHook('leftColumn'));

 

Y lo dejas asi:

 

 return (parent::install() && $this->registerHook('leftColumn') && $this->registerHook('DisplayNadie'));

 

(Al volver a instalar el modulo, el te va a crear el hookDisplayNadie automaticamente. (Esto antes no lo hacia, pero en Prestashop 1.5, te lo crea automaticamente)

 

Despues, por ejemplo creas la funcion:

 

public function hookDisplayNadie($params)
{
	   return $this->hookRightColumn($params);

}

 

En este caso indico lo que en la función hookRightColumn se muestre, se mostrara en el hookDisplayNadie

 

Luego en el fichero/s ".tpl" donde vayas a mostrar el modulo:

 

Añades esto:

 

{hook h='DisplayNadie'}

 

(En la 1.5, no es necesario añadir nada en la base de datos manualmente, porque automáticamente el te registra el nuevo hook)

  • Like 3
Link to comment
Share on other sites

Vale pues mirando info si debería añadirlo así en el header.tpl

<div id="center_column" class=" grid_5">
{$HOOK_CONTENT_CENTER}

y yo en el FrontController.php había puesto está línea:

<div id="center_column" class=" grid_5">

'HOOK_CONTENT_CENTER' => Hook::exec('displayContentCenter'),

no se si sería mejor está o ya es liarla demasiado y ese no es el problema...

'HOOK_CONTENT_CENTER' => ($this->display_column_center ? Hook::exec('displayContentCenter') : ''),

 

El Man Carousel se me sigue mostrando en el FOOTER tras la aplicación del HOOK en el header.tpl por lo que creo que el error puede estar en el archivo mancarousel.php que modifique, pero viendo que en "Posiciones de módulos" si aparece bien en el displayContentCenter me extraña que sea eso....

Edited by blittcer (see edit history)
Link to comment
Share on other sites

Olvidate de todo lo que te he dicho, menos de mi penultimo mensaje:

 

Por cierto, no hace falta tanto follon para crear un nuevo hook en Prestashop 1.5 xDDDDDDDD (Ahora que me he puesto a leer el articulo he flipado xD)

 

Te digo como crear un nuevo hook con el modulo bloque de publicidad y tu ya lo aplicas esa modificacion donde quieras.

 

Vas al fichero:

 

/modules/blockadvertising/blockadvertising.php

 

Buscas esto:

 

 return (parent::install() && $this->registerHook('leftColumn'));

 

Y lo dejas asi:

 

 return (parent::install() && $this->registerHook('leftColumn') && $this->registerHook('DisplayNadie'));

 

(Al volver a instalar el modulo, el te va a crear el hookDisplayNadie automaticamente. (Esto antes no lo hacia, pero en Prestashop 1.5, te lo crea automaticamente)

 

Despues, por ejemplo creas la funcion:

 

public function hookDisplayNadie($params)
{
	   return $this->hookRightColumn($params);

}

 

En este caso indico lo que en la función hookRightColumn se muestre, se mostrara en el hookDisplayNadie

 

Luego en el fichero/s ".tpl" donde vayas a mostrar el modulo:

 

Añades esto:

 

{hook h='DisplayNadie'}

 

(En la 1.5, no es necesario añadir nada en la base de datos manualmente, porque automáticamente el te registra el nuevo hook)

 

Ahora el:

 

{hook h='DisplayNadie'}

 

agregalo, por ejemplo en el fichero:

 

category.tpl

 

product.tpl

 

etc..

 

etc..

 

en las zona concretas..

Link to comment
Share on other sites

¿Por que digo añadirlo en el category.tpl?

 

Porque en la imagen adjuntas aqui:

 

deberiaquedar2.jpg

 

No hay otra opción.

 

Otra cosa es que lo quisieras justo al principio de la parte central, entonces el:

 

{hook h='DisplayNadie'}

 

lo añadirias en el

 

/themes/tu-plantilla/header.tpl

 

asi:

 

<div id="center_column" class=" grid_5">
{if $page_name!='index'} {hook h='hookDisplayNadie'}{/if} (Lo de {if $page_name!='index'} para no mezclarlo con la pagina principal)

 

De esa manera, menos en la pagina principal en el resto se vera al principio de la parte central.

Link to comment
Share on other sites

Vale, bueno he probado a meter un {$HOOK_CONTENT_CENTER} en el category.tpl después del div que quería y nada no se ve,

 

1º) no se que habré hecho mal, hice todo bien sólo que lo muestra en el FOOTER... si no hay más remedio cojo y elimino todos los pasos hechos y lo hago de la forma que me has explicado.

 

2º) Lo que no entiendo de tu forma es esto:

public function hookDisplayNadie($params) {
return $this->hookRightColumn($params);
}

¿Para que haces esto? para que quieres que el hook ese devuelva el hook de la columna derecha?

 

PD: NO ESTÁS SÓLO AMIGO! estoy aquí lo que estaba reflexionando lo que estaba haciendo, y también tengo una pizza en el horno JAJAJA

Edited by blittcer (see edit history)
Link to comment
Share on other sites

Ok, entonces muchas gracias, eliminaré todo lo hecho con la anterior forma y lo haré de tu forma, ya te aviso cuando lo termine o si tengo alguna duda. Un saludo y muchas gracias eres un CRACK!!

Estare todo la noche esperando :)

 

Si quieres bajate team viewer y lo hacemos mas rapido )

  • Like 1
Link to comment
Share on other sites

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