将我的css添加到prestashop中的主题

将我的css添加到prestashop中的主题,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,我是普雷斯塔肖普的新手。我创建了css文件,并想将其添加到prestashop主题中。如何添加新填充并使prestashop读取标题部分中的文件?在论坛中,我看到他们说要将其添加到hookheader中,我尝试将其添加到某个模块中,并执行以下操作: 1) 添加到主题头文件{hook h=“mycsshake”} 2) 添加到某些rendom模块功能: public function myCsshook(&params) { $this->context->controller

我是普雷斯塔肖普的新手。我创建了css文件,并想将其添加到prestashop主题中。如何添加新填充并使prestashop读取标题部分中的文件?在论坛中,我看到他们说要将其添加到hookheader中,我尝试将其添加到某个模块中,并执行以下操作:

1) 添加到主题头文件
{hook h=“mycsshake”}

2) 添加到某些rendom模块功能:

public function myCsshook(&params)
{
$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