Файл sidebar.tpl

Данный файл отвечает за отображение списка категорий, новостей, брендов и т.п. в левой части сайта.

В базовом шаблоне он имеет следующую структуру:

 1 <div id="categories_menu_tree">
 2     <ul class="categories_tree_list">
 3         {echo ShopCore::app()->SCategoryTree->ul()}
 4     </ul>
 5     <h3>Все бренды магазина</h3>
 6     <div class="brand">
 7     {foreach SBrandsQuery::create()->find() as $brand}
 8         <a href="{shop_url('brand/' . $brand->getUrl())}">{echo $brand->getName()}</a>
 9     {/foreach}
10     </div>
11 
12     <h3>Бренды по алфавиту</h3>
13     <div class="brand">
14     {foreach ShopCore::app()->SBrandsHelper->getBrandsCharaters(false, array('EN')) as $brandsCharater=>$brands}
15         {if $brands}
16         <div class="bubbleInfo">
17         <div class="trigger"><a>{echo $brandsCharater}</a></div>
18             <div if class="popup">
19                     {foreach $brands as $brand}
20                         <a href="{shop_url('brand/' . $brand['url'])}">{echo $brand['name'].'('.$brand['total'].')'}</a>{counter("<br />", "", "")}
21                     {/foreach}
22             </div>
23         </div>
24         {else:}
25         {echo $brandsCharater}
26         {/if}
27     {/foreach}
28     </div>
29     <h3>Принимаем к оплате</h3>
30     <div class="brand">
31         <img src="{$SHOP_THEME}images/cards.gif" alt="logo" border="0"/>
32     </div>
33     <h3>Время работы</h3>
34     <div class="time_work">
35         Магазин работает <b>круглосуточно</b>, можете заказывать товары в любое время. <br />
36         Мы готовы принимать и обрабатывать Ваши заказы каждый день с 10:00 до 19:00. Выходной - воскресенье.
37     </div>
38 
39     {widget('latest_news')}
40     {widget('recent_product_comments')}
41     {widget('tags')}
42 </div>

Главные участки файла sidebar.tpl

Отображение списка категорий магазина

1  
2   <ul class="categories_tree_list">
3         {echo ShopCore::app()->SCategoryTree->ul()}
4     </ul>

Данный участок формирует дерево категорий Интернет-магазина.

Отображение списка брендов

1  
2 <h3>Все бренды магазина</h3>
3     <div class="brand">
4     {foreach SBrandsQuery::create()->find() as $brand}
5         <a href="{shop_url('brand/' . $brand->getUrl())}">{echo $brand->getName()}</a>
6     {/foreach}
7     </div>
Здесь используются следующие переменные:
  • {SBrandsQuery::create()->find()} - получения моделей всех брендов
  • {shop_url('brand/' . $brand->getUrl())} - формирование ссылки на страницу бренда
  • {echo $brand->getName()} - вывод названия бренда

Отображение алфавитного меню брендов

 1  
 2 <h3>Бренды по алфавиту</h3>
 3     <div class="brand">
 4     {foreach ShopCore::app()->SBrandsHelper->getBrandsCharaters(false, array('EN')) as $brandsCharater=>$brands}
 5         {if $brands}
 6         <div class="bubbleInfo">
 7         <div class="trigger"><a>{echo $brandsCharater}</a></div>
 8             <div if class="popup">
 9                     {foreach $brands as $brand}
10                         <a href="{shop_url('brand/' . $brand['url'])}">{echo $brand['name'].'('.$brand['total'].')'}</a>{counter("<br />", "", "")}
11                     {/foreach}
12             </div>
13         </div>
14         {else:}
15         {echo $brandsCharater}
16         {/if}
17     {/foreach}
18     </div>
Здесь используются следующие переменные:
  • {ShopCore::app()->SBrandsHelper->getBrandsCharaters(false, array('EN'))} - получение массива, ключами которого есть буквы алфавита, а значениями - списки брендов.
  • {shop_url('brand/' . $brand['url'])} - формирование ссылки на страницу бренда.
  • {echo $brand['name'].'('.$brand['total'].')'} - вывод название бренда и количества товаров данного бренда в скобках

Отображение последних новостей

За отображение последних новостей отвечает виджет: {widget('latest_news')}

Отображение последних комментариев

За отображение последних комментариев отвечает виджет: {widget('recent_product_comments')}

Дополнительные возможности

Блок, который отображает список брендов, в которых больше всего товаров.

  • после или вместо блока
1 
2 <div class="brand">
3     {foreach SBrandsQuery::create()->find() as $brand}
4         <a href="{shop_url('brand/' . $brand->getUrl())}">{echo $brand->getName()}</a>
5     {/foreach}
6     </div>
  • вставить блок
    1 
    2 <div class="brand">
    3     {foreach ShopCore::app()->SBrandsHelper->mostProductBrands(6) as $brand}
    4         <a href="{shop_url('brand/' . $brand['url'])}">{echo $brand['name'].'('.$brand['total'].')'}</a>
    5     {/foreach}
    6     </div>
    

    где в "mostProductBrands(6)", 6 - это количество выводимых брендов.