Нужно сделать отображение свойств товаров

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

Maks130792
Maks130792
Репутация: 0
Сообщения: 3
Зарегистрирован: 29.12.2021
С нами: 23 дня 13 часов

Сообщение #1 Maks130792 » 29.12.2021, 21:17

Привет! Нужно сделать вывод свойств в кратком описании но только тех которые нужно выбрать, не всех свойств а только выбранных.

Master
Master
Репутация: 19
Сообщения: 52
Зарегистрирован: 25.01.2016
С нами: 5 лет 11 месяцев

Сообщение #2 Master » 30.12.2021, 17:57

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

{if $product->features}
   <ul>
      {foreach $product->features as $f}
         {if ($f->id == 2 || $f->id == 4 || $f->id == 5)}
            <li>
               <span>{$f->name|escape}:</span>
               {foreach $f->values as $value}
                  {if $category && $f->url_in_product && $f->in_filter && $value->to_index}
                     <a href="{url_generator route="category" url=$category->url}{if !$settings->category_routes_template_slash_end}/{/if}{$f->url}-{$value->translit}">{$value->value|escape}</a>{if !$value@last},{/if}
                  {else}
                     {$value->value|escape}{if !$value@last},{/if}
                  {/if}
               {/foreach}
            </li>
         {/if}
      {/foreach}
   </ul>
{/if}


в строке
{if ($f->id == 1 || $f->id == 2 || $f->id == 3)} вместо 1,2,3 пишите id нужных вам свойств

Maks130792
Maks130792
Репутация: 0
Сообщения: 3
Зарегистрирован: 29.12.2021
С нами: 23 дня 13 часов

Сообщение #3 Maks130792 » 03.01.2022, 17:06

Добавлено спустя 1 час 5 минут:
Master,Добрый вечер! В какой файл нужно вставлять?

Добавлено спустя 33 минуты 10 секунд:
Не отображаеться?(

Master
Master
Репутация: 19
Сообщения: 52
Зарегистрирован: 25.01.2016
С нами: 5 лет 11 месяцев

Сообщение #4 Master » 03.01.2022, 19:00

design/okay_shop/html/product.tpl

Maks130792
Maks130792
Репутация: 0
Сообщения: 3
Зарегистрирован: 29.12.2021
С нами: 23 дня 13 часов

Сообщение #5 Maks130792 » 04.01.2022, 20:58

Master, Я извиняюсь я может не правильно выразился мне вставить свойства вот сюда
Вложения
Снимок экрана 2022-01-04 225818.jpg

korshunov
korshunov
Репутация: 108
Сообщения: 1579
Зарегистрирован: 03.12.2015
С нами: 6 лет 1 месяц
Skype

Сообщение #6 korshunov » 05.01.2022, 09:08

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

1. design/okay_shop/html/product.tpl не относится к списку товаров, а к странице отдельного товара. А там и так по умолчанию выводятся все свойства.
2. Можно попробовать вставлять код, который дал Master, в design/okay_shop/html/product_list.tpl. Но работать это не будет, так в этот шаблон в принципе не передаются данные по свойствам.
3. Можно попробовать добавить эти свойства, вставив строку в ProductsHelper::getList строку
$products = $this->attachFeatures($products);
но и так работать правильно не будет.
4. Причина в том, что в Okay этот момент в принципе не доделан, в файле FeaturesValuesEntity.php можно видеть комментарий
//$this->select->groupBy(['l.value']); // TODO: разобраться, вроде не нужная группировка
//$this->select->groupBy(['l.translit']);
Группировка в формируемом запросе действительно неверная, работает правильно только в самых простых случаях (например, для одного товара), а для списка товаров не годится.
5. Чтобы работало, надо переделывать как следует.
6. Упомянутый комментарий был еще в версии 4.0.0 в начале 2021 года. То есть минимум год разработчикам ошибка известна. А исправлять они, как видим, не сильно спешат.

Master
Master
Репутация: 19
Сообщения: 52
Зарегистрирован: 25.01.2016
С нами: 5 лет 11 месяцев

Сообщение #7 Master » 05.01.2022, 10:22

Может вам подойдет вот этот модуль https://okay-cms.com/products/show_features-show_features ? Правда. по умолчанию там выводятся все свойства, но можно доработать, свяжитесь с разработчиком модуля.

korshunov
korshunov
Репутация: 108
Сообщения: 1579
Зарегистрирован: 03.12.2015
С нами: 6 лет 1 месяц
Skype

Сообщение #8 korshunov » 05.01.2022, 12:08

Посмотрел демо модуля на маркетплейсе. За пять минут нашлись даже две, на мой взгляд, грубые ошибки.
1. Краткое описание товара, которое выводилось стандартно, теперь не видно. Причем даже в том случае, когда свойств у товара нет. Но при этом в коде страницы оно присутствует.
2. Если у свойства задано несколько значений, показывается лишь одно из них.

Aleks
Aleks
Репутация: 11
Сообщения: 113
Зарегистрирован: 24.05.2021
С нами: 7 месяцев 29 дней

Сообщение #9 Aleks » 06.01.2022, 08:33

Тоже посмотрел на маркетплейсе демо модуля. Ошибок там нет, тем более грубых.
Во-первых, модуль заточен на вывод информации при наведении мышки. Т.е. в данном случае должны выводиться свойства товара, но их нет. Все правильно: ничего и не выводится, если свойств нет. Единственная здесь возможная доработка: вывод краткого описания (аннотации) вместо свойств при их отсутствии.
Во-вторых. Как может быть несколько значений свойства у одного конкретного товара? Конкретный товар может иметь только одно значение свойства, например цвет - зеленый. Иной цвет - это уже варианты товара. В OkayCMS предусмотрены варианты товара.
И что мешает в аннотацию размещать несколько главных свойства товара? А описание можно и полное почитать, открыв карточку товара.

korshunov
korshunov
Репутация: 108
Сообщения: 1579
Зарегистрирован: 03.12.2015
С нами: 6 лет 1 месяц
Skype

Сообщение #10 korshunov » 06.01.2022, 11:15

Aleks писал(а):Во-первых, модуль заточен на вывод информации при наведении мышки.
Откуда Вы такое взяли? При наведении мыши показ добавочной информации делается стандартно, можете увидеть, например, на демо http://demookay.com/catalog/divany.

Aleks писал(а):Т.е. в данном случае должны выводиться свойства товара, но их нет.
Это зависит от того, что Вы понимаете под "в данном случае"... При стандартной установке свойства у многих товаров есть, и конечно, надо смотреть именно товары со свойствами.

Aleks писал(а):Во-вторых. Как может быть несколько значений свойства у одного конкретного товара?
Представьте себе, может. И не просто абстрактно может. И в Okay такая возможность есть. И появилась еще в версии 2.3.0 : viewtopic.php?f=5&t=1085, что было в начало 2019 года. Три года прошло - просыпайтесь...
А до того были отдельные доработки на тему, например
viewtopic.php?f=10&t=351&p=1811#p1811

Aleks писал(а):Иной цвет - это уже варианты товара.
Совершенно не обязательно. Разные админы решают это по-разному.

Aleks писал(а):И что мешает в аннотацию размещать несколько главных свойства товара?
Видимо, редактировать отдельно каждую карточку товара требует немалых трудозатрат, и хочется получить результат проще и быстрее. И если через некоторое время захочется добавить/удалить одно-два свойства, то опять немалые трудозатраты...

Aleks
Aleks
Репутация: 11
Сообщения: 113
Зарегистрирован: 24.05.2021
С нами: 7 месяцев 29 дней

Сообщение #11 Aleks » 06.01.2022, 12:16

Откуда Вы такое взяли? При наведении мыши показ добавочной информации делается стандартно, можете увидеть, например, на демо

Вы невнимательны. Даете ссылку на страницу демо сайта. А речь идет о демо модуле. Зайдите по ссылке у Master » Вчера, 10:22.
Там смотрите Техника для дома/Радиаторы отопления. Первый на странице Алюминиевый радиатор Global VOX 500/100.
Свойств нет и аннотации нет. О чем вы и писали ранее.

В данном случае - случай с демо модуля. Там же явно речь идет о модуле Свойства товара в каталоге

Несколько значений свойства у одного товара может быть. Здесь согласен. И решается просто: указать эти значения у свойства, например, цвет: зеленый, синий, хоть всю палитру.

С трудозатратами согласен. Здесь выход простой: или самому создать модуль или заказать доработку у Okay.

korshunov
korshunov
Репутация: 108
Сообщения: 1579
Зарегистрирован: 03.12.2015
С нами: 6 лет 1 месяц
Skype

Сообщение #12 korshunov » 06.01.2022, 13:45

Aleks писал(а):Вы невнимательны. Даете ссылку на страницу демо сайта.
Кто невнимателен, вопрос спорный. Дана ссылка именно на основное демо OkayCMS, где можно видет эффект наведения на блок отдельного товара в списке. Чтобы Вы увидели что это есть в системе изначально, и модуль совсем не "заточен на вывод информации при наведении мышки". Он лишь вставляет добавочный код в блок отдельного товара - про это сказано в описании модуля.

Aleks писал(а):Несколько значений свойства у одного товара может быть. Здесь согласен. И решается просто: указать эти значения у свойства, например, цвет: зеленый, синий, хоть всю палитру.
Видимо, имеете в виду, что у товара можно указывать ОДНО значение свойства вида 'зеленый, синий, красный'. Конечно, сделать такое можно. Но работа фильтра по свойству при большом числе товаров и активном применении перечислений цвета будет практически парализована. Чтобы найти товар с красным цветом, надо отметить свойства
'красный',
'зеленый, красный',
'красный, зеленый',
'зеленый, синий, красный',
'синий, красный, желтый'
и еще неизвестно сколько...


Название раздела: Заказ шаблонов и услуг
Правила раздела: faq.php?mode=okay

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


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

   

Вернуться в «Заказ шаблонов и услуг»

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

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