将标签添加到扩展/模块

时间:2018-07-31 21:02:05

标签: opencart opencart-module opencart-3

im试图使产品标签显示在精选模块上,实际上是网站上的任何位置!我设法使标签起作用,但是由于某种原因,它仅在所有产品(相同标签)上显示1个标签,而不是每个项目都使用单个标签。

每个产品我都有自己的标签,只有相同的标签显示我输入的位置!

我在我的Featured.php控制器中有此内容:

$data['tags'] = array();

            if ($product_info['tag']) {
                $tags = explode(',', $product_info['tag']);

                foreach ($tags as $tag) {
                    $data['tags'][] = array(
                        'tag'  => trim($tag),
                        'href' => $this->url->link('product/search', 'tag=' . trim($tag))
                    );
                }
        }

和我的Featured.twig文件中:

{% if tags %}
    <p>{{ text_tags }}
    {% for i in 0..tags|length %}
    {% if i < (tags|length - 1) %} <a href="{{ tags[i].href }}">{{ tags[i].tag }}</a>,
    {% else %} <a href="{{ tags[i].href }}">{{ tags[i].tag }}</a> {% endif %}
    {% endfor %} </p>
    {% endif %}

现在,正如我所说,它只是为每个产品重复相同的标签,而不是使用每个产品自己的标签。...我哪里出错了?

非常感谢!

1 个答案:

答案 0 :(得分:1)

在featured.php控制器中,找到:

<div style="width : 200px; height : 80px; border: 1px solid red" data-bind="click : clicked">
   <input type="text" data-bind="textInput: input1, event : { keydown : function(){ return tabOut(event)}}" />
   <input type="text" data-bind="textInput: input2" />
   <span data-bind="text : result"></span>
</div>

替换为:

$data['products'][] = array(

并在Featured.twig中使用它:

$product_tags = array();
if ($product_info['tag']) {
    $tags = explode(',', $product_info['tag']);
    foreach ($tags as $tag) {
        $product_tags[] = array(
            'tag'  => trim($tag),
            'href' => $this->url->link('product/search', 'tag=' . trim($tag))
        );
    }
}
$data['products'][] = array(
    'tags' => $product_tags,