Julius123 писал(а):Хочу самостоятельно сделать вывод свойства "Цвет" цветом в фильтре, чтобы указывать код цвета в свойстве Цвет. Для этого как проверить через smarty по id свойства чтобы сделать другой вывод только для этого свойства?
Julius123 писал(а):Хочу самостоятельно сделать вывод свойства "Цвет" цветом в фильтре, чтобы указывать код цвета в свойстве Цвет. Для этого как проверить через smarty по id свойства чтобы сделать другой вывод только для этого свойства?
Код: Выделить всё
{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}
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 писал(а):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}
Да, прописывал id свойства который из ссылки и вручную пробовал прописывать в свойстве, но это я так понимаю только для описанияm1hasik писал(а):Вы id верно вписали? там есть это поле, проверка будет проходить
Нет, я имел ввиду что даже то что после элс тоже не выводится, то есть то что не подпадает под проверку на id свойства.m1hasik писал(а):То есть без проверок тоже не работает? у вас свойства с базы не выбираются в принципе?
Код: Выделить всё
<span {if $f->id == '255'}class ="color_product" style="background: #{$o->value|escape};"{/if}>{if $f->id == '255'}<label class ="color_product">   </label>{else}{$o->value|escape}{/if}</span>
Вернуться в «Вопросы по работе с OkayCMS»
Сейчас этот раздел просматривают: 31 гость