====== Модуль "Магазин": данные доступные в шаблонах ====== ===== Главная страница ([раздел]_main.tpl) ===== Этот тип шаблона является главным для раздела, он содержит данные о первых двух уровнях категорий. ==== $categories ==== Массив записей с данными о категориях первых двух уровней. Каждая запись представляет собой массив с ключами: === name === Название категории. === link === Ссылка на страницу категории. === description === Описание категории. === idimg === Числовой идентификатор прикрепленного изображения. === citems === Количество материалов в категории. === level === Уровень в дереве категорий, 0 - находится в корне. === urlname === Строковой идентификатор URL категории. === subcategories === Массив записей с данными о подкатегориях. Записи аналогичны записям в [[#$categories|$categories]]. ==== $levels ==== Количество уровней в дереве категорий. ==== Пример шаблона ====

{$section_name}

{if $categories} {/if}
===== Cтраница категории ([раздел]_category.tpl) ===== Этот тип шаблона содержит данные о выбранной категории, о следующих двух уровнях категорий, а так же список товаров каталога, которые принадлежат выбранной категории. ==== $category ==== Массив с данными о текущей категории, состоит из ключей: === name === Название категории. === description === Описание категории. === idimg === Числовой идентификатор прикрепленного изображения. === citems === Количество материалов в категории. === level === Уровень в дереве категорий, 0 - находится в корне. === urlname === Строковой идентификатор категории. ==== $categories ==== Массив записей с данными о категориях двух уровней начиная с текущего. Формат данных аналогичен [[#categories|описанному выше]]. ==== $items ==== Массив записей с данными о товарах каталога. Каждая запись представляет собой массив с ключами: === name === Название товара. === content === Главный текст-описание, форматированный, если включена опция визуального редактора. === description === Краткая аннотация. Если включена опция автогенерации аннотации, то состоит из первых 350 символов основного текста без форматирования. === link === Ссылка на детальную страницу. === tobasketlink === Ссылка для добавления товара в корзину. === tocomparelink === Ссылка для добавления товара в таблицу сравнения. === price === Цена товара. === oldprice === Старая цена, может использоваться в маркетинговых целях. === art === Артикул товара. === category === Полное название категории, которой принадлежит товар. === date === Дата создания в формате UTC. === urlname === Строковой идентификатор URL. === iscount === Количество на складе. === favorite === Признак спецпредложения, принимает значения Y/N. === new === Признак новинки, принимает значения Y/N. === vote === Текущая оценка товара. === cvote === Количество голосов. === comments === Количество комментариев. === available === Логическое значение, истина, если количество на складе указано больше нуля. === images === Массив записей с данными о прикрепленных изображениях, может использоваться в качестве параметра функции [[:smarty:smarty6#image|image]]. Каждая запись представляет собой массив с ключами: * **id** - числовой идентификатор. * **path** - путь к файлу изображения на сервере. * **caption** - описание. * **width** - ширина изображения. * **height** - высота изображения. === idimg === Числовой идентификатор первого прикрепленного изображения. === files === Массив записей с данными о прикрепленных файлах, может использоваться в качестве параметра функции [[:smarty:smarty6#download|download]]. Каждая запись представляет собой массив с ключами: * **id** - числовой идентификатор. * **path** - путь к файлу на сервере. * **link** - ссылка для скачивания. * **caption** - описание. * **size** - размер в виде строки. * **dwnl** - количество скачиваний. * **mime** - mime тип файла. === idfile === Числовой идентификатор первого прикрепленного файла. === tags === Если включено использование тегов, то содержит массив записей с данными о тегах. Каждая запись представляет собой массив с ключами: * **name** - название тега. * **link** - ссылка на результаты поиска по тегу. === дополнительное поле === Значение дополнительного поля (свойства товара). === fields === Массив записей с данными о дополнительных полях. Каждая запись представляет собой массив с ключами: * **field** - Строковой идентификатор поля. * **name** - Описание поля. * **value** - Значение. ==== $items_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]]. ==== Пример шаблона ====

{$category.name}

{if $categories} {/if} {if $items} {section name=i loop=$items} {image id=$items[i].idimg width=80 height=80 align="left"}

{$items[i].name}

{$items[i].description}

Цена: {$items[i].price} {$valute} , В корзину

{/section} {object obj=$items_pager} {/if}
===== Детальная страница ([раздел]_page.tpl) ===== Этот тип шаблона содержит все данные выбранноuj товара. ==== $category ==== Массив с данными о текущей категории. Формат данных аналогичен [[#Cтраница категории ([раздел]_category.tpl)|описанному выше]]. ==== $item ==== Массив с данными о текущей записи каталога. Формат данных аналогичен формату записей в массиве [[#items|описанном выше]]. ==== $ties ==== Массив записей с данными о сопутствующих товарах. Каждая запись представляет собой массив аналогичный по формату [[#items|описанном выше]]. ==== $isvote ==== Логическое значение. Если включено оценивание, то принимает значение истина, если пользователь уже оценил материал. ==== $comments ==== Массив записей всех комментариев к товару. Каждая запись представляет собой массив с ключами: * **date** - дата и время размещения комментария в формате UTC. * **name** - имя автора комментария. * **bbcode** - текст комментария в формате BBCode. * **message** - текст комментария в формате HTML. ==== $form ==== Массив данных для начальных значений формы комментирования. В случае неверного ввода каптчи является копией $_REQUEST, поэтому важно защищать значения с помощью [[:smarty:smarty3#escape|escape]]. Если на сайте используется раздел на базе модуля [[:modules:users|"Пользователи"]], то значение массива с ключом **name** будет замещаться на имя пользователя, в случае если он авторизирован на сайте. * **name** - имя автора комментария. * **message** - текст комментария. ==== $captcha ==== Содержит значение, которое может быть использовано в скрытом поле captcha, если форму отправки необходимо сделать без ввода контрольных цифр на рисунке. ==== Пример шаблона ====

{$item.name}

{$item.content}

Цена: {$item.price} {$valute}

{if $item.available}В наличии{else}Нет на складе{/if}

В корзину

Фото

{section name=i loop=$item.images} {image data=$item.images[i] width=200 popup=true} {/section} {if $options.usefiles} {* Если включены файлы. *}

{download data=$item.files size=true}

{/if} {if $options.usevote} {* Если включено оценивание. *}
Оценка: {$item.vote}, Голосов: {$item.cvote}, {if !$isvote} {* Если еще не оценивал. *} {submit caption="Оценить"} {hidden name="action" value="addvote"} {else} Вы проголосовали. {/if}
{/if} {if $options.usecomments} {* Если включено комментирование. *} {if $comments} {* Вывод комментариев. *}

Комментарии:

{/if} {section name=i loop=$comments}

{$comments[i].date|date_format:"%d.%m.%Y %T"} {$comments[i].name}:

{$comments[i].message}

{/section} {if $errors.captcha}

Неверно введены контрольные цифры, попробуйте еще раз.

{/if} {literal} {* Скрипт валидации формы комментирования. *} {/literal}

Оставить комментарий:

{* Форма комментирования. *}

Ваше имя:

{editbox name="name" width="40%" text=$form.name}

{textarea name="message" rows=5 text=$form.message}

Введите цифры на картинке:

{editbox name="captcha" width="50"}

{captcha}

{submit caption="Добавить"}

{hidden name="action" value="addcomment"}
{/if}
===== Страница результатов выборки ([раздел]_result.tpl) ===== Этот тип шаблона содержит данные о найденных товарах в результате использования фильтров. ==== $category ==== Если среди применяемых фильтров есть фильтр по категории, то этот массив содержит данные об этой категории. Формат данных аналогичен [[#Cтраница категории ([раздел]_category.tpl)|описанному выше]], за исключением дополнительного ключа: === link === Ссылка на страницу категории. ==== $items ==== Массив записей с данными о найденных товарах. Формат данных аналогичен формату записей в массиве [[#items|описанном выше]]. ==== $items_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]]. ==== $filters ==== Массив записей, которые содержат описания примененных фильтров. Каждая запись представляет собой массив с ключами: === field === Поле к которому применяется фильтр. === caption === Описание поля. === value === Значение применяемое в фильтре. === link === Ссылка на результаты поиска только по этому фильтру. ==== Пример шаблона ====

Результаты поиска

{if $items} {section name=i loop=$items} {image data=$items[i].images width=80 height=80 align="left"}

{$items[i].name}

{$items[i].description}

Цена: {$items[i].price} {$valute} , В корзину

{/section} {object obj=$items_pager} {/if}
===== Страница корзины ([раздел]_basket.tpl) ===== Этот тип шаблона содержит данные о состоянии корзины пользователя. ==== $basket ==== Массив записей с данными о содержимом корзины. Каждая запись представляет собой массиво с ключами: === id === Числовой идентификатор позиции в корзине. === data === Массив с данными о товаре. Формат данных аналогичен [[#items|описанному выше]]. === sum === Сумма позиции корзины (Цена товара умноженная на указанное количество). === oldsum === "Старая" сумма позиции корзины ("Старая" цена товара умноженная на указанное количество). === deletelink === Ссылка на удаление позиции из корзины. ==== $all ==== Массив с итоговыми данными по корзине. Состоит из ключей: === count === Общее количество товаров в корзине. === sum === Общая сумма по товарам в корзине. === oldsum === Общая "старая" сумма по товарам в корзине. ==== Пример шаблона ====

Корзина

{section name=i loop=$basket} {/section}
Наименование товара Кол-во Цена Удалить
{$basket[i].data.name}{if $basket[i].data.mprice} ({$basket[i].data.mprice}){/if} {$basket[i].sum} {$valute} Удалить

Товаров в корзине: {$all.count}, на общую сумму: {$all.sum} {$valute}.

{submit caption="Пересчитать"} {hidden name="action" value="recalcbasket"}

Оформить заказ

===== Страница заказа ([раздел]_order.tpl) ===== Этот тип шаблона содержит данные страницы с формой заказа. Набор полей у формы может быть любой, достаточно потом просто составить такой же набор полей в шаблоне письма-уведомления о заказе. ==== $basket ==== Массив записей с данными о содержимом корзины. Формат данных аналогичен [[#basket|описанному выше]], за исключением ссылки удаления. ==== $all ==== Массив с итоговыми данными по корзине. Формат данных аналогичен [[#all|описанному выше]]. ==== $form ==== Массив данных для начальных значений формы заказа. По сути является копией массива $_POST, поэтому при выводе важно защищать значения с помощью [[:smarty:smarty3#escape|escape]]. Если на сайте используется раздел на базе модуля [[:modules:users|"Пользователи"]], то значениями массива будут данные пользователя, в случае если он авторизирован на сайте. ===== Страница сообщения ([раздел]_message.tpl) ===== Этот тип шаблона предусмотрен для вывода специального сообщения после успешной отправки формы заказа. Он не содержит специальных данных, текст сообщения об успешной отправке вставляется непосредственно в шаблон. ==== Пример шаблона ====

{$section_name}

Ваш заказ отправлен.

===== Страница полного списка товаров ([раздел]_price.tpl) ===== Этот тип страницы используется для вывода всех товаров сразу в одном прайс-листе. ==== $categories ==== Массив записей с данными о всех категориях (включая подкатегории). Каждая запись состоит из ключей: === name === Полное название категории. === items === Массив записей с данными о товарах в категории. Формат каждой записи аналогичен [[#items|описанному выше]], за исключением данных об изображениях и файлах. ==== Пример шаблона ====

Прайс

{section name=i loop=$categories} {if $categories[i].items}

{$categories[i].name}

{section name=j loop=$categories[i].items} {/section}
Название Цена В наличии  
{$categories[i].items[j].name} {$categories[i].items[j].price} {if $categories[i].items[j].available}Да{else}Нет{/if} В корзину
{/if} {/section}
===== Страница сравнения ([раздел]_compare.tpl) ===== Этот тип шаблона содержит данные о товарах, добавленных для сравнения. Формат данных позволяет осуществить столбчатый вывод всех характеристик товаров. ==== $items ==== Массив записей с данными о товарах добавленных для сравнения. Формат каждой записи аналогичен [[#items|описанному выше]], с дополнительным ключом: === deletelink === Ссылка для удаления товара из таблицы сравнения. ==== $fields ==== Массив с данными о всех дополнительных полях (характеристиках). Ключами являются названия полей, а значениями - их описания. ==== Пример шаблона ====

Сравнение

{section name=i loop=$items} {/section} {section name=i loop=$items} {/section} {section name=i loop=$items} {/section} {foreach from=$fields key=field item=caption} {section name=i loop=$items} {/section} {/foreach}
Название{$items[i].name}
Фото {image data=$items[i].images height=160 width="160" popup=true}
В корзину
Удалить
Цена{$items[i].price} {$valute}
{$caption}{$items[i].$field}
===== Страница своих заказов ([раздел]_myorders.tpl) ===== Этот тип шаблона может использоваться только если на сайте используется модуль [[:modules:users|"Пользователи"]]. На этой странице авторизированный пользователь может смотреть архив своих заказов и отслеживать их статусы. ==== $orders ==== Массив записей с данными о заказах пользователя. Каждая запись представляет собой массив с ключами: === id === Числовой идентификатор заказа. === date === Дата и время заказа в формате UTC. === content === Содержание заказа в текстовом виде (формируется по шаблону письма уведомления о новом заказе). === basket === Массив записей с данными о содержимом корзины. Формат данных аналогичен [[#basket|описанному выше]]. === count === Общее количество товаров в заказе. === sum === Общая сумма заказа. === status === Статус заказа. * **0** - Не обработан. * **1** - Оплачен. * **2** - Обработан. ==== $orders_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]]. ==== Пример шаблона ====

Мои заказы

{if $orders} {section name=i loop=$orders} {/section}
Состав Сумма Статус
{$orders[i].id} {section name=j loop=$orders[i].basket} {$orders[i].basket[j].data.name} - {$orders[i].basket[j].count} шт.
{/section}
{$orders[i].sum} {$valute} {if $orders[i].status>1}Обработан{else}Ожидает{/if}
{object obj=$orders_pager} {else}

Нет данных.

{/if}