Файл 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} - отображает валюту продукта