Marketing publicidad

Cómo crear páginas personalizadas para el back office de PrestaShop

páginas personalizadas

LUIS MARTÍNEZ / En alguna ocasión nos hemos encontrado ante la necesidad de crear una página personalizada en la administración de Prestashop.

Este tipo de página nos ofrece la posibilidad de aumentar el control de nuestra tienda online, añadiéndole información que nos sea de utilidad, ya sean gráficos personalizados, operaciones específicas en base de datos, tratamiento de emails o cualquier acción que seamos capaces de programar.

¿Por dónde empezamos?

Haremos un breve recorrido por los tres pasos fundamentales que hay que seguir para añadir una página personalizada al back office. Dicha página se situará en un nuevo elemento de menú y mostrará el contenido de un archivo tpl.

CONOCIMIENTOS MÍNIMOS:

1.Prestashop

2.Php

3.Transferencia de ficheros por FTP

Vayamos paso por paso

1. Crear un elemento de menú y submenú

Este primer paso, para calentar, es el más sencillo. Hay que crear un elemento en el menú principal, ‘Prueba’, y en su interior, un submenú ‘CustomPage’, el cual mostrará el contenido personalizado. Para ello sólo hay que acceder al panel de administración de nuestro Prestashop y desplazarse a ‘Administración > Menús > Crear nuevo’. Una vez ahí, se incluirá la información necesaria.

Mkp1

Mkp2

2. Crear un directorio y el fichero template (tpl) correspondiente

Llegó la hora de manejar archivos y directorios en el servidor (o en local). Crearemos un directorio llamado igual que la clase que se le indicó al submenú en su creación, pero sin ‘Admin’ y en minúsculas. Dicho directorio se situará en /override/controllers/admin/custompage.

Es importante remarcar que trabajaremos en la carpeta override para modificar lo menos posible los ficheros de administración de Prestashop.

Una vez creado nuestro directorio, incluiremos en él un fichero que llamaremos content.tpl con el contenido deseado, que será el que se muestre en nuestro back office. Aquí podremos incluir las funcionalidades que veamos conveniente visualizando datos o realizando operaciones.

 

3. ¡Ya va llegando el final! Tan sólo nos falta crear un archivo controlador, que llamaremos AdminCustompage.php, como indicamos en la creación del submenú, en la ruta /override/controllers/admin/templates/AdminCustompage.php. Éste controlador se ‘comunicará’ a través de la caché Smarty con nuestro archivo template (tpl).

 

4. Por último, tan sólo tenemos que borrar, (sí, sí, borrar) el fichero /cache/class_index.php, el cual se volverá a regenerar automáticamente, cuando pulsemos sobre nuestro submenú. Este paso no es necesario en la versión 1.6 de Prestashop

Mkp3

Para concluir y como resumen:

¡Ya estáis preparados para mostrar contenido en la administración! Bien sean informes, gráficas, datos, listados…o todo lo que se os ocurra. Tan sólo es cuestión de modificar el content.tpl ó el controlador para que se ajuste a vuestras necesidades.

1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (6 votos, promedio: 4,17 de 5)
Cargando…

Sé generoso. Comparte :)

¿Quién ha escrito esto?

5 Comentarios

  1. Javi 16 Enero, 2015 at 21:39

    Hola, me podrías indicar que debe contener el archivo AdminCustompage.php

    Un saludo.

  2. Ana Marin
    Ana Marin 19 Enero, 2015 at 12:40

    Buenas, Javi

    El archivo AdminCustompage.php comunica con el content.tpl, así que inicializa el contenido del mismo a través de Smarty.

    class AdminCustompageControllerCore extends AdminController
    {
    public function initContent()
    {
    parent::initContent();
    $smarty = $this->context->smarty;
    $txt = ‘

    CustomPage titulo

    ‘;
    $smarty->assign(‘contenido’, $txt);
    }
    }

    Y en el content.tpl tendríamos disponible la variable {$contenido} con el valor asignado a $txt.

    Saludos!

  3. Luis Martínez
    Luis Martínez 19 Enero, 2015 at 12:45

    Buenas, Javi

    El archivo AdminCustompage.php comunica con el content.tpl, así que inicializa el contenido del mismo a través de Smarty.

    class AdminCustompageControllerCore extends AdminController
    {
    public function initContent()
    {
    parent::initContent();
    $smarty = $this->context->smarty;
    $txt = ‘texto a mostrar en el tpl‘;
    $smarty->assign(‘contenido’, $txt);
    }
    }

    Y en el content.tpl tendríamos disponible la variable {$contenido} con el valor asignado a $txt.

    Saludos!

  4. Eduard 29 Diciembre, 2015 at 16:29

    No me funciona en prestashop 1.6 me da un error de que no encuentra el controlador.

    Alguien ha podido solucionarlo????

    Gracias

  5. Darth Vader 20 Abril, 2016 at 15:47

    Hola Diego,

    ¿Te aseguraste de borrar el fichero class_index?

    ¿Que versión de prestashop manejas?

Comenta, queremos saber tu opinión