Jump to content

Crear pestaña en Back-office


reijo

Recommended Posts

Hola, 

 

Quiero crear una pestaña dentro del backoffice de la tienda online para prestashop 1.6, pero no encuentro nada al respecto sobre como como hacerlo, solo de 1.5 y no funciona muy bien. Es para incluir una opción muy específica.

 

alguien tiene una mínima idea de como hacerlo?? Se que desde administración > Menús, puedes crear nuevos apartados, pero no se como enlazarlos, ni el codigo, ni el directorio..

 

Gracias

Edited by reijo (see edit history)
Link to comment
Share on other sites

¿Es para usarla con un módulo o crear un archivo en el core? Porque desde un módulo es sencillo de crear simplemente incluyendo un archivo en /modules/mymodule/controllers/admin/AdminXXXController.php.  Si ya tiene el archivo ahí solamente vaya a Administración -> Menús:

 

  1. Añadir nuevo
  2. En nombre poner como se verá al público "Mi pestaña".
  3. En clase poner el nombre de que tiene el archivo AdminXXX, sin la parte final de Controller.
  4. Módulo el nombre "mymodule" para el ejemplo.
  5. Estado "Habilitado"
  6. Padre donde quiere que aparezca.

Si esto es lo que buscas eso es suficiente, sino puede ampliar lo que requiere para ver cómo podemos ayudar.

 

Saludos.

post-39071-0-28176200-1437517030_thumb.png

Link to comment
Share on other sites

Gracias por responder Jorge Vargas, pero eso es lo que no tengo problemas en crear.

 

Lo que me gustaría saber, es el código de la clase, los métodos a crear, y el directorio donde se ha de situar el fichero php, sin que este enganchado a ningún modulo.

Link to comment
Share on other sites

Lo ideal es crearlo mediante un modulo que redirija al controlador del mismo modulo, añadiendo en el archivo  php principal

    // add tab in admin
    private function installTab() {
        $tab = new Tab();
        $tab->name[$this->context->language->id] = $this->l("Mi modulo");
        // Admin controller class name of module without "Controller", its class name is "AdminMimoduloController"
        $tab->class_name = 'AdminMimodulo';
        $tab->module = 'Mimodulo'; // The of module that AdminMimodulo located in
        $tab->id_parent = 0; // We want to show tab one first level
        if (!$tab->add())  // Create tab in admin
            return false;
        return true;
    }
 
    private function uninstallTab() {
        // AdminMimodulo is Admin module controller
        $idTab = Tab::getIdFromClassName('AdminMimodulo'); 
        if ($idTab != 0) {
            $tab = new Tab($idTab);
            $tab->delete(); // Remove tab from admin
            return true;
        }
        return false;
    }
 
 

Link to comment
Share on other sites

reijo gracias! estoy aprendiendo javascript y algo toco de php, pero casi nada. Veía muy extraños los dos puntos y gracias a ti he buscado y acabo de ver que es un operador de resolución de ámbito... en fin, sigo con el javascript y ya llegaré a esto jiji :D

Link to comment
Share on other sites

Aquí puedes ver como es el contenido, ya sea que sea controller del admin o front:

 

https://github.com/PrestaShop/PrestaShop/tree/develop/controllers

 

Pero para crearlo en un módulo es sencillo, sólo crear el archivo de módulo e incluirlo directamente en la carpeta modules/mymodule/controllers/[admin o front]/ y tiene el mismo efecto y más seguro.

 

Saludos.

Link to comment
Share on other sites

  • 11 months later...

Holas como hacéis para que la pestaña que se crea en el menú del back office redirija a una página dentro del back office para configurarlo, es que estoy creando un módulo y tengo el tab hecho, pero cuando hago clic encima me dice El controlador no encontrado, claro por que no lo tengo hecho, pero me gustaría saber cómo se hace? que rutas y eso

Gracias de antemano!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...