scary.png Happy Halloween! Лови жутко страшный список шаблонов и модулей со скидками.
Jump to content
Sign in to follow this  
rpaklin

Фильтры Categories

Recommended Posts

Доброго дня, форумчане!

 

Сразу, чтобы расставить все точки над i - в php не бум-бум почти совсем, понимаю чуток только на уровне логики. Все манипуляции делаю методом "тыка на коленке".

 

В шаблоне category.twig пытаюсь разобраться с условием if categories|length <=5. Я понимаю что значит этот фильтр - количество категорий в этой категории. Вопрос в другом, как сделать зависимость дизайна не от количества категорий, а к примеру от вложенности 1 lvl/2lvl/3lvl и т.д. Есть ли уже другое условие, которое можно задать переменной categories?

Share this post


Link to post
Share on other sites
1 час назад, rpaklin сказал:

Вопрос в другом, как сделать зависимость дизайна не от количества категорий, а к примеру от вложенности 1 lvl/2lvl/3lvl и т.д.

Т.е. если находитесь в категории 1 lvl, то один кусок шаблона. Если в категории 2 lvl, то другой?

Share this post


Link to post
Share on other sites
14 минут назад, i3bepb сказал:

Т.е. если находитесь в категории 1 lvl, то один кусок шаблона. Если в категории 2 lvl, то другой?

Да, то есть сейчас идет условие по количеству подгрупп, но идея в том, чтобы в категориях первой ступени было description внизу, второй/третьей справа, а далее вообще не было(последнее решаемо стандартными средствами ocstore, судя по коду. Нет описания и не выводится ничего), при этом количество может быть как больше так и меньше 5(какое изначально в коде забито)

Edited by rpaklin

Share this post


Link to post
Share on other sites

Просто готового признака на каком уровне находится категория нет. У категории есть parent_id, если он равен 0 то это первый уровень, а вот если не равен 0, тогда может быть и второй и третий...

Т.е. надо вначале придумать такой признак в модели, а затем уже использовать в шаблоне category.twig

Share this post


Link to post
Share on other sites
4 минуты назад, i3bepb сказал:

Просто готового признака на каком уровне находится категория нет. У категории есть parent_id, если он равен 0 то это первый уровень, а вот если не равен 0, тогда может быть и второй и третий...

Т.е. надо вначале придумать такой признак в модели, а затем уже использовать в шаблоне category.twig

Мне в принципе всего 2 различия и надо. Категория 1 уровня(в главном меню) - один дизайн, остальные другой.

Share this post


Link to post
Share on other sites

Но если в шаблоне прописывать {% if parent_id == 0 %} то он везде одинаковый становится, даже else уже ни на что не влияет)

Share this post


Link to post
Share on other sites
47 минут назад, rpaklin сказал:

всего 2 различия и надо

Файл catalog/controller/product/category.php там ищем получение категории

$category_info = $this->model_catalog_category->getCategory($category_id);

if ($category_info) {
	$this->document->setTitle($category_info['meta_title']);

В $category_info у Вас есть значение parent_id, прокидываем его в массив $data, который дальше пойдет в шаблон, т.е. меняем вот так

$category_info = $this->model_catalog_category->getCategory($category_id);

if ($category_info) {
	$data['main_category'] = $category_info['parent_id'] > 0 ? 1 : 0;
	$this->document->setTitle($category_info['meta_title']);

Если main_category = 0, то 1 lvl категория, если main_category = 1, то не 1 lvl

Затем в шаблоне category.twig используем

{% if main_category == 1 %}
// что-то для других
{% else %}
// что-то для категории 1 lvl
{% endif %}

 

Share this post


Link to post
Share on other sites

В файле php верхнюю строку такую нашел

$category_info = $this->model_catalog_category->getCategory($category_id);

Дальнейшего условия 

if ($category_info) {
	$this->document->setTitle($category_info['meta_title']);

за ней не было, к сожалению. Просто дописал ниже

if ($category_info) {
	$data['main_category'] = $category_info['parent_id'] > 0 ? 1 : 0;
	$this->document->setTitle($category_info['meta_title']);

И в шаблоне 

{% if main_category == 0 %}
      <div>
        <div class="col-sm-12">
            {% for category in categories %}
              <div class="product-layout col-md-3 col-sm-6 col-xs-12 child-category category-width20">
                <center><a href="{{ category.href }}"><div><img src="{{ category.thumb }}" alt="{{ category.name }}" /><br>{{ category.name }}</div></a></center>
          </div>
            {% endfor %}
        </div>

          {% if description %}
            <div class="description-full block">{{ description }}</div>
          {% endif %}
      </div>

      {% else %}

      <div>
        <div class="col-sm-8">
            {% for child in category %}
            <div class="product-layout col-lg-3 col-md-3 col-sm-6 col-xs-12 child-category">
              <center><a href="{{ child.href }}"><div><img src="{{ child.thumb }}" alt="{{ child.name }}" /><br>{{ child.name }}</div></a></center>
            </div>
            {% endfor %}
        </div>
          {% if description %}
          <div class="description-child">{{ description }}</div>
          {% endif %}

      </div>

Но не запустилось, ну точнее как не запустилось. Меняю на 1 у всех категорий и подкатегорий - дескрипшн сбоку, меняю на 0 - у всех снизу

Share this post


Link to post
Share on other sites

Ну и верхняя строка в php у меня 

$category_info = $this->model_catalog_category->getCategory($this->request->get['category_id']);

Так сказать нашел похожую)

Share this post


Link to post
Share on other sites

Простите, затупил. Не в том category.php рылся) Решение i3bepb правильное

Спасибо огромное)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.