Файл 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}