Banner

Ultima revisión 24/11/2012

Crear un Módulo en PrestaShop con acceso a MySQL

Este ejemplo pretende mostrar como acceder a unos datos que no pertenecen a Prestashop pero, por necesidades externas, necesitamos presentar en nuestra tienda. Por ejemplo, si tenemos que mostrar las condiciones generales de nuestra empresa y las tenemos en otra base de datos, véase, un WordPress por ejemplo, o cualquier otra cosa que se os ocurra.

En este caso vamos a mostrar los datos de nuestros proveedores, que están en una base de datos externa, porque antes teníamos otro sistema de tienda online y la migración, en este supuesto, no la hemos terminado.

NOTA: Este ejemplo además es una modificación del artículo Crear un Módulo en PrestaShop: Mi primer Módulo descrito anteriormente.

Lo primero que debemos hacer es modificar o crear nuestro hook en el archivo php, con el mismo nombre,de nuestro módulo. En este caso modificamos moduletesting.php.

public function hookLeftColumn( $params ){
    global $smarty;

    $sql="select * from proveedores"; // creamos la sentencia sql
    $query=mysql_query($sql); // ejecutamos la consulta

    $x=0;
    while($row=mysql_fetch_array($query)){
        $datos[$x]=array($col['nombre'], $col['direccion'], $col['telefono'], $col['email']);
        $x++;
    }
    mysql_close();
    
    $smarty->assign('datos' ,$datos);
    return $this->display(__FILE__, 'moduletesting.tpl');
}

A continuación, modificamos o creamos el archivo de Smarty a quién se lo hemos mandado. En el ejemplo, moduletesting.tpl.

<!-- Block Nuevo_Modulo -->
<div id="module_testing_block_left" class="block">
    <h3>NUESTROS PROVEEDORES</h3>
    <div class="block_content">
        <table border="0" cellspacing="5" cellpadding="5">
            {foreach key=key name=outer item=dato from=$datos}
            <tr class="">
                {foreach key=key item=item from=$dato}
                <td align="left">{$item['nombre']}</td>
                <td align="left">{$item['telefono']}</td>
                <td align="justufy">{$item['direccion']}</td>
                <td align="center">{$item['email']}</td>
                {/foreach}    
            </tr>
            {/foreach}    
        </table>
    </div>
</div>
<!-- /Block Nuevo_Modulo -->

Instalación del módulo

La instalación del módulo es sencilla.

Si habéis creado el módulo en vez de modificarlo, primero nos dirigimos a la url de Administración, nos logamos y pinchamos en la opción de Módulos de la pestaña Módulos.

Una vez dentro, en el campo buscar, escribimos el displayName que pusimos en nuestro módulo, en este caso, Módulo de Pruebas y le damos al botón BUSCAR.

Si nos fijamos veremos que hay un recuadro en el que remarca que no está instalado y a la derecha hay un botón que pone instalar. Si le damos, se instalará y nos tendrá que decir un mensaje como Módulo (s) instalado con éxito.

Prueba y ejecución del módulo

Ahora probamos que se ejecute en nuestra tienda de pruebas. Si lo queremos ver estará en la parte de debajo de la columna izquierda en el front-end de la tienda.