2015-11-05 2 views
2

Я пытаюсь добавить файл javascript в prestashop admin, используя backOfficeHeader крючок с помощью модуля, но ничего не произошло. Мой код приведен ниже.addJS функция не работает для admin в prestashop

public function install() 
{ 
    if (!parent::install() 
     || !$this->registerHook('backOfficeHeader')) 
     return false; 

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

public function hookBackOfficeHeader() { 
    $this->context->controller->addJS(_MODULE_DIR_.$this->module->name.'js/hs_custom.js'); 
} 

ответ

0

Вы пытались проверить путь AddJS? Я думаю, что больше ничего нельзя сделать, если другие файлы JS работают. Попытайтесь использовать $ this -> _ path.

$this->context->controller->addJS($this->_path.'views/js/hs_custom.js'); 

1) путь выходного и проверить, если он является действительным. 2) Перезагрузите страницу и проверьте сеть. Страница загружает ваш скрипт или нет? 3) Не забудьте сбросить модуль, если вы меняете что-то с помощью крючков. 4) Проверьте крючки модуля.

2

Если вы используете PS 1.5 или 1.6, вы должны использовать hook "actionAdminControllerSetMedia".

Ваш установщик модуля должен проверить, какая версия prestashop используется, а затем зарегистрировать необходимый крючок.

if (version_compare(substr(_PS_VERSION_, 0, 3), '1.5', '<')) 
     $this->registerHook('BackOfficeHeader'); 
else 
     $this->registerHook('actionAdminControllerSetMedia'); 

Затем вам нужно addJS на каждый крючок в его формате версии: PS> = 1,5

public function hookActionAdminControllerSetMedia($params) { 
    $this->context->controller->addJS($this->_path.'views/js/hs_custom.js'); 
} 

PS < = 1,4

public function hookBackOfficeHeader($params) { 
    Tools::addJS($this->_path.'views/js/hs_custom.js'); 
} 
-1

Для меня «это -> _ путь «не работает». Мое решение заключается в использовании $ _SERVER ['DOCUMENT_ROOT']

public function hookActionAdminControllerSetMedia($params) 
{ 
    // add necessary javascript to products back office 
    if($this->context->controller->controller_name == 'AdminProducts' && Tools::getValue('id_product')) 
    { 
     $this->context->controller->addJS($_SERVER['DOCUMENT_ROOT']."/modules/apl/views/js/jquery.ui.touch-punch.min.js"); 
    } 
} 
Смежные вопросы