Jump to content

Creacion de modulos


Recommended Posts

Buenas.

He creado un modulo en el que quiero meter texto, quiero posicionar lo en categorías en la parte inferior, pero no encuentro el hook he probado  instalándolo en el home('displayHome') o en la columna de la izquierda('leftColumn') y en estos dos hook va perfecto pero, en los otros en los que he intentando posicionar lo no funciona.

He probado con algunos hook que he sacado de https://devdocs.prestashop.com/1.7/modules/concepts/hooks/list-of-hooks/

Hooks en los que he probado:

displayBeforeBodyClosingTag

displayProductExtraContent

Alguien me ayuda? saludos y gracias

image.thumb.png.b2484f921500fe3eb2c5992eb080a278.png

 

Link to comment
Share on other sites

Añade un hook personalizado, ve al fichero de categorias .tpl y añade el hook personalizado

Info sobre custom hooks

https://devdocs.prestashop.com/1.7/modules/concepts/hooks/

https://belvg.com/blog/creating-custom-hooks-in-prestashop-1-7.html

 

Por cierto ya existe un modulo que supongo que hace lo que quieres

 

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

Muchas gracias por la ayuda.

Te comento ya que sigo atrancado en la misma situación.

He creado un hook(displayMyHook), en el backoffice de prestashop me sale como reconocido, pero no se si he hecho bien la parte de añadir el hook  a el archivo de categorías que es donde quiero que se vea. 

he insertado el hook :  {hook h='displayMyHook'}

en el archivo themes\classic\templates\catalog\listing

y también en themes\classic\templates\catalog\_partials

pero no lo visualizo en la tienda.

Link to comment
Share on other sites

supongo que has añadido el hook en el install del modulo

$this->registerHook('displayRelatedName')

y luego has añadido la función

public function hookDisplayRelatedName()
    {
        $hook = Configuration::get('RELATEDBYNAME_HOOKER');
        if($hook == 'displayRelatedName'){
            return self::listado();
        }
    }

enviando la información al tpl del modulo

$this->context->smarty->assign('porlinea', $porlinea);
			return $this->context->smarty->fetch(dirname(__FILE__).'/views/templates/hook/related.tpl');

y finalmente añadiendo el hook donde quieres que se muestre , yo indico ademas el modulo que usa ese hook


{hook h="displayRelatedName" mod="relatedbyname"}

 

Link to comment
Share on other sites

Buenas muchas gracias por la ayuda.

El problema que tenia era sobre todo en la búsqueda del fichero tpl , en el que tenia que llamar al hook,  ya lo tengo donde quería ahora el problema que me surge es que, quiero crear un texto personalizado para cada categoria especifica, pero ahora mismo el modulo se ve en todas las categorias, me gustaria saber si prestashop te genera un tpl para cada categoria que creas, o si sabes como puedo solucionar el problema, de nuevo muchas gracias por la ayuda.

El archivo desde donde llamo al hook es : themes\Electrify\templates\catalog\_partials

Aquí es donde he colocado el modulo justo debajo de los productos.

image.thumb.png.f20ee24aa98312a592ea8b9c56017d1e.png

Link to comment
Share on other sites

Yo lo haría asi...

Debes añadir una tabla en la base de datos. Con campos , id, id_category , texto, esos como minimo

Añade un controller al módulo , que muestre los datos de esa tabla. Recuerda añadir al menú el enlace

Añade una class para que puedas editar , añadir y eliminar información a la tabla 

En el código del módulo que llamas al tpl, haz un select a esa tabla con el Id de la categoría y que lea el texto ,añade ese texto a una variable y con smart haz que se muestre .

Estoy fuera y no puedo ponerte ejemplos de codigo

También podrías añadir la tabla, leer las categorías y añadirlas a la tabla.

En la página de configuración añadir el listado y el texto para cada categoría.

Prefiero la primera opción

 

Link to comment
Share on other sites

Buenas lo primero decir a  gusman126  que te agradezco muchísimo tu ayuda.

Decirte que en el tema de desarrollo estoy bastante verde, he creado el modulo, el hook personalizado, ahora  siguiendo tu ultimo post he creado un controller del modulo, bueno lo he intentado por que no sabia como hacerlo y he ido siguiendo los pasos según he visto en el blog de prestashop.  Pero la verdad que no se bien como hacer la consulta a la base de datos y a la tabla que he creado, imagino que sera con un: getValue(' ').

Si puedes explicarme el procedimiento mas detalladamente te lo agradeceria, los novatos como yo aprendemos gracias a gente que se implica en el foro como tu gracias.

Aqui el controller que he creado, es lo basico ya que no se que mas poner.

image.png.77068e75e385d7a1f45da0c67fd2a881.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...