prestashop4

Cómo crear un módulo de Prestashop (2/X)

1 Star2 Stars3 Stars4 Stars5 Stars6 Stars7 Stars8 Stars9 Stars10 Stars (11 votes, average: 9,36 out of 10)
Loading ... Loading ...

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.

Hooks en prestashop

Hooks en prestashop

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.

Nuestro módulo en el frontOffice

Nuestro módulo en el frontOffice

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.

  • http://www.incomodasverdades.tk ggaray

    Jo, pedazo de firma…

  • Jon

    Habrá que dedicarle algo de tiempo a esto del Prestashop un día de estos..felicidades

  • http://carpena.eu Félix

    Gracias. Espero pronto la tercera parte ;)

  • http://no CARLOS

    Para cuando la 3ª entrega?

  • ruth

    Por favor haz un pequeno tuto que muestre información en el nuevo modulo.
    Todos los principiantes te lo agradeceremos.
    Saludos y gracias por los dos anteriores, me han resultado bien utiles.

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

  • Edgardo Martinez

    Mil gracias por el aporte, ya podemos empezar, como seria para insertar codigo HTML o API,especificamente de sistemas de pago adicionales a paypal (payza, skrill, 2chechout) gracias