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.

Centos 5 – NVIDIA – Compiz

Bueno, voy a relatar mi experiencia al configurar mi PC con Centos 5, una tarjeta NVidia y luego instalandome Compiz, lo que inicialmente me trajo algunos problemas.

Mi equipo de escritorio cuenta con cuatro procesadores XEON, lo que lo hace mas apropiado para un servidor. A este le instale Centos 5 hace un par de meses, y desde entonces venia usandolo sin prestarle atencion a la obtencion de los drivers correctos de video, hasta que me llegaron las ganas de probar alguno de esos gestores de ventanas con esos efectos del escritorio como un cubo.
Aqui pueden ver un ejemplo:

Bueno, el problema inicial contra el que me enfrente fue que despues de instalar Compiz usando la aplicacion Add/Remove Software ubicada en el menu Applications simplemente no podia activar Compiz yendo a System > Preferences > Desktop Effects, recibia un mensaje de error que si bien no recuerdo lo que decia exactamente, era algo como: Los efectos de escritorio no se pueden activar.

Me dirigi a System > Administration > Hardware y se podia ver que el sistema reconocia a mi tarjeta de video por su nombre, lo que me hizo pensar naturalmente que mi equipo contaba con los ultimos drivers para esta. Este es el nombre que aparecia: NV18GL [Quadro NVS 280 SD], bueno, el hecho es que no, al parecer nuestro amigo Linux es muy bueno reconociendo hardware y adaptando algunos de los drivers muy genericos con los que cuenta para que funcionen con nuestro hardware, entonces, sin pensarlo mas me puse en busqueda de los drivers apropiados para esta tarjeta y llegue hasta aqui: http://www.nvidia.com/object/unix.html. Los que a mi me sirvieron fueron los que se encuentran con este nombre: Linux IA32 96.43.xx series, logicamente esto dependera de tu tarjeta de video y de tu sistema (32bits o 64 bits).
Bueno me baje los drivers y despues de intentar ejecutarlos por primera vez me di con un mensaje de alerta que me decia que debia cerrar la sesion grafica (X server) y ejecutar el instalador sin un sesion grafica activa, esto descartaba la posibilidad de que pudiera solucionar el problema ejecutando el archivo descargado desde el TTY1 (ALT + CTRL + F1) porque no estoy muy seguro de la manera mas efectiva de matar el proceso de X Server.

La alternativa que escogi fue la de bootear en modo “single”, esto se consigue editando una linea en la linea de booteo del GRUB, mas detalles en el siguiente vinculo http://www.cyberciti.biz/faq/grub-boot-into-single-user-mode/ donde se muestra como realizar esta sencilla tarea.

Me dirigi hasta el driver que habia descargado en la carpeta /home/usuario/software y lo ejecute:

$sudo – root
password: (password de root)
#cd /home/usuario/software
#sh NVIDIA-Linux-x86-96.43.11-pkg1.run

Despues, solo seguir las instrucciones, reiniciar haciendo un:
#reboot

Iniciamos sesion en modo grafico como normalmente lo hariamos y nos dirigimos a: System > Preferences > Desktop Effects para activar los efectos de Compiz. Hasta aqui todo bien excepto porque las ventanas habian perdido los bordes decorativos en los que se encuentran los botones para maximizar, minimizar o cerrar la ventana. Despues de googlear un poco di con la solucion modificando un par de linea en el archivo /etc/xorg.conf como se detalla en el vinculo que les dejo: http://www.pendrivelinux.com/ubuntu-desktop-effects-fixing-the-missing-titlebar/

Esto es todo, si tienen algun problema para conseguir la misma configuracion, que sin duda les fascinara como a mi (que tuve que mostrarselo a toda mi familia =) no duden en hacerme saber sus problemas que hare lo que este en mi mano para ayudarlos.

Introduciendome a UML

Voy algunos dias aprendiendo UML y a la fecha, pienso que definitivamente es algo que me servira para futuros desarrollos, bueno al menos eso es lo que pienso despues de haber estudiado un poco sobre la teoria, todo esto, Analisis y Diseno de Sistemas, derepente pueda resumir lo que he aprendido hasta ahora apoyandome en los pasos secuenciales para el estudio previo al desarrollo de un proyecto de software, es como sigue:

— En la etapa de analisis y diseno preliminar —

– Titulo de la aplicacion: Escogemos un titulo apropiado para nuestra aplicacion, lo mejor es que este sea autodescriptivo.

– Documentos de analisis: Es el resultado de recopilar informacion sobre lo que queremos que haga el sistema, mediante entrevistas a los usuarios, a los  desarrolladores, y por experiencias previas en desarrollos de aplicaciones como la que queremos conseguir.

– Especificacion de requerimientos: Es la sintesis realizada por el Analista despues de estudiar los Documentos de Analisis, en esta etapa ya contamos con un listado detallado de las caracteristicas que queremos que nuestro sistema tenga pero aun no tenemos detalles especificos al funcionamiento (Diseno).

– Casos de Uso: Los casos de uso son las maneras en la que nuestro sistema interactua con usuarios u otros sistemas, y son definidos de manera bastante general, por ejemplo, para un sistema de Inventario tendriamos:

  • Informes
  • Manejar Inventario

– Escenarios: Los escenarios son etapas especificas dentro de cada caso de uso, asi vamos ingresando cada vez en mas detalle, asi, usando el ejemplo anterior tendriamos.

Escenario 1.1
Titulo: Informe de ingresos
Quien lo inicia: Supervisor
Quien lo termina: Supervisor
Precondiciones: Que se hayan ingresado articulos mediante el segundo caso de uso.
PostCondiciones:
Descripcion: Se refiere a la obtencion de informes sobre los ingresos de nuevos articulos a nuestro sistema.

Escenario 1.2
Titulo: Informe de bajas
Quien lo inicia: Supervisor
Quien lo termina: Supervisor
Precondiciones: Dar de baja algunos articulos mediante el segundo caso de uso.
PostCondiciones:
Descripcion: Obtencion de un informe con los articulos que estan calificados como articulos de baja en nuestro sistema.

– Diagramas de secuencia: Estos diagramas se realizan para cada uno de los escenarios aislados en la etapa anterior, y ya admiten el concepto de objetos.

diagrama_de_secuencia_uml

En la imagen podemos ver que los objetos tienen cierta vigencia (o tiempo de uso) y la lineas representan la interaccion que sucede entre ellos.

Despues ampliare esta entrada con la etapa de diseno del proceso UML
WP2Social Auto Publish Powered By : XYZScripts.com