我正在制作一个在产品编辑页面中添加新标签的模块。安装是Prestashop 1.6.1.4。该模块添加了一个选项卡,其中包含一些将数据发送到mysql表的输入字段,但是我要做的是对字段进行一些样式设置,以使它们看起来不错。我将其添加到我的module.php文件中:
public function install() {
if ($this->psversion() == 5 || $this->psversion() == 6)
{
if (parent::install() == false or !$this->registerHook('displayHeader') or !$this->registerHook('productFooter') or !$this->registerHook('displayAdminProductsExtra') or !$this->registerHook('actionProductUpdate') or !$this->registerHook('displayBackOfficeHeader'))
{
return false;
}
}
return true;
}
然后在此下方输入以下代码:
public function hookDisplayBackOfficeHeader($params) {
$this->context->controller->addCSS($this->_path.'views/css/adminsportsnutritionfadd.css');
}
但是无法显示.css文件。该文件位于正确的位置,具有适当的权限,并且文件的所有者是www-data:www-data,所以这不应该是权限问题。我在Prestashop中禁用了CSS合并以及缓存。重新加载页面之前,我还删除了Prestashop的缓存,以防万一,以及删除浏览器的缓存。有人可以帮我吗?
答案 0 :(得分:0)
这样做:
public function hookBackOfficeHeader()
{
$this->context->controller->addCSS($this->_path.'views/css/adminsportsnutritionfadd.css');
}
对我来说,它是这样的:
$this->context->controller->addCSS($this->_path . 'views/css/back.css');
因此,唯一的不同是css文件名。
答案 1 :(得分:0)
不确定是否进行了排序,但是...
我在大多数模块中使用此功能来添加 jQuery,Font-awesome,CSS和JS,然后仅在该模块页面上显示...
public function hookDisplayBackOfficeHeader($params)
{
if(!(Tools::getValue('controller') == 'AdminModules'
&& Tools::getValue('configure') == 'MyModuleName')
){
return;
}
else
{
if ( method_exists($this->context->controller, 'addJquery') )
{
$this->context->controller->addJquery();
$this->context->controller->addCss('//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
$this->context->controller->addCss($this->_path.'views/css/back.css');
$this->context->controller->addJs($this->_path.'views/js/back.js');
}
}
}