Вывод цветов в свойстве

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

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #1 Julius123 » 05.04.2017, 10:10

Хочу самостоятельно сделать вывод свойства "Цвет" цветом в фильтре, чтобы указывать код цвета в свойстве Цвет. Для этого как проверить через smarty по id свойства чтобы сделать другой вывод только для этого свойства?

m1hasik M
Аватара
m1hasik M
Возраст: 32
Репутация: 31
Сообщения: 200
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Откуда: Днепр
Skype

Сообщение #2 m1hasik » 05.04.2017, 11:00

Julius123 писал(а):Хочу самостоятельно сделать вывод свойства "Цвет" цветом в фильтре, чтобы указывать код цвета в свойстве Цвет. Для этого как проверить через smarty по id свойства чтобы сделать другой вывод только для этого свойства?

{if $f->id == 'айдишник свойства цвет'}
вывод цветом
{else}
вывод галочками
{/if}

trainracing M
Аватара
trainracing M
Возраст: 31
Репутация: 13
Сообщения: 121
Зарегистрирован: 07.10.2016
С нами: 7 лет 5 месяцев
Сайт

Сообщение #3 trainracing » 05.04.2017, 15:03

Julius123 писал(а):Хочу самостоятельно сделать вывод свойства "Цвет" цветом в фильтре, чтобы указывать код цвета в свойстве Цвет. Для этого как проверить через smarty по id свойства чтобы сделать другой вывод только для этого свойства?

а как решил проблему с мультисвойствами? я тоже буду их ставить

m1hasik M
Аватара
m1hasik M
Возраст: 32
Репутация: 31
Сообщения: 200
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Откуда: Днепр
Skype

Сообщение #4 m1hasik » 06.04.2017, 05:57

В таком случае советую у свойства добавить галочку "цвет"
и тогда при проверке у вас будет что то типа такого
{if $f->color}
вывод цвет
{else}
вывод галкой
{/if}

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #5 Julius123 » 06.04.2017, 07:13

Подскажите как внедрить правильно в код
{* Фильтр по свойствам *}

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

{if $features}
{foreach $features as $key=>$f}
   {* Название свойства *}
   <div class="f_block">
      <div class="h5 data-feature="{$f->id}">{$f->name}</div>
      {* Сброс всех свойств *}
      <div>
         <label class="custom-control custom-checkbox">
            <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>null, page=>null]}'" type="checkbox"{if !$smarty.get.$key} checked{/if}/>
            <span class="custom-control-indicator"></span>
            <span data-language="{$translate_id['features_all']}">{$lang->features_all}</span>
         </label>
      </div>
      {* Значения свойств *}
      {foreach $f->options as $o}
         <div{if $o@iteration>5 && !$smarty.get.$key} class="hidden"{/if}>
            <label class="custom-control custom-checkbox">
               <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>$o->translit, page=>null]}'" type="checkbox"{if $smarty.get.{$f@key} && in_array($o->translit,$smarty.get.{$f@key})} checked{/if}/>
               <span class="custom-control-indicator"></span>
               <span>{$o->value|escape}</span>
            </label>
         </div>
         {if $o@last && $o@iteration >5 && !$smarty.get.$key}
         <a href="javascript:void(0)" class="more-link" onclick="$(this).parent().find('.hidden').removeClass('hidden'); $(this).hide();" ><span>Весь список</span></a>
         {/if}
      {/foreach}
   </div>
{/foreach}
{/if}


Почему-то ругается на {else} при проверке на id категории

m1hasik M
Аватара
m1hasik M
Возраст: 32
Репутация: 31
Сообщения: 200
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Откуда: Днепр
Skype

Сообщение #6 m1hasik » 06.04.2017, 07:48

Julius123 писал(а):Подскажите как внедрить правильно в код
{* Фильтр по свойствам *}

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

{if $features}
{foreach $features as $key=>$f}
   {* Название свойства *}
   <div class="f_block">
      <div class="h5 data-feature="{$f->id}">{$f->name}</div>
      {* Сброс всех свойств *}
      <div>
         <label class="custom-control custom-checkbox">
            <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>null, page=>null]}'" type="checkbox"{if !$smarty.get.$key} checked{/if}/>
            <span class="custom-control-indicator"></span>
            <span data-language="{$translate_id['features_all']}">{$lang->features_all}</span>
         </label>
      </div>
      {* Значения свойств *}
      {foreach $f->options as $o}
         <div{if $o@iteration>5 && !$smarty.get.$key} class="hidden"{/if}>
            <label class="custom-control custom-checkbox">
               <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>$o->translit, page=>null]}'" type="checkbox"{if $smarty.get.{$f@key} && in_array($o->translit,$smarty.get.{$f@key})} checked{/if}/>
               <span class="custom-control-indicator"></span>
               <span>{$o->value|escape}</span>
            </label>
         </div>
         {if $o@last && $o@iteration >5 && !$smarty.get.$key}
         <a href="javascript:void(0)" class="more-link" onclick="$(this).parent().find('.hidden').removeClass('hidden'); $(this).hide();" ><span>Весь список</span></a>
         {/if}
      {/foreach}
   </div>
{/foreach}
{/if}


Почему-то ругается на {else} при проверке на id категории


сам цикл со свойствами можно сделать так:

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

 {foreach $f->options as $o}
      {if $f->id == 'айди цвета'}
       <div{if $o@iteration>5 && !$smarty.get.$key} class="hidden"{/if}>
            <label class="custom-control custom-checkbox">
               <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>$o->translit, page=>null]}'" type="checkbox"{if $smarty.get.{$f@key} && in_array($o->translit,$smarty.get.{$f@key})} checked{/if}/>
               <span class="custom-control-indicator"></span>
               <span style="background: #{$o->value|escape}">{$o->value|escape}</span>
            </label>
          </div>
      {else}
          <div{if $o@iteration>5 && !$smarty.get.$key} class="hidden"{/if}>
            <label class="custom-control custom-checkbox">
               <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>$o->translit, page=>null]}'" type="checkbox"{if $smarty.get.{$f@key} && in_array($o->translit,$smarty.get.{$f@key})} checked{/if}/>
               <span class="custom-control-indicator"></span>
               <span>{$o->value|escape}</span>
            </label>
          </div>
       {/if}
         {if $o@last && $o@iteration >5 && !$smarty.get.$key}
         <a href="javascript:void(0)" class="more-link" onclick="$(this).parent().find('.hidden').removeClass('hidden'); $(this).hide();" ><span>Весь список</span></a>
         {/if}
      {/foreach}

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #7 Julius123 » 06.04.2017, 07:55

m1hasik писал(а):
Julius123 писал(а):Подскажите как внедрить правильно в код
{* Фильтр по свойствам *}

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

{if $features}
{foreach $features as $key=>$f}
   {* Название свойства *}
   <div class="f_block">
      <div class="h5 data-feature="{$f->id}">{$f->name}</div>
      {* Сброс всех свойств *}
      <div>
         <label class="custom-control custom-checkbox">
            <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>null, page=>null]}'" type="checkbox"{if !$smarty.get.$key} checked{/if}/>
            <span class="custom-control-indicator"></span>
            <span data-language="{$translate_id['features_all']}">{$lang->features_all}</span>
         </label>
      </div>
      {* Значения свойств *}
      {foreach $f->options as $o}
         <div{if $o@iteration>5 && !$smarty.get.$key} class="hidden"{/if}>
            <label class="custom-control custom-checkbox">
               <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>$o->translit, page=>null]}'" type="checkbox"{if $smarty.get.{$f@key} && in_array($o->translit,$smarty.get.{$f@key})} checked{/if}/>
               <span class="custom-control-indicator"></span>
               <span>{$o->value|escape}</span>
            </label>
         </div>
         {if $o@last && $o@iteration >5 && !$smarty.get.$key}
         <a href="javascript:void(0)" class="more-link" onclick="$(this).parent().find('.hidden').removeClass('hidden'); $(this).hide();" ><span>Весь список</span></a>
         {/if}
      {/foreach}
   </div>
{/foreach}
{/if}


Почему-то ругается на {else} при проверке на id категории


сам цикл со свойствами можно сделать так:

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

 {foreach $f->options as $o}
      {if $f->id == 'айди цвета'}
       <div{if $o@iteration>5 && !$smarty.get.$key} class="hidden"{/if}>
            <label class="custom-control custom-checkbox">
               <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>$o->translit, page=>null]}'" type="checkbox"{if $smarty.get.{$f@key} && in_array($o->translit,$smarty.get.{$f@key})} checked{/if}/>
               <span class="custom-control-indicator"></span>
               <span style="background: #{$o->value|escape}">{$o->value|escape}</span>
            </label>
          </div>
      {else}
          <div{if $o@iteration>5 && !$smarty.get.$key} class="hidden"{/if}>
            <label class="custom-control custom-checkbox">
               <input class="custom-control-input" onchange="window.location.href='{furl params=[$f->url=>$o->translit, page=>null]}'" type="checkbox"{if $smarty.get.{$f@key} && in_array($o->translit,$smarty.get.{$f@key})} checked{/if}/>
               <span class="custom-control-indicator"></span>
               <span>{$o->value|escape}</span>
            </label>
          </div>
       {/if}
         {if $o@last && $o@iteration >5 && !$smarty.get.$key}
         <a href="javascript:void(0)" class="more-link" onclick="$(this).parent().find('.hidden').removeClass('hidden'); $(this).hide();" ><span>Весь список</span></a>
         {/if}
      {/foreach}
При такой конструкции свойства товаров вообще пропадают почему-то

m1hasik M
Аватара
m1hasik M
Возраст: 32
Репутация: 31
Сообщения: 200
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Откуда: Днепр
Skype

Сообщение #8 m1hasik » 06.04.2017, 08:11

Вы id верно вписали? там есть это поле, проверка будет проходить

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #9 Julius123 » 06.04.2017, 08:19

m1hasik писал(а):Вы id верно вписали? там есть это поле, проверка будет проходить
Да, прописывал id свойства который из ссылки и вручную пробовал прописывать в свойстве, но это я так понимаю только для описания

Добавлено спустя 20 минут 49 секунд:
Проблема не в самой проверке на id свойства, потому что даже то что в {else} тоже не выводится, то есть все остальные свойства.

m1hasik M
Аватара
m1hasik M
Возраст: 32
Репутация: 31
Сообщения: 200
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Откуда: Днепр
Skype

Сообщение #10 m1hasik » 06.04.2017, 09:42

То есть без проверок тоже не работает? у вас свойства с базы не выбираются в принципе?

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #11 Julius123 » 06.04.2017, 09:46

m1hasik писал(а):То есть без проверок тоже не работает? у вас свойства с базы не выбираются в принципе?
Нет, я имел ввиду что даже то что после элс тоже не выводится, то есть то что не подпадает под проверку на id свойства.
Сделал немного проще и изменил только одну строку

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

<span {if $f->id == '255'}class ="color_product" style="background: #{$o->value|escape};"{/if}>{if $f->id == '255'}<label class ="color_product">&emsp;&emsp;&emsp;</label>{else}{$o->value|escape}{/if}</span>


Добавлено спустя 1 час 10 минут:
Спасибо за помощь.


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

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


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

   

Вернуться в «Вопросы по работе с OkayCMS»

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

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