无法将 js 和 css 文件添加到后台
Can't add js and css files to back office
我想在我的模块中将 JS 和 CSS 文件添加到后台。但我收到错误消息:试图调用名为 "registerStylesheet" 的未定义方法 class "AdminModulesController".
我看过其他帖子(像这样 Show my module JS at footer in prestashop) or here https://devdocs.prestashop.com/1.7/themes/getting-started/asset-management/
所以我想避免使用 addJS() 函数,因为它已过时。但是,当我尝试使用 $this->context->controller->registerStylesheet() 和 $this->context->controller->registerJavascript() 时,出现上述错误。
这是我的整个钩子代码:
public function hookActionAdminControllerSetMedia($params)
{
$this->context->controller->registerStylesheet(
'mb_pages_content',
'modules/'.$this->name.'/styles/admin.min.css'
);
$this->context->controller->registerJavascript(
'mb_pages_content',
'modules/'.$this->name.'/js/admin.js'
);
}
我查了一下我的是什么东西:$this->context->controller
但它确实没有 registerStylesheet() 和 registerJavascript() 方法。我错过了什么?我完全按照网上的描述做了所有的事情,为什么我会收到错误?
试试 :
$this->addJs(
_PS_MODULE_DIR_ .'objet/views/js/feature.js',
'all'
);
$this->addCss(
_PS_MODULE_DIR_ .'objet/views/css/feature.css',
'all'
);
此致
使用哪些方法的说明:
这些是 PrestaShop 1.7 中的 FrontController
方法:registerJavascript
和 registerStylesheet
。
这些是 PrestaShop 1.7 中的遗留(已弃用)FrontController
方法:addJS
和 addCSS
。
这些是 PrestaShop 1.7、1.6、1.5 中的 AdminController
方法:addJS
和 addCSS
。
因此,通过模块 class 为后台办公室(即 AdminController)添加 JS 和 CSS 文件的正确示例是:
public function hookActionAdminControllerSetMedia($params)
{
// Adds your's CSS file from a module's directory
$this->context->controller->addCSS($this->_path . 'views/css/example.css');
// Adds your's JavaScript file from a module's directory
$this->context->controller->addJS($this->_path . 'views/js/example.js');
}
有关其他信息,请参阅我的另一个答案 how to register JavaScript in a back-office (in admin pages)。我在这个问题后更新了它。
我想在我的模块中将 JS 和 CSS 文件添加到后台。但我收到错误消息:试图调用名为 "registerStylesheet" 的未定义方法 class "AdminModulesController".
我看过其他帖子(像这样 Show my module JS at footer in prestashop) or here https://devdocs.prestashop.com/1.7/themes/getting-started/asset-management/
所以我想避免使用 addJS() 函数,因为它已过时。但是,当我尝试使用 $this->context->controller->registerStylesheet() 和 $this->context->controller->registerJavascript() 时,出现上述错误。
这是我的整个钩子代码:
public function hookActionAdminControllerSetMedia($params)
{
$this->context->controller->registerStylesheet(
'mb_pages_content',
'modules/'.$this->name.'/styles/admin.min.css'
);
$this->context->controller->registerJavascript(
'mb_pages_content',
'modules/'.$this->name.'/js/admin.js'
);
}
我查了一下我的是什么东西:$this->context->controller 但它确实没有 registerStylesheet() 和 registerJavascript() 方法。我错过了什么?我完全按照网上的描述做了所有的事情,为什么我会收到错误?
试试 :
$this->addJs(
_PS_MODULE_DIR_ .'objet/views/js/feature.js',
'all'
);
$this->addCss(
_PS_MODULE_DIR_ .'objet/views/css/feature.css',
'all'
);
此致
使用哪些方法的说明:
这些是 PrestaShop 1.7 中的 FrontController
方法:registerJavascript
和 registerStylesheet
。
这些是 PrestaShop 1.7 中的遗留(已弃用)FrontController
方法:addJS
和 addCSS
。
这些是 PrestaShop 1.7、1.6、1.5 中的 AdminController
方法:addJS
和 addCSS
。
因此,通过模块 class 为后台办公室(即 AdminController)添加 JS 和 CSS 文件的正确示例是:
public function hookActionAdminControllerSetMedia($params)
{
// Adds your's CSS file from a module's directory
$this->context->controller->addCSS($this->_path . 'views/css/example.css');
// Adds your's JavaScript file from a module's directory
$this->context->controller->addJS($this->_path . 'views/js/example.js');
}
有关其他信息,请参阅我的另一个答案 how to register JavaScript in a back-office (in admin pages)。我在这个问题后更新了它。