Теги: недавно смотрели, шаблон electronics
Хотите чтобы мы рассказали ещё о чём-то - предлагайте тему.
Следите за нашими публикациями в социальных сетях и новостных каналах.
Ответ на вопрос посетителя сайта по теме шаблонов.
Полезные сведения
Александр55 спрашивал Как сделать блок вы недавно смотрели не текстовыми ссылками, а картинками в шаблоне Electronics v2.
Откройте файл common/recent.htm шаблона Electronics. Данный файл отвечает за вывод блока недавно просмотренных товаров, категорий, брендов, новостей, статей.
Заметка Так как механизмы упрощения шаблонизации в Impera CMS развиваются быстрее, чем выходят новые шаблоны или корректируются давно вышедшие шаблоны, то в открытом файле вы увидите достаточно сложную галиматью уже устаревшего кода. С нынешними возможностями движка эту кодо-лапшу можно записать проще. Именно такая запись будет намного понятнее вам, и на ней я построю объяснение. Смело используйте её вместо старого содержимого файла.
Итак, мы имеем файл следующего легко читаемого содержания, где с помощью локальной функции listRecent поочередно выводим список недавних страниц, хранящийся в переменных $recent_products, $recent_categories и так далее именованных согласно типу страницы:
{* <!-- недавно просмотренные --> *}{strip} {function listRecent} {if !empty($items)} {foreach $items as $item} <li class="item"> <a href="{url}">{name}</a> </li> {/foreach} <li class="separator"></li> {/if} {/function}
<div class="block recent"> <h4>Вы недавно смотрели</h4> <div class="block_content"> <ul class="bullet"> {listRecent items=$recent_products} {listRecent items=$recent_categories} {listRecent items=$recent_brands} {listRecent items=$recent_news} {listRecent items=$recent_articles} </ul> </div> </div> {/strip}
Обратите внимание Каждую перечисляемую недавнюю страницу мы выводим в виде названия с помощью шаблонизационной функции name.
Если же теперь вместо названия захотим использовать картинки, то вместо функции name должны использовать функцию получения url-а картинки - это функция image или её улучшенная версия - это функция findImage.
Вот как изменится код: согласно сообщенному типу картинки мы получаем её данные в переменную $image и выводим соответствующий элемент этой переменной в теге картинки, а тип картинки сообщаем при вызове локальной функции.
{* <!-- недавно просмотренные --> *}{strip} {function listRecent} {if !empty($items)} {foreach $items as $item} <li class="item"> <a href="{url}"> {findImage type=$type assign=image} <img src="{$image['url']}" alt="" /> </a> </li> {/foreach} <li class="separator"></li> {/if} {/function}
<div class="block recent"> <h4>Вы недавно смотрели</h4> <div class="block_content"> <ul class="bullet"> {listRecent items=$recent_products type=product} {listRecent items=$recent_categories type=category} {listRecent items=$recent_brands type=brand} {listRecent items=$recent_news type=news} {listRecent items=$recent_articles type=article} </ul> </div> </div> {/strip}
О типе картинки В ситуации, когда все ваши картинки хранятся на другом сервере или поставляются через CDN (система доставки контента - это распределённая сеть серверов), как делают сейчас крупные магазины, чтобы выдержать колоссальный трафик и сохранить высокую скорость отдачи страниц, тогда параметр type необязателен и код можно записать вообще так.
{* <!-- недавно просмотренные --> *}{strip} {function listRecent} {if !empty($items)} {foreach $items as $item} <li class="item"> <a href="{url}"> {findImage assign=image} <img src="{$image['url']}" alt="" /> </a> </li> {/foreach} <li class="separator"></li> {/if} {/function}
<div class="block recent"> <h4>Вы недавно смотрели</h4> <div class="block_content"> <ul class="bullet"> {listRecent items=$recent_products} {listRecent items=$recent_categories} {listRecent items=$recent_brands} {listRecent items=$recent_news} {listRecent items=$recent_articles} </ul> </div> </div> {/strip}
Тот же код для CDN-случая и с заменой функции findImage на более простую image будет выглядеть чуть проще.
{* <!-- недавно просмотренные --> *}{strip} {function listRecent} {if !empty($items)} {foreach $items as $item} <li class="item"> <a href="{url}"> <img src="{image}" alt="" /> </a> </li> {/foreach} <li class="separator"></li> {/if} {/function}
<div class="block recent"> <h4>Вы недавно смотрели</h4> <div class="block_content"> <ul class="bullet"> {listRecent items=$recent_products} {listRecent items=$recent_categories} {listRecent items=$recent_brands} {listRecent items=$recent_news} {listRecent items=$recent_articles} </ul> </div> </div> {/strip}
Теги: недавно смотрели, шаблон electronics
Хотите чтобы мы рассказали ещё о чём-то - предлагайте тему.
Следите за нашими публикациями в социальных сетях и новостных каналах.
ВКонтактеGoogle+Facebook