Opencart,如何将样式放到单个产品名称字段(等设置颜色,粗体,下划线)?

时间:2014-03-03 09:39:10

标签: html css opencart product

我想在Opencart中为各个产品添加不同的颜色。

我不想更改样式表css文件以修改所有产品名称样式。由于管理员端的产品名称字段不接受任何HTML代码,它接受它但不会使用编码来显示想要的颜色,如红色。它只显示产品名称中的html编码。

有没有人知道这个?

4 个答案:

答案 0 :(得分:1)

我明白了。 我更改了我的目录/视图/主题/默认/模板/产品/ category.tpl行号149

由此:

<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>

到这个

      <?php $newproductname = $product['name']; ?>
      <div class="name"><a href="<?php echo $product['href']; ?>">

<?php 
    $newproductname2 = str_replace('CHEAP','<font style="color:red; text-decoration: strong">CHEAP</font>',$newproductname);
    echo $newproductname2;
?>

我知道这是一团糟,但它适用于我,因为我只需要它向我的客户展示哪些产品是“便宜”

感谢所有人

答案 1 :(得分:0)

因此我们假设您将产品名称保存为<span style="color:red;">Apple Cinema 30</span>

当它被保存时,db会变成&lt;span style=&quot;color:red;&quot;&gt;Apple Cinema 30&lt;/span&gt;所以基本上html在保存到数据库之前被编码

所以当你简单地回显它打印为编码字符串的名称,然后html将其显示为<span style="color:red;">Apple Cinema 30</span>,你不想这样做。

方法1

所以基本上在通过php打印名称之前,您需要使用html_entity_decode()对其进行解码,以便浏览器可以解析html。

例如在product.tpl中有一个声明<?php echo $heading_title; ?>需要更改为

<?php echo html_entity_decode($heading_title, ENT_QUOTES, 'UTF-8'); ?>

正如您可能认为这是一个非常痛苦的步骤,基本上您需要找出打印名称的每个地方并替换它。

现在出现警告:像标签标题一样,html会被视为纯文字,因此标题标题会显示<span>.... 所以我们认为这是一个糟糕的方法< /强>

方法2

与方法1相同,但不是替换文本,而是可以在catalog/model/catalog/product.php函数的getProduct($product_id)替换它。替换

'name'             => $query->row['name'],

'name'             => html_entity_decode($query->row['name'], ENT_QUOTES, 'UTF-8'),

但这种方法与方法1有相同的问题。

现在我们拒绝了错误的方法

正确的方法

product_id中创建一个新的数据库表,其中language_idproduct_name_htmlproduct_name_html的映射会保存您的新html标题。

现在有两种类型的名称,你可以在你想要的地方显示这个新的(html)名称(显然在被视为html而不是纯文本的地方),而不会打扰地方所需的纯文本名称标签标题,纯文本电子邮件等。

这需要相当多的编码,例如首先将html名称从admin端保存到db,然后在模型文件中编辑getProduct()类型的函数以获取您的特殊名称以及其他产品详细信息,然后替换以下代码:你感兴趣的地方

答案 2 :(得分:0)

实际上,您需要指定您将为这些产品控制的价值,它是一般的制造商,还是特定的产品,如名称。

然而,这里有一个你可以使用的PHP代码,我以前用过同样的情况,但是根据制造商进行过滤:

        if(isset($product_info['manufacturer']) && $product_info['manufacturer']=='something'){ //some comparison
            $this->document->addStyle('catalog/view/stylesheet/style.css'); //route to you style file
        }

在该文件中放置要覆盖的CSS。这段代码是针对product.php控制器的,但你可以在任何地方都遵循这个逻辑,这是opencart自己处理特定.css以及特定页面的.js的默认方式。

希望我能帮到你。

答案 3 :(得分:-1)

在stylesheet.css中修改元素

.product-list .name a{
    color:#FF0000 !important;
}

在第935行或附近。