Категории форума

Справочник тегов списка товаров market.list.tpl вне блока LIST_ROW

Они относятся к текущей категории, поиску, пагинации, сортировке, кнопкам добавления, подкатегориям и информационным сообщениям, но никак не связаны с товарами в цикле <!-- BEGIN: LIST_ROW --> ... <!-- END: LIST_ROW -->

webitproff
webitproff • 05.09.2026 08:39 #589

Справочник тегов списка товаров market.list.tpl вне блока LIST_ROW 

В этом разделе собраны теги, которые формируются в шаблоне списка товаров market.list.tpl за пределами цикла <!-- BEGIN: LIST_ROW --> ... <!-- END: LIST_ROW -->. Они относятся к текущей категории, поиску, пагинации, сортировке, кнопкам добавления, подкатегориям и информационным сообщениям.

Источником данных являются:

  • Параметры URL и конфигурация модуля Market PRO.
  • Текущая структура категорий (Cot::$structure['market']).
  • Результаты SQL-запросов и дополнительные поля.
  • Функции Cotonti: cot_url(), cot_rc(), cot_generatePaginationTags() и др.

Каждый тег описан с указанием типа данных, исходного кода формирования и примера вывода.

Теги текущей категории и хлебных крошек

ТегНазначениеТип данныхИсточник (код) и пример вывода
{LIST_CAT_CODE}Код текущей категории или специального раздела (all, system, unvalidated, saved_drafts)string | null
$c = cot_import('c', 'G', 'TXT');

Пример:

electronics
{LIST_CAT_TITLE}Заголовок категории или раздела (экранированный)string (HTML-экранированный)
'LIST_CAT_TITLE' => htmlspecialchars($cat['title']),

Пример:

Электроника
{LIST_CAT_TITLE_LANG_LINE}Дополнительный заголовок категории из языкового файла (если определён)string | пусто
'LIST_CAT_TITLE_LANG_LINE' => isset($L['market_list_cat_title_lang_line_' . $c]) ? htmlspecialchars($L['market_list_cat_title_lang_line_' . $c]) : '',

Пример:

Заголовок из языкового файла
{LIST_CAT_TITLE_LISTITEMS_SCHEMAORG_LANG_LINE}Заголовок для микроразметки Schema.org из языкового файлаstring | пусто
'LIST_CAT_TITLE_LISTITEMS_SCHEMAORG_LANG_LINE' => isset($L['market_list_cat_title_ListItemschemaOrg_' . $c]) ? htmlspecialchars($L['market_list_cat_title_ListItemschemaOrg_' . $c]) : '',

Пример:

Заголовок для Schema.org
{LIST_CAT_RSS}URL RSS-ленты текущей категорииstring (URL)
'LIST_CAT_RSS' => cot_url('rss', ['c' => $c]),

Пример:

/rss/c/electronics
{LIST_CAT_PATH}Хлебные крошки категории (полные, включая саму категорию)string (HTML)
$catpath = in_array($c, ['all', 'system', 'unvalidated', 'saved_drafts'], true) || empty($c) ? $cat['title'] : cot_breadcrumbs($catpatharray, Cot::$cfg['homebreadcrumb'], true);

Пример:

<a href="...">Электроника</a>
{LIST_CAT_PATH_SHORT}Укороченные хлебные крошки категории (без последнего элемента)string (HTML) | пусто
$catpath_short = in_array($c, ['all', 'system', 'unvalidated', 'saved_drafts'], true) || empty($c) ? '' : cot_breadcrumbs($shortpath, Cot::$cfg['homebreadcrumb'], false);

Пример:

<a href="...">Каталог</a>
{LIST_CAT_URL}URL текущего списка товаров с параметрами фильтрации и сортировкиstring (URL)
'LIST_CAT_URL' => cot_url('market', $list_url_path),

Пример:

/market/electronics?s=price&w=asc
{LIST_CAT_DESCRIPTION}Описание категорииstring (HTML)
'LIST_CAT_DESCRIPTION' => $cat['desc'],

Пример:

Описание категории
{LIST_CAT_ICON}HTML-код иконки категории (если задана)string (HTML) | пусто
$categoryIcon = !empty($cat['icon']) ? cot_rc('img_structure_cat', ['icon' => $cat['icon'], 'title' => htmlspecialchars($cat['title']), 'desc' => htmlspecialchars($cat['desc'])]) : '';

Пример:

<img src="icons/electronics.png" ...>
{LIST_CAT_ICON_SRC}Путь к файлу иконки категорииstring | пусто
'LIST_CAT_ICON_SRC' => !empty($cat['icon']) ? $cat['icon'] : '',

Пример:

/images/icons/electronics.png
{LIST_BREADCRUMBS_FULL}Полные хлебные крошки: Главная → Market → путь категорииstring (HTML)
'LIST_BREADCRUMBS_FULL' => cot_breadcrumbs($marketCatpPath, $cfg['homebreadcrumb'], true),

Пример:

<a href="/">Главная</a> / <a href="/market">Market</a> / <a href="...">Электроника</a>
{LIST_BREADCRUMBS}Хлебные крошки для текущей категории (аналог LIST_CAT_PATH)string (HTML)
'LIST_BREADCRUMBS' => $catpath,

Пример:

<a href="...">Электроника</a>
{LIST_BREADCRUMBS_SHORT}Укороченные хлебные крошки (аналог LIST_CAT_PATH_SHORT)string (HTML) | пусто
'LIST_BREADCRUMBS_SHORT' => $catpath_short,

Пример:

<a href="...">Каталог</a>
{LIST_CAT__TITLE}Название дополнительного поля структуры категорииstring
'LIST_CAT_' . $uname . '_TITLE' => cot_extrafield_title($exfld, 'structure_'),

Пример:

Дополнительное поле
{LIST_CAT_}Форматированное значение дополнительного поля структуры категорииstring (HTML)
'LIST_CAT_' . $uname => cot_build_extrafields_data('structure', $exfld, $cat[$exfld['field_name']] ?? ''),

Пример:

<span>Значение</span>
{LIST_CAT__VALUE}Сырое значение дополнительного поля структуры категорииmixed
'LIST_CAT_' . $uname . '_VALUE' => $cat[$exfld['field_name']] ?? '',

Пример:

raw_value

Поисковые теги

ТегНазначениеТип данныхИсточник (код) и пример вывода
{SEARCH_HIGHLIGHT_WORDS}Слова для подсветки в результатах поиска (JSON)string (JSON)
'SEARCH_HIGHLIGHT_WORDS' => json_encode($highlight_words, JSON_UNESCAPED_UNICODE),

где $highlight_words = preg_split('/\s+/', $sq, -1, PREG_SPLIT_NO_EMPTY)
Пример:

["искомое","слово"]
{SEARCH_HIGHLIGHT_ACTIVE}Флаг активности подсветки (true, если задан поисковый запрос)boolean
'SEARCH_HIGHLIGHT_ACTIVE' => !empty($sq),

Пример:

true
{SEARCH_HIGHLIGHT_SCOPE}CSS-селектор области подсветки (зависит от режима поиска)string
$highlight_scope = '.card-title'; // для поиска по title
// '#market-items-container' для full, '' для pcod

Пример:

.card-title
{MARKET_SEARCH_ACTION_URL}URL, на который отправляется форма поискаstring (URL)
"MARKET_SEARCH_ACTION_URL" => cot_url('market', '', '', true),

Пример:

/market
{MARKET_SEARCH_SQ}HTML-поле ввода поискового запросаstring (HTML input)
"MARKET_SEARCH_SQ" => cot_inputbox('text', 'sq', !empty($sq) ? htmlspecialchars($sq) : '', 'class="schstring form-control"'),

Пример:

<input type="text" name="sq" value="..." class="schstring form-control">
{MARKET_SEARCH_CAT_SELECT2}Выпадающий список категорий с поддержкой Select2string (HTML select)
"MARKET_SEARCH_CAT_SELECT2" => cot_market_selectcat_select2($c, 'c'),

Пример:

<select name="c" class="form-select">...</select>
{MARKET_SEARCH_RESULT_MSG}Информационное сообщение о результатах поискаstring (HTML)
$searchMsg = sprintf($L['market_search_found'], $totalStr, $currentStr, htmlspecialchars($sq)); // или market_search_none

Пример:

Найдено 14 товаров, на этой странице: 5 по запросу: искомое

Пагинация

ТегНазначениеТип данныхИсточник (код) и пример вывода
{PAGE_*}Стандартные теги пагинации списка товаров (например, {PAGE_CURRENT}, {PAGE_TOTAL}, {PAGE_PREV}, {PAGE_NEXT} и др.)различные
$t->assign(cot_generatePaginationTags($pagenav));

Пример:

Страница 2 из 10
{LIST_CAT_PAGE_*}Стандартные теги пагинации подкатегорий с префиксом LIST_CAT_ (например, {LIST_CAT_PAGE_CURRENT}, {LIST_CAT_PAGE_TOTAL} и т.д.)различные
$t->assign(cot_generatePaginationTags($pagenav_cat, 'LIST_CAT_'));

Пример:

Страница 1 из 3

Кнопка добавления нового товара

ТегНазначениеТип данныхИсточник (код) и пример вывода
{LIST_SUBMIT_NEW_ITEM}HTML-код кнопки добавления нового товара (только если есть право записи и категория не специальная)string (HTML) | пусто
'LIST_SUBMIT_NEW_ITEM' => cot_rc('market_submitnewitem', ['sub_url' => $submitNewItemUrl]),

Пример:

<a href="/market/add?c=electronics">Добавить товар</a>
{LIST_SUBMIT_NEW_ITEM_URL}URL для добавления нового товараstring (URL) | пусто
$submitNewItemUrl = cot_url('market', ['c' => $c, 'm' => 'add']);

Пример:

/market/add?c=electronics

Сортировочные ссылки (LIST_TOP_*)

Эти теги создаются в цикле по стандартным полям title, key, date, author, owner, count, filecount и всем дополнительным полям таблицы cot_market.

ТегНазначениеТип данныхИсточник (код) и пример вывода
{LIST_TOP_}HTML-код ссылки сортировки для поля <FIELD> (например, LIST_TOP_TITLE, LIST_TOP_COUNT)string (HTML)
'LIST_TOP_' . $uname => cot_rc("list_link_$row_k", ['cot_img_down' => ..., 'cot_img_up' => ..., 'list_link_url_down' => $url_asc, 'list_link_url_up' => $url_desc])

Пример:

<a href="...asc">Название <i>стрелка</i></a> <a href="...desc"><i>стрелка</i></a>
{LIST_TOP__URL_ASC}URL для сортировки по возрастаниюstring (URL)
'LIST_TOP_' . $uname . '_URL_ASC' => $url_asc,

Пример:

/market?c=electronics&s=price&w=asc
{LIST_TOP__URL_DESC}URL для сортировки по убываниюstring (URL)
'LIST_TOP_' . $uname . '_URL_DESC' => $url_desc,

Пример:

/market?c=electronics&s=price&w=desc

Подкатегории (LIST_CAT_ROW_*)

Эти теги доступны только внутри цикла <!-- BEGIN: LIST_CAT_ROW --> ... <!-- END: LIST_CAT_ROW -->. Они описывают каждую подкатегорию текущей категории.

ТегНазначениеТип данныхИсточник (код) и пример вывода
{LIST_CAT_ROW_ID}ID подкатегорииint
'LIST_CAT_ROW_ID' => $structure['market'][$x]['id'] ?? 0,

Пример:

5
{LIST_CAT_ROW_URL}URL подкатегорииstring (URL)
'LIST_CAT_ROW_URL' => cot_url('market', $sub_url_path),

Пример:

/market/electronics/smartphones
{LIST_CAT_ROW_TITLE}Название подкатегории (экранированное)string (HTML-экранированный)
'LIST_CAT_ROW_TITLE' => htmlspecialchars($structure['market'][$x]['title'] ?? ''),

Пример:

Смартфоны
{LIST_CAT_ROW_DESCRIPTION}Описание подкатегорииstring
'LIST_CAT_ROW_DESCRIPTION' => $structure['market'][$x]['desc'] ?? '',

Пример:

Мобильные телефоны
{LIST_CAT_ROW_ICON}HTML-код иконки подкатегории (если есть)string (HTML) | пусто
'LIST_CAT_ROW_ICON' => !empty($structure['market'][$x]['icon']) ? cot_rc('img_structure_cat', [...] ) : '',

Пример:

<img src="icons/smartphones.png" ...>
{LIST_CAT_ROW_ICON_SRC}Путь к иконке подкатегорииstring | пусто
'LIST_CAT_ROW_ICON_SRC' => !empty($structure['market'][$x]['icon']) ? $structure['market'][$x]['icon'] : '',

Пример:

/images/icons/smartphones.png
{LIST_CAT_ROW_COUNT}Количество товаров в подкатегории и её дочерних категорияхint
$subCategoriesCount = 0;
foreach ($cat_childs as $cat_child) {
    $subCategoriesCount += (int) ($structure['market'][$cat_child]['count'] ?? 0);
}
'LIST_CAT_ROW_COUNT' => $subCategoriesCount,

Пример:

120
{LIST_CAT_ROW_NUM}Порядковый номер подкатегории на текущей страницеint
'LIST_CAT_ROW_NUM' => $kk,

Пример:

2
{LIST_CAT_ROW__TITLE}Название дополнительного поля структуры подкатегорииstring
'LIST_CAT_ROW_' . $uname . '_TITLE' => $exfld_title,

Пример:

Поле структуры
{LIST_CAT_ROW_}Форматированное значение дополнительного поля подкатегорииstring (HTML)
'LIST_CAT_ROW_' . $uname => cot_build_extrafields_data('structure', $exfld, Cot::$structure['market'][$x][$exfld['field_name']] ?? ''),

Пример:

<span>Значение</span>
{LIST_CAT_ROW__VALUE}Сырое значение дополнительного поля подкатегорииmixed
'LIST_CAT_ROW_' . $uname . '_VALUE' => Cot::$structure['market'][$x][$exfld['field_name']] ?? '',

Пример:

raw_value

Примечания

  • Теги LIST_CAT_*, SEARCH_HIGHLIGHT_*, MARKET_SEARCH_*, PAGE_*, LIST_CAT_PAGE_*, LIST_SUBMIT_NEW_ITEM* доступны в любом месте шаблона вне цикла LIST_ROW.
  • Теги LIST_CAT_ROW_* доступны только внутри цикла LIST_CAT_ROW.
  • Сортировочные теги LIST_TOP_* генерируются для каждого поля, по которому возможна сортировка. Список полей включает как стандартные (title, key, date, author, owner, count, filecount), так и все дополнительные поля таблицы товаров.
  • Пагинация списка товаров (PAGE_*) управляется параметром d, пагинация подкатегорий (LIST_CAT_PAGE_*) — параметром dc.
  • Дополнительные поля структуры категорий выводятся только если они определены в настройках структуры.
🗿

🧙‍♂️ Радуйся, странниче добрый и честный! Не понапрасну привела тя стезя в земли сии. Зде бо мужи мудры и искусники дела писменнаго и численнаго, что куют словеса и плетут узоры кода, тайны разгадывают и знанием делятся, летописи множа и ремесло цифровое творя.
⬅️ Аще налево пойдеши — обрящеши грамоты древния, писания старинныя и свитки учения. ⬆️ Аще прямо — слово мудрое и совет от мужей разумеющих, что в деле кодописном искусны, получиши. ➡️ Аще направо — сам в писцы и летописцы внидеши, и в ремесло цифровое, где строки и знаки в дело живое обращаются, слово свое в память веков вложиши.
📝 Не медли же — нареки имя свое, и вниди в чин наш, и стань с нами в братстве, где код есть магия, а строки — заклятия живыя, числом и буквою слово едины суть.
🏰 Не тайно есть собрание сие, и не инициации в нем, но многое сокрыто от пришлых и ступалого, понеже не всякому открывается знание, но токмо ищущим и пребывающим в деле сем.