Как добавить JS для модулей в prestashop 1.5?

Как добавить JS для модулей в prestashop 1.5?

24.08.2013 10:52:55 Просмотров 67 Источник

Разрабатываю модуль в 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?

Является ответом!
esmoreno

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()
{
...
}

Эта функция предназначена для создания страницы конфигурации модуля, так же, как вы используете другие модули. Может быть, это более простой вариант, но быстрее развиваться.

С уважением

Maksim T.

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 в бэк-офисе (на страницах администратора) .

Закрыть X