如何删除类别页面上的重复列?

时间:2018-10-21 13:22:17

标签: opencart opencart-3

在类别页面上,子类别在精简搜索中不断重复。我添加了类别和子类别。我有3个级别类别,例如,手机壳(父母)->苹果(子类别)-> iPhone X(苹果子类别)。

屏幕截图:

Image

<?php
{{ header }}
    <div id="product-category" class="container">
        <ul class="breadcrumb">
            {% for breadcrumb in breadcrumbs %}
                <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
            {% endfor %}
        </ul>
        <div class="row">
        {{ column_left }}
            {% if column_left and column_right %}
                {% set class = 'col-sm-6' %}
            {% elseif column_left or column_right %}
                {% set class = 'col-sm-9' %}
            {% else %}
                {% set class = 'col-sm-12' %}
            {% endif %}
            <div id="content" class="{{ class }}">
            {{ content_top }}
            <h2>{{ heading_title }}</h2>
                {% if thumb or description %}
                    <div class="row"> 
                    {% if thumb %}<div class="col-sm-2"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div>
                    {% endif %}
                    {% if description %}<div class="col-sm-10">{{ description }}</div>
                    {% endif %}</div>
                    <hr>
                {% endif %}
            {% if categories %}
            <h3>{{ text_refine }}</h3>
                {% if categories|length <= 5 %}
                    <div class="row">
                        <div class="col-sm-3">
                            <ul>
                            {% for category in categories %}
                                <li><a href="{{ category.href }}">{{ category.name }}</a></li>
                            {% endfor %}
                            </ul>
                        </div>
                    </div>
                {% else %}
                <div class="row">
                    {% for category in categories|batch((categories|length / 4)|round(1, 'ceil')) %}
                    <div class="col-sm-3">
                        <ul>
                            {% for child in category %}
                                <li><a href="{{ child.href }}">{{ child.name }}</a></li>
                            {% endfor %}
                        </ul>
                    </div>
                    {% endfor %}
                </div>
                <br />
                {% endif %}
            {% endif %}
{% if products %}
<div class="row">
    <div class="col-md-2 col-sm-6 hidden-xs">
        <div class="btn-group btn-group-sm">
            <button type="button" id="list-view" class="btn btn-default" data-toggle="tooltip" title="{{ button_list }}"><i class="fa fa-th-list"></i></button>
            <button type="button" id="grid-view" class="btn btn-default" data-toggle="tooltip" title="{{ button_grid }}"><i class="fa fa-th"></i></button>
        </div>
    </div>
    <div class="col-md-3 col-sm-6">
        <div class="form-group"><a href="{{ compare }}" id="compare-total" class="btn btn-link">{{ text_compare }}</a>
    </div>
</div>
<div class="col-md-4 col-xs-6">
    <div class="form-group input-group input-group-sm">
        <label class="input-group-addon" for="input-sort">{{ text_sort }}</label>
        <select id="input-sort" class="form-control" onchange="location = this.value;">
            {% for sorts in sorts %}
                {% if sorts.value == '%s-%s'|format(sort, order) %}
                    <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option>
                {% else %}
                    <option value="{{ sorts.href }}">{{ sorts.text }}</option>
                {% endif %}
            {% endfor %}
        </select>
    </div>
</div>
<div class="col-md-3 col-xs-6">
    <div class="form-group input-group input-group-sm">
        <label class="input-group-addon" for="input-limit">{{ text_limit }}</label>
        <select id="input-limit" class="form-control" onchange="location = this.value;">
            {% for limits in limits %}
                {% if limits.value == limit %}
                    <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option>
                {% else %}
                    <option value="{{ limits.href }}">{{ limits.text }}</option>
                {% endif %}
            {% endfor %}
        </select>
    </div>
</div>
</div>
<div class="row"> 
    {% for product in products %}
        <div class="product-layout product-list col-xs-12">
            <div class="product-thumb">
                <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div>
            <div>
            <div class="caption">
                <h4><a href="{{ product.href }}">{{ product.name }}</a></h4>
                <p>{{ product.description }}</p>
                {% if product.price %}
                    <p class="price"> 
                    {% if not product.special %}
                        {{ product.price }}
                    {% else %} 
                        <span class="price-new">{{ product.special }}</span> 
                        <span class="price-old">{{ product.price }}</span> 
                    {% endif %}
                    {% if product.tax %} 
                        <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> 
                    {% endif %} 
                    </p>
                {% endif %}
                {% if product.rating %}
                    <div class="rating"> 
                    {% for i in 1..5 %}
                        {% if product.rating < i %} 
                            <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> 
                        {% else %} <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span>
                        {% endif %}
    {% endfor %} 
</div>
{% endif %} 
</div>
<div class="button-group">
<button type="button" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md">{{ button_cart }}</span></button>
<button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button>
<button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button>
</div>
</div>
</div>
</div>
{% endfor %} </div>
<div class="row">
<div class="col-sm-12 text-left">{{ pagination }}</div>
{#  <div class="col-sm-6 text-right">{{ results }}</div> #}
</div>
{% endif %}
{% if not categories and not products %}
    <p>{{ text_empty }}</p>
    <div class="buttons">
        <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div>
    </div>
{% endif %}
{{ content_bottom }}</div>
{{ column_right }}</div>
</div>
{{ footer }} 

1 个答案:

答案 0 :(得分:0)

好的,这看起来很相关。

{% if categories %}
  <h3>{{ text_refine }}</h3>
    {% if categories|length <= 5 %}
    <div class="row">
      <div class="col-sm-3">
        <ul>
          {% for category in categories %}
            <li><a href="{{ category.href }}">{{ category.name }}</a></li>
          {% endfor %}
        </ul>
      </div>
    </div>
    {% else %}
    <div class="row">
      {% for category in categories|batch((categories|length / 4)|round(1, 'ceil')) %}
      <div class="col-sm-3">
        <ul>
          {% for child in category %}
            <li><a href="{{ child.href }}">{{ child.name }}</a></li>
          {% endfor %}
        </ul>
      </div>
      {% endfor %}</div>
    <br />
    {% endif %}
  {% endif %}

您认为还有其他触发因素,因为您有5个以上的类别。 如您所见,该类别中的子级将被打印,而不是您尝试触发的类别。而是删除if / else并直接遍历类别。您的每个孩子也属于多个类别,因此是重复的。

{% if categories %}
  <h3>{{ text_refine }}</h3>
    <div class="row">
      <div class="col-sm-3">
        <ul>
          {% for category in categories %}
            <li><a href="{{ category.href }}">{{ category.name }}</a></li>
          {% endfor %}
        </ul>
      </div>
    </div>
  {% endif %}

可能就是您想要的,或者如果您只想要第一类及其子类:

{% if categories %}
  <h3>{{ text_refine }}</h3>
    <div class="row">
      <div class="col-sm-3">
        <ul>
          {% for child in category %}
            <li><a href="{{ child.href }}">{{ child.name }}</a></li>
          {% endfor %}
        </ul>
      </div>
    </div>
  {% endif %}