Logo de islavisual
Logo de islavisual IslaVisual
imagen de sección

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.

Sobre el autor

Pablo Enrique Fernández Casado

CEO de IslaVisual, Manager, Full Stack Analyst Developer y formador por cuenta ajena con más de 25 años de experiencia en el campo de la programación y más de 10 en el campo del diseño, UX, usabilidad web y accesibilidad web. También es escritor y compositor de música, además de presentar múltiples soft kills como la escucha activa, el trabajo en equipo, la creatividad, la resiliencia o la capacidad de aprendizaje, entre otras.

Especializado en proveer soluciones integrales de bajo coste y actividades de consultoría de Usabilidad, Accesibilidad y Experiencia de Usuario (UX), además de ofrecer asesoramiento en SEO, optimización de sistemas y páginas web, entre otras habilidades.