Инструменты пользователя

Инструменты сайта


wiki:tpl_file_breadcrumb

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

wiki:tpl_file_breadcrumb [2016/02/10 12:56] (текущий)
Строка 1: Строка 1:
 +====== Файл breadcrumb.tpl ======
  
 +Файл **breadcrumb.tpl** содержит в себе вывод "​хлебных крошек"​ с микроразметкой "​schema.org"​ для всего сайта.
 +
 +==== Пример части файла ====
 +
 +<code smarty>
 +<ol class="​breadcrumb">​
 +    {* Ссылка на главную *}
 +    <li itemscope=""​ itemtype="​http://​data-vocabulary.org/​Breadcrumb">​
 +        <a itemprop="​url"​ href="​{$lang_link}"​ data-language="​{$translate_id['​breadcrumb_home'​]}">​
 +            <span itemprop="​title">​{$lang->​breadcrumb_home}</​span>​
 +        </a>
 +    </li>
 +    {* Ссылка на главную *}
 +    {* Каталог *}
 +    {if $smarty.get.module == "​ProductsView"​}
 +        {if $category && !$keyword}
 +            {foreach from=$category->​path item=cat}
 +                {if !$cat@last || $brand}
 +                    <li itemscope=""​ itemtype="​http://​data-vocabulary.org/​Breadcrumb">​
 +                        <a itemprop="​url"​ href="​{$lang_link}catalog/​{$cat->​url}">​
 +                            <span itemprop="​title">​{$cat->​name|escape}</​span>​
 +                        </a>
 +                    </li>
 +                {else}
 +                    <​li>​{$cat->​name|escape}</​li>​
 +                {/if}
 +            {/foreach}
 +            {if $brand}
 +                <​li>​{$brand->​name|escape}</​li>​
 +            {/if}
 +        {elseif $brand}
 +            <li itemscope=""​ itemtype="​http://​data-vocabulary.org/​Breadcrumb">​
 +                <a itemprop="​url"​ href="​{$lang_link}brands"​ data-language="​{$translate_id['​breadcrumb_brands'​]}">​
 +                    <span itemprop="​title">​{$lang->​breadcrumb_brands}</​span>​
 +                </a>
 +            </li>
 +            <​li>​{$brand->​name|escape}</​li>​
 +        {elseif $keyword}
 +            <li data-language="​{$translate_id['​breadcrumb_search'​]}">​{$lang->​breadcrumb_search}</​li>​
 +        {else}
 +            <​li>​{$page->​name|escape}</​li>​
 +        {/if}
 +    {* @END Каталог *}
 +    {* Список брендов *}
 +    {elseif $smarty.get.module == "​BrandsView"​}
 +        <​li>​{$page->​name}</​li>​
 +    {* @END Список брендов *}
 +    {/if}
 +</ol>
 +</​code>​
 +
 +Весь файл построен на условиях проверяющих чему равна переменная [[wiki:​variable_module|{$smarty.get.module}]]. \\
 +В данном примере постоянно выводится ссылка на главную страницу сайта, затем проверяем если [[wiki:​variable_module|{$smarty.get.module}]] равна ''​ProductsView''​ - мы в каталоге. \\
 +Далее проверяем,​ если мы в категории (существует переменная [[wiki:​variable_category|{$category}]]) и не на странице поиска (не существует переменной [[wiki:​variable_keyword|{$keyword}]]) перебираем в цикле ''​{foreach}{/​foreach}''​ все категории,​ начиная с первой родительской категории,​ затем ее дочерние до текущей категории.\\
 +
 +Внутри цикла делаем еще одну проверку,​ если это не последняя итерация цикла ''​!$cat@last''​ или существует переменная [[wiki:​variable_brand|{$brand}]] ((на странице категория + бренд)) выводим категорию ((которая в данной итерации цикла находится в переменной {$cat})) в виде ссылки и с микроразметкой,​ иначе просто название категории без ссылки,​ сделано это с целью чтобы последний элемент "​хлебных крошек"​ не был ссылкой.\\
 +Если это все таки последняя итерация цикла но существует переменная [[wiki:​variable_brand|{$brand}]] то все категории выводим в виде ссылок,​ а последним элементом будет название бренда.
 +
 +Если проверка дошла до ''​{elseif $brand}''​ значит пользователь находится в каталоге,​ но не в категории. В этом случае выводим ссылку на страницу всех брендов,​ и название бренда (не ссылкой).
 +
 +Далее проверяем если существует переменная [[wiki:​variable_keyword|{$keyword}]] выводим строку "​поиск"​. Если ни одна проверка не прошла,​ выводим название страницы ((например для страницы "​все товары"​))
 +
 +==== Полезные ссылки ====
 +
 +  * [[wiki:​variable_category|Объект {$category}]]
wiki/tpl_file_breadcrumb.txt · Последние изменения: 2016/02/10 12:56 (внешнее изменение)