Как скрыть свойство

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Евгений M
Евгений M
Возраст: 37
Репутация: 4
Сообщения: 86
Зарегистрирован: 15.12.2018
С нами: 5 лет 3 месяца
Откуда: Киев

Сообщение #1 Евгений » 23.01.2021, 15:42

V 2.3.4
На сайте следующая структура меню:
-Сборные модели из пластика
--Модели автомобилей
--модели самолетов
--и т.д.
Модели имеют различные свойства - есть общие для всех моделей, а есть индивидуальные для некоторых подкатегорий.
У некоторых подкатегорий есть свойство "Тип". У самолетов это: истребитель, бомбардировщик, пассажирский и т.д. У автомобилей это: грузовик, легковой автомобиль, автобус и т.д.
В админке создаем свойство "Тип" и необходимые значения свойств и указываем "Использовать в категориях" Модели самолетов и Модели автомобилей без указания главной категории Сборные модели.
В данной ситуации при заполнении карточки товара в блоке "Свойства товара" отсутствует возможность выбора свойства Тип, так как система подтягивает все свойства указанные для главной категории Сборные модели. Если же мы в данном блоке насильно добавляем свойство Тип, то на странице свойства Тип в блоке "Использовать в категориях" автоматически добавляется и Сборные модели из пластика. Эта ситуация есть очень неудобной, так-как в разных категориях различных свойств набирается под 70 штук и в результате на странице категории "Сборные модели из пластика " в боковом фильтре свойств все они вываливаются огромным списком.
Подскажите пожалуйста как скрыть на странице категории "Сборные модели из пластика" из фильтра свойств свойство "Тип", но чтобы остальные свойства выводились.
В файле /design/okay_cms/html/features.tpl писал следующее :

Код: Выделить всё

{* Features filter *}
        {if $features}
            {foreach $features as $key=>$f}
         {if $category->id == 202}
{$feature->id !=150}
   {else}
                {* Feature name *}
                <div class="h2 filter_name" data-feature="{$f->id}">{$f->name|escape}</div>

                <div class="filter_group">
                    {* Display all features *}
                    <div class="filter_item">
                        <form method="post">
                            {$furl = {furl params=[$f->url=>null, page=>null]}}
                            <button type="submit" name="prg_seo_hide" class="filter_link {if !$smarty.get.$key} checked{/if}" value="{$furl|escape}">
                                <i class="filter_indicator"></i>
                                <span data-language="features_all">{$lang->features_all}</span>
                            </button>
                        </form>
                    </div>
                    {* Feture value *}
                    {foreach $f->features_values as $fv}
                        <div class="filter_item">
                            {$furl = {furl params=[$f->url=>$fv->translit, page=>null]}}
                            {if !$fv->to_index || $seo_hide_filter || ($smarty.get.{$f@key} && in_array($fv->translit,$smarty.get.{$f@key},true))}
                                <form method="post">
                                    <button type="submit" name="prg_seo_hide" class="filter_link{if $smarty.get.{$f@key} && in_array($fv->translit,$smarty.get.{$f@key},true)} checked{/if}" value="{$furl|escape}">
                                        <i class="filter_indicator"></i>
                                        <span>{$fv->value|escape}</span>
                                    </button>
                                </form>
                            {else}
                                <a class="filter_link{if $smarty.get.{$f@key} && in_array($fv->translit,$smarty.get.{$f@key},true)} checked{/if}" href="{$furl}">
                                    <i class="filter_indicator"></i>
                                    <span>{$fv->value|escape}</span>
                                </a>
                            {/if}
                        </div>
                    {/foreach}

                </div>
            {/if}
            {/foreach}
        {/if}
       

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #2 OkayCMS » 24.01.2021, 07:23

А что вам мешает создать два одинаковых свойства тип, но вносить вам в них разные данные

Евгений M
Евгений M
Возраст: 37
Репутация: 4
Сообщения: 86
Зарегистрирован: 15.12.2018
С нами: 5 лет 3 месяца
Откуда: Киев

Сообщение #3 Евгений » 24.01.2021, 07:53

OkayCMS писал(а):А что вам мешает создать два одинаковых свойства тип, но вносить вам в них разные данные
Простите, не совсем понял что вы имеете в виду.
Мне необходимо, чтобы на странице подкатегорий "Модели автомобилей" и "Модели самолетов" в боковом фильтре по свойствам можно было выбрать свойство "Тип". При этом на странице материнской категории "Сборные модели из пластика" свойство тип в боковом фильтре выводиться не должно.
Если на странице свойства "Тип" в блоке "Использовать в категориях" снять отметку "Сборные модели из пластика", то все значения этого свойства в этой категории будут удалены.

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #4 korshunov » 24.01.2021, 11:04

У свойства есть настройка Отображать в фильтре. Она единая сразу на все категории.
А Вам надо чтобы эта настройка была индивидуальной для каждой пару категория-свойство. А Okay такого нет. А было бы полезно...
Либо, если Вам надо это только для одной пары категория-свойство, то прописывать исключение, например, в шаблоне...

Евгений M
Евгений M
Возраст: 37
Репутация: 4
Сообщения: 86
Зарегистрирован: 15.12.2018
С нами: 5 лет 3 месяца
Откуда: Киев

Сообщение #5 Евгений » 24.01.2021, 11:21

korshunov писал(а):У свойства есть настройка Отображать в фильтре. Она единая сразу на все категории.
А Вам надо чтобы эта настройка была индивидуальной для каждой пару категория-свойство. А Okay такого нет. А было бы полезно...
Либо, если Вам надо это только для одной пары категория-свойство, то прописывать исключение, например, в шаблоне...
Я собственно и пытаюсь сделать это исключением в файле /design/okay_cms/html/features.tpl пробовал так:

Код: Выделить всё

{if $category->id == 202 && $f->id !=150}

В результате на странице материнской категории все работает как надо (ненужное свойство удаляется, а остальные остаются), а на странице подкатегории удаляются все свойства. Подскажите пожалуйста как подправить.

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #6 korshunov » 24.01.2021, 11:57

Пробуйте

{if $category->id != 202 || $f->id !=150}
вывод свойства {$f->id}
{/if}

Евгений M
Евгений M
Возраст: 37
Репутация: 4
Сообщения: 86
Зарегистрирован: 15.12.2018
С нами: 5 лет 3 месяца
Откуда: Киев

Сообщение #7 Евгений » 24.01.2021, 12:37

korshunov писал(а):{if $category->id != 202 || $f->id !=150}
Огромное спасибо! Все работает!


Название раздела: Обсуждение прочих вопросов
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Обсуждение прочих вопросов»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя