Файл start_page.tpl

Данный файл отвечает за отображение стартовой страницы Интернет-магазина.

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

  1 {# Variables
  2 # @var hits
  3 # @var newest
  4 #}
  5 
  6 <script type="text/javascript" src="{$SHOP_THEME}js/start_page.js"></script>
  7 
  8 {# Display sidebar.tpl #}
  9 {include_tpl ('sidebar')}
 10 
 11 <div class="products_list">
 12     {$banners = ShopBanersQuery::create()->orderByPosition()->find()}
 13     {if count($banners)}
 14     <!-- BEGIN SLIDESHOW -->
 15     <div id="slideshow">
 16             <ul id="slides" style="width: 693px; height: 260px;">
 17                 {foreach $banners as $banner}
 18                     <li>
 19                         <a href="{echo $banner->getUrl()}"><img src="/uploads/shop/banners/{echo $banner->getImage()}" alt="" height="256"></a>
 20                         <span class="slide_caption">
 21                             <a href="{echo $banner->getUrl()}" class="title">{echo ShopCore::encode($banner->getName())}</a>{echo ShopCore::encode($banner->getText())}
 22                         </span>
 23                     </li>
 24                 {/foreach}
 25             </ul>
 26             <div id="slideshow_violator" class="clearfix">
 27               <div id="project_caption"></div>
 28               <div id="slide_navigation" class="clearfix"></div>
 29             </div>
 30     </div>
 31     <!-- END SLIDESHOW -->
 32     {/if}
 33 
 34     <!--
 35     <div align="center" style="padding-bottom: 38px;">
 36         <div id="mycarousel" class="jcarousel-skin-ie7">
 37             <ul>
 38 
 39             </ul>
 40         </div>
 41     </div>
 42     -->
 43 
 44     <!-- BEGIN HITS -->
 45     <div id="titleExt">
 46         <h5 class="left">Хиты</h5>
 47         <div class="sp"></div>
 48     </div>
 49     <br/>
 50     <ul class="products">
 51     {$count = 1}
 52     {foreach $hits as $p}
 53         <li {if $count == 3} class="last" {$count = 0}{/if}>
 54             <div class="image" style="display:table-cell;vertical-align:middle;overflow:hidden;">
 55                 <a href="{shop_url('product/' . $p->getUrl())}">
 56                     <img src="{productImageUrl($p->getId() . '_small.jpg')}" border="0"  alt="{echo encode($p->getName())}" />
 57                 </a>
 58             </div>
 59             <h3 class="name"><a href="{shop_url('product/' . $p->getUrl())}">{echo ShopCore::encode($p->getName())}</a></h3>
 60             <div class="price" {if $p->firstVariant->getStock() == 0}style="color:silver;"{/if}>
 61                 {$p->firstVariant}
 62                 {if $p->hasDiscounts()}
 63                     <s>{echo $p->firstVariant->toCurrency('origPrice')} {$CS}</s>
 64                     <br/>
 65                     <span style="font-size:14px;">{echo $p->firstVariant->toCurrency()} {$CS}</span>
 66                 {else:}
 67                     <span style="font-size:14px;">{echo $p->firstVariant->toCurrency()} {$CS}</span>
 68                 {/if}
 69             </div>
 70             <div class="compare"><a href="{shop_url('compare/add/' . $p->getId())}">Сравнить</a></div>
 71         </li>
 72             {if $count == 3}<li class="separator"></li> {$count=0}{/if}
 73             {$count++}
 74     {/foreach}
 75     </ul>
 76     <!-- END HITS -->
 77 
 78     <div style="clear:both;"></div>
 79 
 80     <!-- BEGIN NEW -->
 81     <div id="titleExt">
 82         <h5 class="left">Новые</h5>
 83         <div class="sp"></div>
 84     </div>
 85     <br/>
 86     <ul class="products">
 87     {$count = 1}
 88     {foreach $newest as $p}
 89         <li {if $count == 3} class="last" {$count = 0}{/if}>
 90             <div class="image" style="display:table-cell;vertical-align:middle;overflow:hidden;">
 91                 <a href="{shop_url('product/' . $p->getUrl())}">
 92                     <img src="{productImageUrl($p->getId() . '_small.jpg')}" border="0"  alt="{echo encode($p->getName())}" />
 93                 </a>
 94             </div>
 95             <h3 class="name"><a href="{shop_url('product/' . $p->getUrl())}">{echo ShopCore::encode($p->getName())}</a></h3>
 96             <div class="price" {if $p->firstVariant->getStock() == 0}style="color:silver;"{/if}>
 97                 {$p->firstVariant}
 98                 {if $p->hasDiscounts()}
 99                     <s>{echo $p->firstVariant->toCurrency('origPrice')} {$CS}</s>
100                     <br/>
101                     <span style="font-size:14px;">{echo $p->firstVariant->toCurrency()} {$CS}</span>
102                 {else:}
103                     <span style="font-size:14px;">{echo $p->firstVariant->toCurrency()} {$CS}</span>
104                 {/if}
105             </div>
106             <div class="compare"><a href="{shop_url('compare/add/' . $p->getId())}">Сравнить</a></div>
107         </li>
108             {if $count == 3}<li class="separator"></li> {$count=0}{/if}
109             {$count++}
110     {/foreach}
111     </ul>
112     <!-- END NEW -->
113 </div>

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

Подключение скрипта для отображение слайдера

1 <script type="text/javascript" src="{$SHOP_THEME}js/start_page.js"></script>

Подключить этот участок кода нужно обязательно, если есть потребность выводить слайдер на главной странице

Подключение левого сайдбара

1 {include_tpl ('sidebar')}

Подключает сайдбар Файл sidebar.tpl, который отвечает за отображение списка категорий, новостей, брендов и т.п. в левой части сайта.

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

 1 {$banners = ShopBanersQuery::create()->orderByPosition()->find()}
 2     {if count($banners)}
 3     <!-- BEGIN SLIDESHOW -->
 4     <div id="slideshow">
 5             <ul id="slides" style="width: 693px; height: 260px;">
 6                 {foreach $banners as $banner}
 7                     <li>
 8                         <a href="{echo $banner->getUrl()}"><img src="/uploads/shop/banners/{echo $banner->getImage()}" alt="" height="256"></a>
 9                         <span class="slide_caption">
10                             <a href="{echo $banner->getUrl()}" class="title">{echo ShopCore::encode($banner->getName())}</a>{echo ShopCore::encode($banner->getText())}
11                         </span>
12                     </li>
13                 {/foreach}
14             </ul>
15             <div id="slideshow_violator" class="clearfix">
16               <div id="project_caption"></div>
17               <div id="slide_navigation" class="clearfix"></div>
18             </div>
19     </div>
20     <!-- END SLIDESHOW -->
21 {/if}

Управление слайдером производиться из админчасти в разделе Баннеры

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

 1 <div id="titleExt">
 2         <h5 class="left">Хиты</h5>
 3         <div class="sp"></div>
 4     </div>
 5     <br/>
 6     <ul class="products">
 7     {$count = 1}
 8     {foreach $hits as $p}
 9         <li {if $count == 3} class="last" {$count = 0}{/if}>
10             <div class="image" style="display:table-cell;vertical-align:middle;overflow:hidden;">
11                 <a href="{shop_url('product/' . $p->getUrl())}">
12                     <img src="{productImageUrl($p->getId() . '_small.jpg')}" border="0"  alt="{echo encode($p->getName())}" />
13                 </a>
14             </div>
15             <h3 class="name"><a href="{shop_url('product/' . $p->getUrl())}">{echo ShopCore::encode($p->getName())}</a></h3>
16             <div class="price" {if $p->firstVariant->getStock() == 0}style="color:silver;"{/if}>
17                 {$p->firstVariant}
18                 {if $p->hasDiscounts()}
19                     <s>{echo $p->firstVariant->toCurrency('origPrice')} {$CS}</s>
20                     <br/>
21                     <span style="font-size:14px;">{echo $p->firstVariant->toCurrency()} {$CS}</span>
22                 {else:}
23                     <span style="font-size:14px;">{echo $p->firstVariant->toCurrency()} {$CS}</span>
24                 {/if}
25             </div>
26             <div class="compare"><a href="{shop_url('compare/add/' . $p->getId())}">Сравнить</a></div>
27         </li>
28             {if $count == 3}<li class="separator"></li> {$count=0}{/if}
29             {$count++}
30     {/foreach}
31     </ul>

Выводит на главной странице шесть товаров, у которых указан параметр "хит" в административной части.

Содержит следующие переменные:
  • {$count} - устанавливает счетчик, который отвечает, сколько товаров выводить в строку
  • {shop_url('product/' . $p->getUrl())} - формирует ссылку для подробного просмотра продукта
  • {productImageUrl($p->getId() . '_small.jpg')} - формирует ссылку на изображение продукта
  • {echo ShopCore::encode($p->getName())} - отображает название продукта
  • {echo $p->firstVariant->toCurrency()} - отображает стоимость продукта
  • {$CS} - отображает валюту продукта

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

 1 <div id="titleExt">
 2         <h5 class="left">Новые</h5>
 3         <div class="sp"></div>
 4     </div>
 5     <br/>
 6     <ul class="products">
 7     {$count = 1}
 8     {foreach $newest as $p}
 9         <li {if $count == 3} class="last" {$count = 0}{/if}>
10             <div class="image" style="display:table-cell;vertical-align:middle;overflow:hidden;">
11                 <a href="{shop_url('product/' . $p->getUrl())}">
12                     <img src="{productImageUrl($p->getId() . '_small.jpg')}" border="0"  alt="{echo encode($p->getName())}" />
13                 </a>
14             </div>
15             <h3 class="name"><a href="{shop_url('product/' . $p->getUrl())}">{echo ShopCore::encode($p->getName())}</a></h3>
16             <div class="price" {if $p->firstVariant->getStock() == 0}style="color:silver;"{/if}>
17                 {$p->firstVariant}
18                 {if $p->hasDiscounts()}
19                     <s>{echo $p->firstVariant->toCurrency('origPrice')} {$CS}</s>
20                     <br/>
21                     <span style="font-size:14px;">{echo $p->firstVariant->toCurrency()} {$CS}</span>
22                 {else:}
23                     <span style="font-size:14px;">{echo $p->firstVariant->toCurrency()} {$CS}</span>
24                 {/if}
25             </div>
26             <div class="compare"><a href="{shop_url('compare/add/' . $p->getId())}">Сравнить</a></div>
27         </li>
28             {if $count == 3}<li class="separator"></li> {$count=0}{/if}
29             {$count++}
30     {/foreach}
31     </ul>

Выводит на главной странице шесть последних товаров.

Содержит следующие переменные:
  • {$count} - устанавливает счетчик, который отвечает, сколько товаров выводить в строку
  • {shop_url('product/' . $p->getUrl())} - формирует ссылку для подробного просмотра продукта
  • {productImageUrl($p->getId() . '_small.jpg')} - формирует ссылку на изображение продукта
  • {echo ShopCore::encode($p->getName())} - отображает название продукта
  • {echo $p->firstVariant->toCurrency()} - отображает стоимость продукта
  • {$CS} - отображает валюту продукта