我正在prestashop中开发一个模块。我的模块配置页面有一个JS。我使用displayBackOfficeHeader
钩子在头文件中添加我的JS。但是在配置我的模块后安装我的模块后,它给了我Jquery
问题,因为我的JS在jquery.js
Que 1)如何管理我的JS应该在Jquery.js
之后添加标题?
Que 2)如果我们不能像que Ist一样管理那么如何在页脚中添加JS?
答案 0 :(得分:1)
如果你去“模块”> BO中的“挂钩位置”,您可以订购模块的负载。
答案 1 :(得分:1)
在大多数情况下,要将任何资产(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()
要添加内联代码,最好的方法是使用钩子hookDisplayBackOfficeFooter()
。例如:
public function hookDisplayBackOfficeFooter()
{
return '
<script type="text/javascript">
var EXAMPLE_VARIABLE = "Hello, Zapalm!";
</script>
';
}
注意:在PrestaShop 1.7中,如果有人想从外部资源(例如,从https://ajax.googleapis.com
,新方法$this->context->controller->registerJavascript()
,到选项{{ 1}}。例如:
'server' => 'remote'