Estos últimos días hemos estado trabajando con el componente Auction Factory, un componente para Joomla que sirve para crear tu propio sitio web de subastas online (tipo ebay). Este componente utiliza una serie de plantillas desarrolladas con el motor de plantillas Smarty, por ejemplo para ver el listado de pujas tenemos unos archivos .tpl con el código de Smarty. En nuestro caso necesitabamos cargar una posición de módulo dentro de la ficha de detalle de una puja y os vamos a contar como lo hicimos.
Para cargar un módulo dentro de un artículo de Joomla se puede realizar utilizando un plugin de sistema llamado Content - Load Module, que viene instalado de serie con Joomla, pero no activado por defecto. A la hora de trabajar con plantillas Smarty parece que este método no es válido para cargar un módulo dentro una plantilla de Smarty. Nosotros lo probamos de varias formas distintas y no hemos conseguimos que funcionase. Por eso vamos a enseñaros una forma alternativa de hacerlo. Por favor si conocéis como hacerlo desde Smarty, dejadnos un comentario en el artículo que siempre es bueno aprender a hacerlo de la forma correcta.
La opción que nosotros empleamos fue hacer uso de las etiquetas {php} de Smarty para poder ejecutar código php dentro de la plantilla y así poder renderizar el módulo. Os dejo a continuación el código:
{php} $document = JFactory::getDocument(); $renderer = $document->loadRenderer('modules'); $position = "miposicion"; $options = array('style' => 'raw'); echo $renderer->render($position, $options, null); {/php}