将我的css添加到prestashop中的主题
我是普雷斯塔肖普的新手。我创建了css文件,并想将其添加到prestashop主题中。如何添加新填充并使prestashop读取标题部分中的文件?在论坛中,我看到他们说要将其添加到hookheader中,我尝试将其添加到某个模块中,并执行以下操作: 1) 添加到主题头文件将我的css添加到prestashop中的主题,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,我是普雷斯塔肖普的新手。我创建了css文件,并想将其添加到prestashop主题中。如何添加新填充并使prestashop读取标题部分中的文件?在论坛中,我看到他们说要将其添加到hookheader中,我尝试将其添加到某个模块中,并执行以下操作: 1) 添加到主题头文件{hook h=“mycsshake”} 2) 添加到某些rendom模块功能: public function myCsshook(¶ms) { $this->context->controller
{hook h=“mycsshake”}
2) 添加到某些rendom模块功能:
public function myCsshook(¶ms)
{
$this->context->controller->addCSS(($this->_path).'prestashop/myshop/theme/css/myoverride/myCsstheme.css', 'all');
}
3) 在模块安装中,复制并添加:
|| $this->registerHook('myCssHook') == false
但它不起作用。我正在使用prestashop 1.6.1.1最好的方法是在正确控制器文件的setMedia()函数中添加以下内容
$this->addCSS(_THEME_CSS_DIR_.'myoverride/myCsstheme.css');
例如,如果要将css添加到所有产品页面,则必须在之后在controllers/front/ProductController.php中添加此代码
$this->addCSS(_THEME_CSS_DIR_.'product.css');
$this->addCSS(_THEME_CSS_DIR_.'global.css', 'all');
如果要将其添加到所有页面中,则必须在之后在classes/controller/FrontController.php中添加此代码
$this->addCSS(_THEME_CSS_DIR_.'product.css');
$this->addCSS(_THEME_CSS_DIR_.'global.css', 'all');
更好(更干净)的方法是创建覆盖文件。例如,对于FrontController,在override/classes/controller/FrontController.php中创建一个名为FrontController.php的新文件,并将以下代码放入其中:
<?php
class FrontControllerCore extends Controller
{
public function setMedia()
{
parent::setMedia(); // This will take all code in setMedia() of the original classes/controller/FrontController.php
$this->addCSS(_THEME_CSS_DIR_.'myoverride/myCsstheme.css');
}
}
@ébewè:这绝对不是最好的方法,因为下一次软件更新很可能会再次被覆盖
如果要在控制器本身中执行此操作,请在overrides/controllers/yourcontrollers中创建该类的重写,并在该重写中执行此操作。这样,您的工作就不会被软件操作日期覆盖
如果您处理一个模块,那么您将在模块内创建css文件(f.i.css/mycss.css),并在适当的钩子中添加:
$this->context->controller->addCSS(($this->_path).'css/mycss.css);
如果你想在你的主题中加入这个,那么你也可以在
/themes/yourtheme/modules/yourmodule/css/mycss.css
但是,如果您不需要更改主题中的css,那么这是不必要的。在我的例子中,第一行(扩展)是这样的:FrontController扩展FrontControllerCore