在prestashop的页脚显示我的模块JS

时间:2015-08-06 10:34:31

标签: php prestashop prestashop-1.6

我正在prestashop中开发一个模块。我的模块配置页面有一个JS。我使用displayBackOfficeHeader钩子在头文件中添加我的JS。但是在配置我的模块后安装我的模块后,它给了我Jquery问题,因为我的JS在jquery.js

之前添加了顶部的意思

Que 1)如何管理我的JS应该在Jquery.js之后添加标题?

Que 2)如果我们不能像que Ist一样管理那么如何在页脚中添加JS?

2 个答案:

答案 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');
}

可以使用不同的方法和几种方法在后台(管理页面)中注册资产(按执行顺序列出):

  1. 挂钩hookDisplayBackOfficeHeader()
  2. 控制器的方法AdminControllerCore::setMedia()
  3. 挂钩actionAdminControllerSetMedia()
  4. 模块的方法Module::getContent()
  5. 挂钩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'

Asset management in PrestaShop 1.7