Jump to content

Error creating admin tabs on the backoffice


Recommended Posts

I've create a parent tab and 3 child tabs on my module with controllers for every tab.

But when I click to a tab appears an error: Warning: Attempt to read property "smarty" on null.

it seems that context is null

This is my install function:

public function install()
    {
        Configuration::updateValue('AGORACONECTION_LIVE_MODE', false);

        $languages = Language::getLanguages(false);

        // Main Parent menu
        if (!(int) Tab::getIdFromClassName('AdminConexionAgora')) {
            $parentTab = new Tab();
            $parentTab->active = 1;
            $parentTab->name = array();
            $parentTab->class_name = "AdminConexionAgora";
            foreach ($languages as $language) {
                $parentTab->name[$language['id_lang']] = 'Conexion a Agora';
            }
            $parentTab->id_parent = 0;
            $parentTab->module = '';
            $parentTab->add();
        }

        // Sub menu for Clientes
        if (!(int) Tab::getIdFromClassName('AdminAgoraClientes')) {
            $parentTabID = Tab::getIdFromClassName('AdminConexionAgora');
            $parentTab = new Tab($parentTabID);

            $tab = new Tab();
            $tab->active = 1;
            $tab->class_name = "AdminAgoraClientes";
            $tab->name = array();
            foreach ($languages as $language) {
                $tab->name[$language['id_lang']] = $this->l('Clientes');
            }
            $tab->id_parent = $parentTab->id;
            $tab->module = $this->name;
            $tab->add();
        }

        // Sub menu for Productos
        if (!(int) Tab::getIdFromClassName('AdminAgoraProductos')) {
            $parentTabID = Tab::getIdFromClassName('AdminConexionAgora');
            $parentTab = new Tab($parentTabID);

            $tab = new Tab();
            $tab->active = 1;
            $tab->class_name = "AdminAgoraProductos";
            $tab->name = array();
            foreach ($languages as $language) {
                $tab->name[$language['id_lang']] = $this->l('Productos');
            }
            $tab->id_parent = $parentTab->id;
            $tab->module = $this->name;
            $tab->add();
        }

        // Sub menu for Pedidos
        if (!(int) Tab::getIdFromClassName('AdminAgoraPedidos')) {
            $parentTabID = Tab::getIdFromClassName('AdminConexionAgora');
            $parentTab = new Tab($parentTabID);

            $tab = new Tab();
            $tab->active = 1;
            $tab->class_name = "AdminAgoraPedidos";
            $tab->name = array();
            foreach ($languages as $language) {
                $tab->name[$language['id_lang']] = $this->l('Pedidos');
            }
            $tab->id_parent = $parentTab->id;
            $tab->module = $this->name;
            $tab->add();
        }


        return parent::install() &&
            $this->registerHook('header') &&
            $this->registerHook('displayBackOfficeHeader');
    }

And this is a controller for a tab, I have the same other controllers:

<?php
class AdminAgoraClientesController extends AdminController
{
    public function __construct()
    {
        $this->context->smarty->assign(array(
            'example_variable' => 'example',
        ));

        // Cargar la plantilla Smarty
        $this->setTemplate('clientes.tpl'); 
    }
}

the controllers are in the ModuleDir/controllers/admin folder and the tpls are in ModuleDir/views/tempates/admin folder

imagen.png.9d1e428a3e37f5726607e9567bcfcf3a.png

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...