Prestafan33 Posted August 21, 2020 Share Posted August 21, 2020 (edited) Tengo una duda a la hora de mostrar las vistas desde un módulo anclado en un hook determinado: Resulta que los hooks de display, como normalmente van en las plantillas del tema, a veces no están situados exactamente donde queremos mostrar la vista de un módulo. Me explico mejor con un ejemplo: Esta es la template (simplificada) de catalog/listing/product-list.tpl: {block name='content'} <section id="main"> {block name='product_list_header'} <h2 class="h2">{$listing.label}</h2> {/block} <section id="products"> [....] </section> {hook h="displayFooterCategory"} </section> {/block} El único hook que puedo usar en este caso es "displayFooterCategory", pero si yo quiero mostrar algo ANTES de los productos en vez de después, que es donde está situado el hook.... ¿sería posible usar los bloques de la plantilla para ello, o estoy diciendo una tontería? Es decir, en la vista de mi módulo (que estaría anclado en el hook dispplayFooterCategory), poner algo como esto: {block name='product_list_header' append} <p>Contenido a mostrar antes de los productos</p> {/block} Lo he probado, pero no funciona. Muestra el contenido donde está el hook (al final), y no donde iría el bloque (al principio), pero no sé si se puede hacer de algún modo. O si a alguien se le ocurre la forma de mover el contenido a otro sitio diferente de donde está colocado el hook. Aclaro que lo de modificar la template para añadir un hook personalizado o una llamada al módulo como widget no es una opción en este caso, pues pretendo hacer algo que no requiera tener que modificar las plantillas del tema manualmente. Edited August 21, 2020 by Prestafan33 (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted August 21, 2020 Share Posted August 21, 2020 En determinados casos lo mejor, o al menos lo más practico, es mover el contenido con js Link to comment Share on other sites More sharing options...
Prestafan33 Posted August 21, 2020 Author Share Posted August 21, 2020 4 minutes ago, ventura said: En determinados casos lo mejor, o al menos lo más practico, es mover el contenido con js Gracias por la respuesta, @ventura ¿Aparte de la solución JavaScript, no hay entonces un método "previsto" en las vistas para mostrar el contenido en otra posición distinta de aquella desde la que se ejecuta el hook en la plantilla? Link to comment Share on other sites More sharing options...
Adrián de Grafreak Posted August 24, 2020 Share Posted August 24, 2020 Buenas, Yo tengo entendido que debes cargar otra plantilla poniendo en primera linea {extends file='catalog/listing/product-list.tpl'} y entonces dentro de ese fichero podrías hacer override de cualquiera de los bloques {block name='product_list_header' append} <p>Contenido a mostrar antes de los productos</p> {/block} Pero debes asegurarte por el controlador (haciendo un override) que se carga el nuevo fichero del plugin y no el del tema. Salut! Link to comment Share on other sites More sharing options...
Prestafan33 Posted August 24, 2020 Author Share Posted August 24, 2020 Gracias, Adrián por la respuesta. La verdad es que esa opción ya la intenté y me daba error, pero claro, no había hecho lo que comentas al final de hacer un override del controlador para que cargue la vista desde el módulo. Voy a hacer alguna prueba, aunque tampoco me gusta demasiado tener que hacer override de los controladores, más que nada por el conflicto que puede suponer si ya se tienen en uso otros módulos que también hagan override de los mismos controladores. Link to comment Share on other sites More sharing options...
Adrián de Grafreak Posted August 24, 2020 Share Posted August 24, 2020 Ese es uno de los mayores problemas, por eso el Override debe ser "limpio", hacerle el class controller extends controllerBase y tocar solo lo que necesitas y entonces hacer el parent:function() Espero que te funcione. Salut! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now