{РЕШЕНИЕ НАЙДЕНО} Оформление для отдельных опций товара

Добрый день.

Имеем вывод всех опций товара на странице:
[[msProductOptions? 
&tpl=`OptionShopTpl`
]]

Чанк OptionShopTpl:

{if $options} {* Проверяем на пустоту *}   
    {foreach $options as $option}  {* Перебираем *}
        <div class="row" style="background-color: #f7efef; padding: 3px; margin-bottom: 2px;">
            <div class="col-xs-7" style="padding-bottom: 1px; border-right: 1px solid #aaa;">
                <strong>{$option.caption}:</strong>
                <span></span>
            </div>  {* Выводим название опции *}
            <div class="col-xs-5" style="text-align: center;">
                {if $option.value is array} {* Проверяем, если значение опции является массивом *}
                    {$option.value | join : ', '}  {$option.measure_unit}  {* то выводим с помощью разделителя *}
                {else} {* иначе, т.е. строка, число и другое *}
                    <b>{$option.value} {$option.measure_unit}</b> {* просто выводим значение и ед. измерения *}
                {/if}
            </div>
        </div>
    {/foreach}
{/if}
Задумка такая — если {$option.caption} равен ключу «performance» то мы выводим этот performance со своим стилем, иначе выводим остальные опции.

Пробовал ставить условие так:
{if $option.caption == performance }
     вывод только performance со своим стилем
{else}
{$option.caption}:
и так:
{if $option.caption.perfomence }
    вывод только performance со своим стилем
{else}
{$option.caption}:
в итоге вообще ничего не выводит.

Возможно вообще все не то, пытаюсь разобраться). Не бросайте камнями.
Андрей Перевезенцев
12 апреля 2019, 09:54
modx.pro
814
0

Комментарии: 5

Андрей Перевезенцев
12 апреля 2019, 10:40
0
Решил вопрос, на данный момент так:
{if 'Пропускная способность' in $option.caption}
     <i class="fas fa-info-circle"></i>
{else}
                
{/if}
Т.е. если опция, которую выводим равна «Пропускная способность» то добавляем иконку при выводе названия, у остальных пропускаем.
    Vlad Brise
    12 апреля 2019, 13:43
    0
    А если изменится название опции? Тогда у вас не будет работать условие
      Андрей Перевезенцев
      12 апреля 2019, 14:43
      0
      Логично, спасибо, что поправили…
      Тогда
      {if '21' in $option.id}
      
      {else}
                      
      {/if}
      А вот как условие прописать, если для нескольких нужно, пока не разберусь.
      {if '21' || '17' in $option.id}

      Пробовал, и так
      {if '21' or '17' in $option.id}

      все игнорится и применяются почему то стили вообще для всех.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
5