Спрашивали - отвечаем: недавно просмотренные показать картинками

Ответ на вопрос посетителя сайта по теме шаблонов.

Александр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}

Обсуждение

Handbag Replica
In order to handle and manage the women’s desire and urge for getting utmost style, uk Replica watches are there to serve them. Now, you don’t have to remain ordinary because   replica handbags uk will never make you look like an ordinary woman. What you wanted would be fulfilled within few minutes, when you will purchase the Replica Handbags . One can never live properly without having a good thing and Rolex Watches replica is the only resort, which can make Rolex Replicas women happy.The emblem and the cowboy is a soft and powerful. To get a true "used" effect, this is bleaching, stone wash, give it a unique appearance of the "old fashioned". watches Replica Golden brass fittings shines on the2016 louis vuitton Handbags Replica .
Ринат Sibirtelecom WebStream Иркутск
По моему спам.

Написать комментарийОтветить на выделенный комментарий

Начнём?

Если у вас есть соображение по поводу изложенного выше материала или следуемого за ним обсуждения, вы можете высказать свою мысль прямо сейчас. Понадобится пройти всего 2 шага: написать комментарий, указать своё имя.

Допустимые теги

При написании комментария вы можете использовать некоторые из так называемых BB-кодов. Они обозначают подстановку определённого элемента на их место.

  • опционально парные:
    • [shot=image-url] ALT text [/shot]
    • [link=page-url] anchor text [/link]
  • всегда парные:
    • [quote] comment fragment [/quote]
    • [code] source code fragment [/code]
  • одинарные:
    • [youtube=video-url]
  • и "теговые" символы:
    • « и »

Обратите внимание

С целью точнее идентифицировать вас перед другими участниками обсуждения, сайт может высвечивать возле вашего имени две первые цифры вашего IP-адреса, название провайдера и город, опознанные по базе географической привязки IP-адресов.