Cómo crear un módulo de Prestashop (2/X)
Una vez visto cómo hacer que prestashop liste nuestro módulo(parte 1), vamos a hacer que también lo muestre en el frontOffice.
Para ello, necesitamos definir unas funciones para su instalación y desinstalación, y como mÃnimo una función de anclaje a un hook.
Un hook es una zona definida en prestashop cómo recipiente para anclar en ella diferentes módulos, tenemos por ejemplo el HOOK LEFT COLUMN qué representa la columna izquierda de la página, el HOOK RIGHT COLUMN que representa la columna derecha, el HOOK HEADER para la cabecera y el HOOK FOOTER para el pie de página. Existen muchos más ( e incluso podrÃamos definir los nuestros propios), pero no nos interesa conocerlos todos para éste ejemplo.
En nuestro ejemplo, vamos a asociar el módulo al left column, por lo tanto nuestra función quedarÃa asÃ:
<!--?php Class testModule extends Module{ function __construct(){ $this--->name = 'testmodule';
$this->displayName = 'testModule';
$this->tab = 'Blocks';
$this->version = 1.0;
$this->confirmUninstall = $this->l('Do you wish to uninstall testModule?');
$this->description = $this->l('Example Module, it does nothing by the time');
}
function install(){
if(parent::install() == false OR !$this->registerHook('leftColumn')){
return false;
}else{
return true;
}
}
public function uninstall(){
if (parent::uninstall()== false){
return false;
}else{
return true;
}
}
function hookLeftColumn($params){
return $this->display(__FILE__, 'testModule.tpl');
}
}
?>
Con ésto le estamos asignando el hook de la columna izquierda y le estamos diciendo que muestre ahà la plantilla Smarty de nuestro módulo, que es el “testModule.tpl”
En la función install le estamos diciendo que si el instalador del parent falla o no existe el hook Left Column devuelva un error. En la de uninstall tan sólo comprobamos que el método uninstall del parent no devuelva un error.
Una vez hecho eso, crearemos el fichero que se encargará de la presentación de datos (vista), que en nuestro caso será el archivo “testModule.tpl”
<!-- Block testModule -->
<!-- @import url({$base_dir}modules/testModule/css/testModule.css); -->
<div id="testModule_block_left" class="block">
<h4>{l s='testModule Block' mod='testModule'}</h4>
<div class="block_content">
<ul>
<li>
{l s='New functions' mod='testModule'}</li>
</ul>
</div>
</div>
<!-- /Block testModule -->
De éste ejemplo básico sólo cabe destacar el uso de la función de Prestashop {l s=” [mod='']} la cual nos ayuda a la hora de internacionalizar nuestro módulo.
Le pasaremos el literal a traducir s=’mi texto a traducir’ y cómo parámetro opcional el módulo al que pertenece la traducción mod=’testModule’. Con ésto, Prestashop se encargará de listar nuestro literal en la correspondiente pestaña del backOffice para que podamos escribir una traducción manual correspondiente al literal, o en caso de dejarla vacÃa utilizar el literal escrito en el parámetro s=”.
Una vez realizada la plantilla Smarty (.tpl) que mostrará los datos, ya podemos dirigirnos al backOffice de nuestra tienda y pulsar el botón Instalar de nuestro módulo en la pestaña de módulos. Tras ello, podremos ver en el frontOffice cómo nuestro módulo se encuentra anclado en el hook que le hemos especificado.
Llegados a éste punto ya tenemos preparado un módulo base que se instala y muestra un bloque con un tÃtulo y una descripción en el frontOffice. Pero, ¿y sà queremos que muestre datos útiles?, ¿o incluso que sea configurable desde el backOffice?
Pues tódo eso lo veremos en la siguiente entrega. Estád atentos.

(11 votes, average: 9,36 out of 10)

Pingback: Cómo crear un módulo de Prestashop (1/X) : Init Developers