php – 在prestashop的页脚显示我的模块JS
作者:互联网
我正在prestashop开发一个模块.我的模块配置页面有一个JS.我正在使用displayBackOfficeHeader钩子在头文件中添加我的JS.但是在配置我的模块后安装我的模块后,它给了我Jquery问题,因为我的JS在jquery.js之前添加了顶部意味着
Que 1)如何管理我的JS应该在Jquery.js之后添加标题?
Que 2)如果我们不能像que Ist一样管理那么如何在页脚中添加JS?
解决方法:
在大多数情况下,要将任何资产(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>
';
}
注意:在PrestaShop 1.7中,如果有人想要从外部资源添加JavaScript,例如,从https://ajax.googleapis.com,新方法$this-> context-> controller-> registerJavascript()使用选项’server’=>应该使用’remote’.例如:
$this->context->controller->registerJavascript(
'three.js',
'https://ajax.googleapis.com/ajax/libs/threejs/r84/three.min.js',
['position' => 'bottom', 'priority' => 100, 'server' => 'remote']
);
Asset management in PrestaShop 1.7.
标签:prestashop,prestashop-1-6,php 来源: https://codeday.me/bug/20190927/1824962.html