Creando un modulo para Prestashop

En esta pequena entrada veremos como crear un modulo sencillo para prestashop, un sistema de tienda Virtual semejante a Oscommerce. Al decir modulo me refiero a uno de los bloques que pueden verse en la primera pagina.

Ejemplo:

ejemplo_de_modulos_prestashop

El ejemplo que veremos sera bastante sencillo, crearemos una carpeta con el nombre “hellototheworld” y dentro de ella crearemos dos archivos:
hellototheworld.php y hellototheworld.tpl (tambien podemos crear un tercer archivo “logo.gif” de 17px X 17px para verlo en el panel de administracion Prestashop)

Cabe mencionar que el archivo php es donde se almacena el controlador Smarty pues estos modulos siguen una arquitectura MVC y el archivo tpl es la vista (la V de MVC para los que no lo sepan).

Bueno, vayamos directo a nuestro ejemplo:

hellototheworld.php

<?php


class
hellototheworld extends Module

{

function __construct()

{

$this->name = ‘hellototheworld‘;

$this->tab = ‘Blocks’; // esto sirve para especificar el grupo dentro de modulos
$this->version = 0.1;
// la version de nuestro modulo


$this->page = basename(__FILE__, ‘.php’);
//ubicamos la ruta hacia nuestro archivo

$this->displayName = $this->l(‘Hola Mundo’);
// este es el nombreque veremos en el panel de administracion para nuestro modulo
$this->description = $this->l(‘Esta es solo una simple descripcion de nuestro modulo 馃檪 ‘);

}


// funcion para instalar el modulo, esta sera usada cuando seleccionemos nuestro modulo y lo instalemos haciendo clic en el boton destinado para este proposito en el CP
function install()

{

if (!parent::install())

return false;

if (!$this->registerHook(‘rightColumn’) OR !$this->registerHook(‘leftColumn’))

return false;

return true;

}

//este metodo carga el template que creamos: hellototheworld.tpl
function hookRightColumn($params)

{

global $smarty;

return $this->display(__FILE__, ‘hellototheworld.tpl‘);

}

//este metodo copia el funcionamiento del anterior
function hookLeftColumn($params)

{

return $this->hookRightColumn($params);

}


}

?>

El siguiente archivo es:
hellototheworld.tpl

<div class=”block” >
<h4>Hola Mundo!</h4>
<div class=”block_content”>
<p>Hola Mundo soy un bloque nuevo y albergo un parrafo, aunque tambien podria almacenar
imagenes, ficheros flash, y archivos generados dinamicamente generados por nuestro
hellototheworld.php, pero esto no lo veremos en este pequeno tutorial
</div>
</div>

Como podemos ver existen dos clases CSS: “block” y “block_content”, estas son las que haran que nuestro modulo se vea muy parecido a los otros, quiero decir, con la misma cabecera y tipo de letra para el titulo, todo lo demas es configurable, tu puedes crear tus propias hojas de estilos sin problemas.

Despues de esto, ya estamos preparados para empaquetar nuestro modulo e instalarlo, para este fin empaquetaremos la carpeta completa en el formato .tar (no .tar.gz) y haremos referencia a la url que alberga esta carpeta desde la opcion de instalacion de modulos, esto se puede conseguir creando una carpeta en la raiz de nuestro dominio y copiando el comprimido en ella, luego haremos referencia a nuestro archivo asi:

http://www.example.com/carpeta_temporal/hellototheworld.tar

Y listo, ya tenemos instalado nuestro modulo, despues de esto solo nos queda activarlo, y asignarle una posicion usando la pestana posiciones dentro del menu de modulos.

ejemplo_culminado

PS:

– Este articulo es realmente sencillo, para profundizar mejor recomendaria estudiar lo siguiente: CSS y Smarty.

– He notado algunos errores al posicionar este modulo.

14 thoughts on “Creando un modulo para Prestashop”

  1. Amigo, muy bueno tu minitutorial, el unico que he encontrado de este tipo, me gusta porque es un ejemplo sencillo y claro. No te animas a continuarlo?, es que hay muy poca informaci贸n de Prestashop (al menos no como otros cms) y tendrias muchos seguidores. Gracias por el aporte. !Animate!

  2. Hola a todos!

    cuando intento instalar el modulo hellototheworld.tar no me deja, me dice que: se ha producido un error al extraer el m贸dulo (puede tratarse un un fichero corrupto, que tengo que hacer para poder instalarlo?

    1. El ejemplo lo hice pensando en la versi贸n 1.x de prestashop, y en ella funcionaba, actualmente prestashop se encuentra en la versi贸n 1.2 y algunas cosas podr铆an haber cambiado, por lo cual te sugiero que revises la estructura actual de un m贸dulo, para 茅sto puedes dirigirte a la carpeta de instalaci贸n de prestashop y revisar los archivos dentro del m贸dulo blockadvertising.

      prestashopmodulesblockadvertising

      Es un m贸dulo sencill铆simo por lo cual te resultar谩 f谩cil entender la creaci贸n de m贸dulo a partir de 茅l.

  3. Hola buenas, espero que leas este comentario ya que me hace falta tu ayuda. He seguido todos los pasos del tutorial y he conseguido subir el modulo que he creado y ponerlo donde lo queria, en la columna derecha, el problema que tengo es que no me pilla el CSS de 鈥渂lock鈥 y 鈥渂lock_content鈥 porque puede ser?

    Comentar tambien que no hace falta empaquetar los archivos en .tar, si se comprime en .zip tambien funciona.

    Espero tu respuesta, gracias de antemano.

  4. Bueno, finalmente me ha funcionado

    Tengan cuidado…al copiar el c贸digo a Dreamweaver las comillas cambian

    Cambiar ABRIR COMILLA SIMPRE y CERRAR COMILLA SIMPLE por ‘

    Lo mismo para las comillas dobles

    Les invito a visitar mi p谩gina en http://www.pontecomodo.es

    Un saludo !

    Un saludo

    Joaquin

  5. Hola, muy bueno隆隆隆
    Planteo una pregunta. 驴Es posible que no exista un modulo en el que desde front office se puedan cargar archivos tras la compra?

  6. hola andres, podrias especificar mejor tu pregunta? Realmente no he usado prestashop para mas que dos proyectos sencillos, por lo tanto no se a que te refieres cuando dices que se podria utilizar para cargar archivos? DOocumentos pdf derepente? algo que el cliente quiera hacerle llegar al administrador de la tienda?

  7. Holaaaaaa!!!, lo que yo intento hacer es mucho mas sencillo (aparentemente) que todo esto, pero me trae de cabeza… Quiero clonar el modulo blocktopmenu de prestashop 1.5 para situar un segundo men煤 horizontal y he realizado lo siguiente pero no funciona:
    – He extraido la carpeta del modulo a mi escritorio (blocktopmenu).
    – La he renombrado a blocktopmenu2.
    – He renombrado los archivos php y tpl a blocktopmenu2.
    – He editado el archivo config.xml y donde llamaban al modulo lo he renombrado a blocktopmenu2.
    – He comprimido todo a zip.
    – He ido a prestashop y he subido el modulo desde mi escriorio.
    – Se ha subido correctamente pero no aparece en la lista porque supongo que lo que ha hecho es sobreescribir los archivos que ya tenia del modulo.

    驴Como puedo clonarlo?.
    Ayudaaaaaaaaaaaaa!!!!!!!!

Leave a Reply

Your email address will not be published. Required fields are marked *