[1.6.0.5]+ Reference error: $ is undefined dans le BackOffice


  • administrators

    Lorsqu'un module injecte un js dépendant de jQuery au travers de $this->context-controller->addJS() celui-ci est chargé dans la page bien avant que les dépendances jQuery existent.

    Le bug est lié à l'AdminController qui appelle le hookBackOfficeHeader avant d'avoir appelé $this->setMedia

    Pour corriger, changer dans classes/controller/Controller.php

        public function init()
        {
            if (_PS_MODE_DEV_ && $this->controller_type == 'admin') {
                set_error_handler(array(__CLASS__, 'myErrorHandler'));
            }
    
            if (!defined('_PS_BASE_URL_')) {
                define('_PS_BASE_URL_', Tools::getShopDomain(true));
            }
    
            if (!defined('_PS_BASE_URL_SSL_')) {
                define('_PS_BASE_URL_SSL_', Tools::getShopDomainSsl(true));
            }
        }
    

    par

        public function init()
        {
            if (_PS_MODE_DEV_ && $this->controller_type == 'admin') {
                set_error_handler(array(__CLASS__, 'myErrorHandler'));
            }
    
            if (!defined('_PS_BASE_URL_')) {
                define('_PS_BASE_URL_', Tools::getShopDomain(true));
            }
    
            if (!defined('_PS_BASE_URL_SSL_')) {
                define('_PS_BASE_URL_SSL_', Tools::getShopDomainSsl(true));
            }
            $this->setMedia();
        }
    

Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.