Как добавить JS для модулей в prestashop 1.5?
Разрабатываю модуль в prestashop 1.5. Используя displayAdminProductsExtra крюк, чтобы отобразить файл TPL в разделе администрирования. когда я включаю свой код jquery в tpl, он отлично работает. но когда я пытаюсь сделать его как новый файл и включить его не работает. до сих пор я пробовал следующие методы..
использование displayBackOfficeHeader для регистрации крючка и вызывается следующим образом..
public function hookdisplayBackOfficeHeader($params)
{
$this->context->controller->addJS(($this->_path).'abc.js');
}
и я попытался добавить его в displayAdminProductsExtra также, как это..
$this->context->controller->addJS(_MODULE_DIR_.$this->module->name.'/views/js/abc.js'); //first tried..
$this->context->controller->addJS(($this->_path).'abc.js','all'); //second tried this..
И я попытался с getcontent, как это..
public function getContent()
{
$this->_html= '<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js">
<script src="../modules/abc/abc.js" type="text/javascript" ></script>';
return $this->_html;
}
но эти методы не добавили мой js-файл. Не знаю, где я делаю ошибку.любая помощь будет оценена по достоинству.


Ответы - Как добавить JS для модулей в prestashop 1.5? / How to add JS for modules in prestashop 1.5?

24.08.2013 02:13:31
Когда вы создаете модуль Prestashop, вы должны добавить функцию hookHeader и внутри нее строку, которая добавляет js на вашу страницу.
Нужно было бы что-то вроде этого:
public function hookHeader ($ params)
{
$ this-> controller-> addJS (($ this-> _path). 'abc.js');
}
С другой стороны, глядя на код модуля blockcategories в blockcategories.php файл мы видим следующее:
public function displayForm()
{
...
}
Эта функция предназначена для создания страницы конфигурации модуля, так же, как вы используете другие модули. Может быть, это более простой вариант, но быстрее развиваться.
С уважением

05.11.2018 06:32:27
Крючок DisplayHeader
(или Header
) предназначен для регистрации активов на страницах фронт-офиса!
Это правильно для вашего пути JavaScript:
$this->context->controller->addJS($this->_path . 'abc.js');
Но вы не зарегистрировались на jQuery активов этот метод перед регистрацией вашего кода JavaScript:
$this->context->controller->addJquery();
Кроме того, вы не должны использовать крюк DisplayBackOfficeHeader
. Вместо этого, вы должны использовать крюк ActionAdminControllerSetMedia
.
Вот подробная информация, как зарегистрировать JavaScript в бэк-офисе (на страницах администратора) .