Файл main.tpl

Шаблон main.tpl отвечает за общее отображение Интернет-магазина.

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

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <title>{$site_title}</title>
  6 <meta name="description" content="{$site_description}" />
  7 <meta name="keywords" content="{$site_keywords}" />
  8 <meta name="generator" content="ImageCMS" />
  9 
 10 {literal}
 11 <script type="text/javascript">
 12     var currencySymbol = {/literal}'{$CS}'{literal};
 13 </script>
 14 {/literal}
 15 
 16 <style type="text/css">
 17     @import "{$SHOP_THEME}style/jquery-ui-1.8.15.custom.css";
 18     @import "{$SHOP_THEME}style/jquery.ui.autocomplete.css";
 19     @import "{$SHOP_THEME}style/general.css";
 20     @import "{$SHOP_THEME}style/product.css";
 21     @import "{$SHOP_THEME}style/slideshow.css";
 22     @import "{$SHOP_THEME}style/ie7/skin.css";
 23 </style>
 24 
 25 <script type="text/javascript" src="{$SHOP_THEME}js/jquery.js"></script>
 26 <script type="text/javascript" src="{$SHOP_THEME}js/jquery.hoverIntent.js"></script>
 27 <script type="text/javascript" src="{$SHOP_THEME}js/superfish.js"></script>
 28 <script type="text/javascript" src="{$SHOP_THEME}js/jquery.cycle.js"></script>
 29 <script type="text/javascript" src="{$SHOP_THEME}js/jquery.functions.js"></script>
 30 <script type="text/javascript" src="{$SHOP_THEME}js/js.js"></script>
 31 <script type="text/javascript" src="{$SHOP_THEME}js/jquery-ui-1.8.15.custom.min.js"></script>
 32 <script type="text/javascript" src="{$SHOP_THEME}js/jquery.coda-bubble.sp.js"></script>
 33 <script type="text/javascript" src="{$SHOP_THEME}js/jquery.jcarousel.min.js"></script>
 34 <script type="text/javascript" src="{$SHOP_THEME}js/main.js"></script>
 35 
 36 <link rel="icon" href="{$SHOP_THEME}images/favicon.png" type="image/x-icon" />
 37 </head>
 38 <body>
 39 <!-- BEGIN LAYOUT -->
 40 <div id="conteiner">
 41   <!-- BEGIN HEADER -->
 42   <div id="header">
 43     <div class="left">
 44       <!-- BEGIN LOGO -->
 45       <div id="logo"><a href="{shop_url('')}"><img src="{$SHOP_THEME}images/logo.png" alt="logo" border="0"/></a></div>
 46       <!-- BEGIN SLOGAN -->
 47      <div id="slogan">Приобретайте только качественную технику: <br /> +7 (095) <b>222-33-22</b><br /> +38 (098) <b>222-33-22</b><br /><a id="callback-send-request" style="cursor: pointer;">Запросить CallBack</a></div>
 48     </div>
 49 
 50     <!-- Hold this part in separate file which will be used for ajax requests. -->
 51     <div class="right" id="mycart" title="Корзина">
 52         {include_tpl('cart_data')}
 53     </div>
 54 
 55     {if ShopCore::app()->SWishList->getWishListCookie() && ShopCore::$ci->dx_auth->is_logged_in()}
 56    <div class="bubbleInfo">
 57        <div class="trigger">
 58            <div class="right" id="mywishlist" title="Wish List">
 59                 {include_tpl('wish_list_data')}
 60            </div>
 61        </div>
 62        <div class="popup">
 63            <div class="wishListQuestion">
 64                У вас уже был WishList до входа в систему!<br />
 65                     <a rel="nofollow" href="{shop_url('wish_list/move_to_profile')}" >Перенести WishList в профиль</a> /
 66                     <a rel="nofollow" href="{shop_url('wish_list/clear_cookie_wish_list')}">Удалить WishList</a>
 67                </div>
 68            </div>
 69    </div>
 70    {else:}
 71    <div class="right" id="mywishlist" title="Wish List">
 72         {include_tpl('wish_list_data')}
 73    </div>
 74    {/if}
 75 
 76     <div id="topCurrency" align="right">
 77     <form action="" method="post" name="currencyChangeForm">
 78     {form_csrf()}
 79         Валюта: <select onchange="document.forms.currencyChangeForm.submit();" name="setCurrency">
 80             {foreach get_currencies() as $currency}
 81                 <option {if ShopCore::app()->SCurrencyHelper->current->getId() == $currency->getId()}selected{/if} value="{echo $currency->getId()}">{echo encode($currency->getName())}</option>
 82             {/foreach}
 83         </select>
 84     </form>
 85 
 86     {if $CI->session->userdata('shopForCompare')}
 87         <div class="topCompareInfo">
 88             <a href="{shop_url('compare')}">
 89                 Добавлено {count($CI->session->userdata('shopForCompare'))} {echo SStringHelper::Pluralize(count($CI->session->userdata('shopForCompare')), array('товар','товара','товаров'))} для сравнения
 90             </a>
 91         </div>
 92     {/if}
 93     </div>
 94 
 95    <div class="sp"></div>
 96 {include_tpl('call_back')}
 97   </div>
 98   <!-- END HEADER -->
 99   <!-- BEGIN NAVIGATION -->
100   <div id="navigation">
101     {load_menu('main_menu')}
102     <!-- BEGIN SEARCH -->
103     <div id="search">
104       <form action="{shop_url('search')}" method="get">
105         <input type="submit" class="submit" value=""/>
106         <input type="text" name="text" class="text" id="text"/>
107       </form>
108     </div>
109   </div>
110   <div id="main">
111       <!-- BEGIN CONTEINER -->
112     <div id="content">
113         {$shop_content}
114     </div>
115     <!-- END CONTENT -->
116     <div class="sp"></div>
117   </div>
118   <div class="sp"></div>
119 </div>
120 <!-- BEGIN FOOTER -->
121 <div id="footer">
122   <div class="left">© 2011  Ваш <strong>Интернет-магазин</strong><br/>
123     <div class="credits"> Powered by <a href="http://www.imagecms.net">ImageCMS Shop</a></div>
124   </div>
125   <ul class="right">
126       <li><a href="{site_url('about')}" class="item">О Магазине</a> </li>
127       <li><a href="{site_url('oplata')}" class="item">Оплата</a> </li>
128       <li><a href="{site_url('dostavka')}" class="item">Доставка</a></li>
129       <li><a href="{site_url('help')}" class="item">Помощь</a></li>
130       <li><a href="{site_url('contact_us')}" class="item">Контакты</a></li>
131   </ul>
132   <div class="sp"></div>
133 </div>
134 <!-- END FOOTER -->
135 </body>
136 </html>

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

Хедер

<head>...</head>

В хедере используются следующие переменные:
  • {$site_title} - отвечает за отображение Meta-Title всех страниц сайта
  • {$site_description} - отвечает за отображение Meta-Description всех страниц сайта
  • {$site_keywords} - отвечает за отображение Meta-Keywords всех страниц сайта
  • {$SHOP_THEME} - эта переменная содержит полный путь к выбранному шаблону Интернет-магазина. Лучше обращаться ко всем изображениям, скриптам, стилям через эту переменную, чтобы потом не возникло ошибки при переносе сайта на различные хостинги. {$CS} - символ текущей валюты магазина

Подключение виджета корзины из Файл cart_data.tpl

1 <div class="right" id="mycart" title="Корзина">
2         {include_tpl('cart_data')}
3 </div>
Здесь используются следующие переменные:
  • {include_tpl('cart_data')} - подключение содержимого шаблона Файл cart_data.tpl

Подключение виджета Вишлиста из Файл wish_list_data.tpl

 1 {if ShopCore::app()->SWishList->getWishListCookie() && ShopCore::$ci->dx_auth->is_logged_in()}
 2    <div class="bubbleInfo">
 3        <div class="trigger">
 4            <div class="right" id="mywishlist" title="Wish List">
 5                 {include_tpl('wish_list_data')}
 6            </div>
 7        </div>
 8        <div class="popup">
 9            <div class="wishListQuestion">
10                У вас уже был WishList до входа в систему!<br />
11                     <a rel="nofollow" href="{shop_url('wish_list/move_to_profile')}" >Перенести WishList в профиль</a> /
12                     <a rel="nofollow" href="{shop_url('wish_list/clear_cookie_wish_list')}">Удалить WishList</a>
13                </div>
14            </div>
15    </div>
16    {else:}
17    <div class="right" id="mywishlist" title="Wish List">
18         {include_tpl('wish_list_data')}
19    </div>
20    {/if}
Здесь используются следующие переменные:
  • {ShopCore::app()->SWishList->getWishListCookie()} - возвращает список товаров Вишлиста из кукисов (вишлист сформированный неавторизированным пользователем)
  • {ShopCore::$ci->dx_auth->is_logged_in()} - возвращает TRUE, если пользователь авторизирован
  • {include_tpl('cart_data')} - подключение содержимого шаблона Файл wish_list_data.tpl
  • {shop_url('wish_list/move_to_profile')} - формирование ссылки для прикрепления вишлиста не авторизированного пользователя к профилю авторизированного
  • {shop_url('wish_list/clear_cookie_wish_list')} - формирование ссылки для удаления вишлиста не авторизированного пользователя

Отображение выбора валют

1 <form action="" method="post" name="currencyChangeForm">
2     {form_csrf()}
3         Валюта: <select onchange="document.forms.currencyChangeForm.submit();" name="setCurrency">
4             {foreach get_currencies() as $currency}
5                 <option {if ShopCore::app()->SCurrencyHelper->current->getId() == $currency->getId()}selected{/if} value="{echo $currency->getId()}">{echo encode($currency->getName())}</option>
6             {/foreach}
7         </select>
8     </form>
Для отображения формы выбора валют используются следующие переменные:
  • form_csrf() - обязательная функция для проверки данных формы
  • document.forms.currencyChangeForm.submit(); - отвечает за мгновенное применение новой валюты после выбора ее в форме
  • {foreach get_currencies() as $currency}{/foreach} - выводит список доступных валют
  • {ShopCore::app()->SCurrencyHelper->current->getId()} - получение Id текущей валюты

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

1 {if count($CI->session->userdata('shopForCompare')) > 0}
2         <div class="topCompareInfo">
3             <a href="{shop_url('compare')}">
4                 Добавлено {count($CI->session->userdata('shopForCompare'))} {echo SStringHelper::Pluralize(count($CI->session->userdata('shopForCompare')), array('товар','товара','товаров'))} для сравнения
5             </a>
6         </div>
7     {/if}
Для отображения списка сравнения товаров используется следующие переменные:
  • {if count($CI->session->userdata('shopForCompare')) > 0} {/if} - условие, которое значит, что следующий блок появиться только, если есть хотя бы один товар для сравнения
  • {shop_url('compare')} - переменная, которая ведет на страницу сравнения товаров
  • {count($CI->session->userdata('shopForCompare'))} - отображает количество товаров для сравнения
  • {echo SStringHelper::Pluralize(count($CI->session->userdata('shopForCompare')), array('товар','товара','товаров'))} - склонение слова "товар" относительно количества товаров в списке для сравнения.

Подключение виджета Колбека из Файл call_back.tpl

1 {include_tpl('call_back')}

Формирование главного меню

1 {load_menu('main_menu')}
Здесь используются следующие переменные:
  • {load_menu('main_menu')} - формирует html код главного меню

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

1 <div id="search">
2       <form action="{shop_url('search')}" method="get">
3         <input type="submit" class="submit" value=""/>
4         <input type="text" name="text" class="text" id="text"/>
5       </form>
6     </div>
7 </div>
При отображении поиска по товарах используются следующие переменные:
  • {shop_url('search')} - переводит данные формы на общую страницу поиска

Отображение основных страниц Интернет-магазина

Для отображения основных страниц Интернет-магазина используется переменная {$shop_content}