我正在prestashop 1.5中开发一个模块。当管理员面板中的管理员访问我的模块时,我需要提供一些设计(css)。我是prestashop的新手..任何人都可以帮助我..
答案 0 :(得分:3)
只需添加hookHeader:
$this->context->controller->addCSS($this->_path.'style.css', 'all');
我希望这有帮助, 麦克
答案 1 :(得分:2)
我找到了更好的方法。有一个更具体的钩子:displayBackOfficeHeader。 这确保您的背景将只是后勤办公室,而不是前台办公室。 此外,为了确保它仅在特定情况下有效(例如仅在配置页面中),您可以检查URL变量。 所以,首先,在install()中添加注册函数(并确保重置模块以使钩子工作):
$this->registerHook('displayBackOfficeHeader');
还要在uninstall()中添加注销代码:
$this->unregisterHook('displayBackOfficeHeader');
然后添加相对功能。在这个例子中,我正在检查我是否在配置页面中(imagebanner是模块的名称):
public function hookDisplayBackOfficeHeader($params){
if(!(Tools::getValue('controller') == 'AdminModules' && Tools::getValue('configure') == 'imagebanner')){
return;
}
$this->context->controller->addCSS($this->_path.'back-office.css', 'all');
}
此外,take a look to the docs。 希望它有所帮助!
[编辑]
我刚刚发现上面的代码在堆栈的开头添加了文件,而不是在结尾处。这意味着,例如,BEFORE jquery。似乎没有办法控制注射顺序。无论如何,现在,我找到了一个简单的解决方案:直接返回html代码:
public function hookDisplayBackOfficeHeader($params){
if(!(Tools::getValue('controller') == 'AdminModules' && Tools::getValue('configure') == 'homebanners')){
return;
}
$html = '';
$html .= '<link href="'.$this->_path.'back-office.css" rel="stylesheet" type="text/css" media="all" />';
$html .= '<script src="'.$this->_path.'back-office.js" type="text/javascript" ></script>';
return $html;
}
它的工作原理是因为如果您查看admin header.tpl,您会发现Hook实际上是放在js / css incusion代码之后。所以它才有用。相反,addCSS / JS方法独立工作,并且根本不考虑钩子位置。
答案 2 :(得分:1)
并添加块{block name =“before”} {/ block}
并将此块添加到您的form.tpl到您的控制器模板中: [路径到项目] / [管理路径] /主题/默认/模板/控制器/ [yourcontrollername] /helpers/form/form.tpl
{block name="before"}
<style>
/* your style here */
</style>
{/block}
有关详细信息,请参阅我的博客文章: http://mercstudio-tech.blogspot.com/2013/05/prestashop-form-field-type.html