当前位置: 首页 > 知识库问答 >
问题:

Prestashop添加css问题

高峻
2023-03-14

我尝试添加外部css,但不是work属性,

我正在使用prestashop版本1.7。4.3

在install()函数中,我调用钩子

&& $this->registerHook('displayHeader')
&& $this->registerHook('backOfficeHeader')

在钩子里面,我注册了css和js文件

public function hookDisplayHeader($params)
{
    $this->context->controller->addCSS(($this->_path) .'views/css/style.css');
    $this->context->controller->addJS(($this->_path) .'views/js/script.js');
    $this->context->controller->addCSS('https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');

}

public function hookBackOfficeHeader(){
    $this->context->controller->addCSS('https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
    $this->context->controller->addCSS(($this->_path) .'views/css/module.css');
    $this->context->controller->addJqueryUI('ui.sortable');

}

在hookBackOfficeHeader()中,我没有任何问题,但在hookDisplayHeader()中,我不想注册字体。

我尝试使用registerStylesheet()来添加CSS(),但根本不起作用。

为什么这两种功能之间有差异?它是,也许是因为hookDisplayHeader不接受外部文件?

非常感谢。

编辑:

我用registerStylesheet()和registerJavascript()解决了这个问题

public function hookDisplayHeader($params)
{
     $this->context->controller->registerStylesheet(
        'sidemenu',
        ($this->_path) .'views/css/style.css',
        ['server' => 'remote', 'position' => 'head', 'priority' => 150]
    );
     $this->context->controller->registerJavascript(
        'sidemenu-js',
        ($this->_path) .'views/js/script.js',
        ['server' => 'remote', 'position' => 'head', 'priority' => 120]
    );

    $this->context->controller->registerStylesheet(
        'remote-font-awesom',
        'https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',
        ['server' => 'remote', 'position' => 'head', 'priority' => 20]
    );
}

共有2个答案

梁渊
2023-03-14

addJS()、addCSS()、addJqueryUI()和addJqueryPlugin()方法保持向后兼容性。顺便说一句,现在是更新库和使用新方法的最佳时机。

开发PrestaShop模块时,可能需要为模板添加特定样式。最好的方法是使用父FrontController类提供的registerStylesheet和registerJavascript方法。

看链接:https://devdocs.prestashop.com/1.7/themes/getting-started/asset-management/

当做

从光启
2023-03-14

此外,为了添加字体-真棒,你最好使用要求资产(数组(“字体真棒”))像这样的东西

$this->context->controller->requireAssets(array('font-awesome'));
 类似资料:
  • 我的prestashop模块返回一些错误消息,我得到更多关于解决这个错误的问题,我想为这个错误添加一些提示。 我显示错误msg看起来像这样 $productObj- 并返回error msg以显示,例如,如果error msg为“name字段为空”,我希望添加类似“you products name不能为空”的错误提示 我必须抓住错误种类,(不是从字符串)有人能帮我吗?

  • 问题内容: 有没有办法将javascript文件中的字符串中的css添加到使用javascript的文档的开头? 假设我们有一个网页,其中包含一个灯箱脚本,该脚本需要一个css文件才能运行。 现在,添加此css文件将使css文件下载,即使对于未启用js的用户也是如此。 我知道我可以使用脚本动态加载css文件,但这也意味着将有2个http请求,并且在文件中几乎没有css的情况下,我发现这种效率低下。

  • 问题内容: 现在,我正在通过jquery加载iframe: 我有一个自定义样式表,希望将其应用于该页面。iframe中的页面不在同一域中,这就是为什么它很棘手的原因。我找到了允许您添加单个标签但不能添加整个样式表的解决方案。 编辑: 有问题的页面通过Mobile Safari 加载,因此跨域策略不适用。 问题答案: 基于解决方案您已经找到了如何将CSS应用于iframe?: 或更多jqueryis

  • 在CodeIgniter中添加JavaScript和CSS(层叠样式表)文件非常简单。 你必须在根目录中创建JS和CSS文件夹,并复制JS文件夹中的所有.js文件和CSS文件夹中的.css文件,如图所示。 例如,假设您已经创建了一个JavaScript文件sample.js和一个CSS文件style.css 。 现在,要将这些文件添加到视图中,请在控制器中加载URL帮助程序,如下所示。 $this

  • 我有问题。我无法登录backoffice。 我与主机提供商联系,他们说这不是他们这边的问题。 有什么办法吗?

  • 问题内容: 如何将CSS中的title =’mandatory’添加到以下内容 问题答案: 你不能 CSS是一种表示语言。它不是设计来添加内容的(除了非常琐碎的and和)。