Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Фильтры Categories


rpaklin

Recommended Posts

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

 

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

 

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

Надіслати
Поділитися на інших сайтах


1 час назад, rpaklin сказал:

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

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

Надіслати
Поділитися на інших сайтах


14 минут назад, i3bepb сказал:

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

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

Змінено користувачем rpaklin
Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах


4 минуты назад, i3bepb сказал:

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

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

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

Надіслати
Поділитися на інших сайтах


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 %}

 

Надіслати
Поділитися на інших сайтах


В файле 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 - у всех снизу

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.