Показать мой модуль JS в нижнем колонтитуле в prestashop
Я разрабатываю модуль в prestashop. У меня есть страница конфигурации JS для моего модуля. Я использую displayBackOfficeHeader
крюк, чтобы добавить мой JS в заголовке. Но после установки моего модуля, когда я настраиваю свой модуль, это дает мне Jquery
Вопрос 1) Как управлять тем, что мой JS должен добавить в заголовок после jquery.js
?
Que 2) Если мы не можем управлять так же, как que Ist, то как добавить JS в нижний колонтитул?


Ответы - Показать мой модуль JS в нижнем колонтитуле в prestashop / Show my module JS at footer in prestashop


05.11.2018 05:59:48
В большинстве случаев для добавления какого-либо ресурса (JavaScript или CSS) в бэк-офис (страницы администратора) следует использовать Хук actionAdminControllerSetMedia()
.
Подробные инструкции по регистрации правильно файл JavaScript являются:
Шаг 1. Регистрация крючка на установке модуля:
public function install()
{
if (!parent::install()) {
return false;
}
// After a module installation, register the hook
if (!$this->registerHook('actionAdminControllerSetMedia')) {
return false;
}
return true;
}
Шаг 2. Затем добавьте свой ресурс JavaScript:
public function hookActionAdminControllerSetMedia()
{
// Adds jQuery and some it's dependencies for PrestaShop
$this->context->controller->addJquery();
// Adds your's JavaScript from a module's directory
$this->context->controller->addJS($this->_path . 'views/js/example.js');
}
Существуют различные способы и несколько методов, которые могут быть использованы для регистрации активов в бэк-офисе (страницы администратора) (они перечислены в порядке выполнения):
- Крючок
hookDisplayBackOfficeHeader()
- Метод
AdminControllerCore::setMedia()
- Крючок
actionAdminControllerSetMedia()
- Метод модуля
Module::getContent()
- Крючок
hookDisplayBackOfficeFooter()
Чтобы добавить встроенный код, лучше всего использовать hook hookDisplayBackOfficeFooter()
. Например:
public function hookDisplayBackOfficeFooter()
{
return '
<script type="text/javascript">
var EXAMPLE_VARIABLE = "Hello, Zapalm!";
</script>
';
}
Еще один пример для случая, когда вам нужно добавить ресурс JavaScript, но в дочернем классе AdminController вашего модуля (для PrestaShop 1.7):
public function setMedia($isNewTheme = false)
{
parent::setMedia($isNewTheme);
$this->addCSS(_MODULE_DIR_ . $this->module->name . '/views/css/example.css');
$this->addJS(_MODULE_DIR_ . $this->module->name . '/views/js/example.js');
}
Для PrestaShop 1.6 и 1.5 вы можете сделать также, как в этом примере, но вам нужно удалить параметр $isNewTheme из определения метода и вызова родительского метода.
Рекомендации:

