Справочник тегов шаблона market.userdetails.tpl
Шаблон market.userdetails.tpl используется для вывода вкладки «Товары» на странице пользователя. Он подключается через хук users.details.tags и рендерится в переменную {MARKET}, которая затем выводится в общем шаблоне пользователя.
Источники данных: функция cot_generate_markettags(), структура категорий, конфигурация модуля, параметры URL и результаты SQL-запросов. Все теги формируются в файле market.userdetails.php. Теги товаров создаются с префиксом MARKET_ROW_ и в основном повторяют теги из market.list.tpl, но с рядом отличий (например, переопределённые админские теги удаления).
Общие теги вкладки
| Тег | Назначение | Тип данных | Источник (код) и пример вывода |
|---|---|---|---|
{MARKET_ADD_URL} | URL для добавления нового товара | string (URL) | Пример: |
{MARKET_ADD_SHOWBUTTON} | Флаг показа кнопки добавления (true, если есть право записи) | boolean | Пример: |
{LOAD_MORE_URL} | URL для AJAX-подгрузки следующей порции товаров | string (URL) | Пример: |
{LOAD_MORE_PERPAGE} | Количество товаров на одну AJAX-подгрузку | int | Пример: |
{LOAD_MORE_TOTALPAGES} | Общее количество страниц товаров | int | Пример: |
{LOAD_MORE_CURRENTPAGE} | Текущая страница (для кнопки «Загрузить ещё») | int | Пример: |
{LOAD_MORE_LANG} | JSON-объект с языковыми строками для AJAX-кнопки | string (JSON) | Пример: |
Теги категорий пользователя (блок CAT_ROW)
Эти теги доступны внутри цикла <!-- BEGIN: CAT_ROW --> ... <!-- END: CAT_ROW -->. Они описывают категории, в которых есть товары данного пользователя.
| Тег | Назначение | Тип данных | Источник (код) и пример вывода |
|---|---|---|---|
{MARKET_CAT_ROW_TITLE} | Название категории | string | Пример: |
{MARKET_CAT_ROW_ICON} | Путь к иконке категории (если есть) | string | пусто | Пример: |
{MARKET_CAT_ROW_URL} | URL для фильтрации товаров по этой категории | string (URL) | Пример: |
{MARKET_CAT_ROW_COUNT_MARKET} | Количество товаров пользователя в этой категории | int | Пример: |
{MARKET_CAT_ROW_SELECT} | Признак выбранной категории (1, если текущая категория совпадает) | int | Пример: |
Пагинация
| Тег | Назначение | Тип данных | Источник (код) и пример вывода |
|---|---|---|---|
{PAGE_*} | Стандартные теги пагинации списка товаров пользователя (например, {PAGE_CURRENT}, {PAGE_TOTAL}, {PAGE_PREV}, {PAGE_NEXT}) | различные | Пример: |
Теги товаров (блок MARKET_ROWS)
Эти теги доступны внутри цикла <!-- BEGIN: MARKET_ROWS --> ... <!-- END: MARKET_ROWS -->. Они генерируются функцией cot_generate_markettags() с префиксом MARKET_ROW_. По сути, это те же теги, что и в списке товаров (LIST_ROW_*), но с другим префиксом. Дополнительно здесь переопределяются админские теги удаления для корректного возврата на страницу пользователя. Ниже перечислены все основные теги с их исходным кодом из функции.
| Тег | Назначение | Тип данных | Источник (код) и пример вывода |
|---|---|---|---|
{MARKET_ROW_URL} | URL страницы товара | string (URL) | |
{MARKET_ROW_ID} | ID товара | int | |
{MARKET_ROW_TITLE} | Название товара | string (HTML-экранированный) | |
{MARKET_ROW_METATITLE} | Мета-заголовок | string | |
{MARKET_ROW_BREADCRUMBS} | Хлебные крошки товара | string (HTML) | |
{MARKET_ROW_BREADCRUMBS_ITEM} | Полные хлебные крошки | string (HTML) | |
{MARKET_ROW_ALIAS} | Алиас товара | string | |
{MARKET_ROW_PCOD} | Код товара | string | |
{MARKET_ROW_STATE} | Числовой статус | int | |
{MARKET_ROW_STATUS} | Машинное имя статуса | string | |
{MARKET_ROW_LOCAL_STATUS} | Локализованный статус | string | |
{MARKET_ROW_CAT} | Код категории | string | |
{MARKET_ROW_CAT_URL} | URL категории | string (URL) | |
{MARKET_ROW_CAT_TITLE} | Название категории | string | |
{MARKET_ROW_CAT_PATH} | Путь категории | string (HTML) | |
{MARKET_ROW_CAT_PATH_SHORT} | Краткий путь категории | string (HTML) | |
{MARKET_ROW_CAT_DESCRIPTION} | Описание категории | string | |
{MARKET_ROW_CAT_ICON} | HTML иконки категории | string (HTML) | пусто | |
{MARKET_ROW_CAT_ICON_SRC} | Путь к иконке | string | пусто | |
{MARKET_ROW_DESCRIPTION} | Краткое описание | string | |
{MARKET_ROW_TEXT} | Полный текст | string (HTML) | |
{MARKET_ROW_TEXT_SHORT} | Краткий текст | string | |
{MARKET_ROW_TEXT_CUT} | Текст после обрезки | string (HTML) | |
{MARKET_ROW_TEXT_IS_CUT} | Флаг обрезки | boolean | |
{MARKET_ROW_DESCRIPTION_OR_TEXT} | Описание или текст | string (HTML) | |
{MARKET_ROW_DESCRIPTION_OR_TEXT_CUT} | Описание или обрезанный текст | string (HTML) | |
{MARKET_ROW_MORE} | Ссылка «Подробнее» | string (HTML) | пусто | |
{MARKET_ROW_AUTHOR} | Автор | string | |
{MARKET_ROW_OWNER_ID} | ID владельца | int | |
{MARKET_ROW_OWNER_NAME} | Имя владельца | string | |
{MARKET_ROW_COSTDFLT} | Цена в валюте по умолчанию | string | |
{MARKET_ROW_COST_USD} | Цена в долларах (float) | float | |
{MARKET_ROW_COST_USD_RAW} | Цена без лишних нулей | string | |
{MARKET_ROW_COST_USD_FORMATTED} | Форматированная цена | string | пусто | |
{MARKET_ROW_CREATED} | Дата создания | string | |
{MARKET_ROW_UPDATED} | Дата обновления | string | |
{MARKET_ROW_CREATED_STAMP} | Timestamp создания | int | |
{MARKET_ROW_UPDATED_STAMP} | Timestamp обновления | int | |
{MARKET_ROW_HITS} | Количество просмотров | int | |
{MARKET_ROW_ADMIN} | Блок админ-действий | string (HTML) | пусто | |
{MARKET_ROW_ADMIN_EDIT} | Ссылка «Редактировать» | string (HTML) | пусто | |
{MARKET_ROW_ADMIN_EDIT_URL} | URL редактирования | string (URL) | пусто | |
{MARKET_ROW_ADMIN_UNVALIDATE} | Ссылка смены статуса | string (HTML) | пусто | |
{MARKET_ROW_ADMIN_UNVALIDATE_URL} | URL смены статуса | string (URL) | пусто | |
{MARKET_ROW_ADMIN_DELETE} | Ссылка «Удалить» (переопределена с редиректом на страницу пользователя) | string (HTML) | пусто | Пример: |
{MARKET_ROW_ADMIN_DELETE_URL} | URL удаления с подтверждением | string (URL) | пусто | Пример: |
{MARKET_ROW_ADMIN_CLONE} | Ссылка «Клонировать» | string (HTML) | пусто | |
{MARKET_ROW_ADMIN_CLONE_URL} | URL клонирования | string (URL) | пусто | |
Также доступны все теги дополнительных полей товара с префиксом MARKET_ROW_<FIELD>, MARKET_ROW_<FIELD>_TITLE, MARKET_ROW_<FIELD>_VALUE и теги структуры категории MARKET_ROW_CAT_<FIELD> и т.д., аналогично списку товаров. Они формируются внутри cot_generate_markettags(). | |||
Теги, передаваемые в родительский шаблон пользователя
Эти теги не используются внутри market.userdetails.tpl, но присваиваются в общий шаблон users.details.tpl после парсинга вкладки.
| Тег | Назначение | Тип данных | Источник |
|---|---|---|---|
{USERS_DETAILS_MARKET_COUNT} | Общее количество товаров пользователя | int | $market_count_all |
{USERS_DETAILS_MARKET_URL} | URL вкладки «Товары» пользователя | string (URL) | cot_url('users', ['m' => 'details', 'id' => $urr['user_id'], 'u' => $urr['user_name'], 'tab' => 'market']) |
{MARKET} | Готовый HTML-код вкладки товаров (результат парсинга market.userdetails.tpl) | string (HTML) | $t1->text('MAIN') |
Примечания
- Теги
MARKET_ROW_*доступны только внутри цикла<!-- BEGIN: MARKET_ROWS -->. - Теги
MARKET_CAT_ROW_*доступны только внутри цикла<!-- BEGIN: CAT_ROW -->. - Все теги формируются в файле
market.userdetails.php. Теги товаров создаются функциейcot_generate_markettags()с параметрами, аналогичными списку магазина, но с префиксомMARKET_ROW_и без передачи$backUrlв не-AJAX режиме. - AJAX-режим использует тот же шаблон, но парсит только блок
MAIN.MARKET_ROWSи возвращает JSON с HTML строк и пагинации. - Кнопка «Загрузить ещё» управляется тегами
LOAD_MORE_*. JavaScript считываетLOAD_MORE_URL,LOAD_MORE_PERPAGE,LOAD_MORE_TOTALPAGES,LOAD_MORE_CURRENTPAGEи языковые строки изLOAD_MORE_LANG.