Pages, Articles & News
Tools & Plugins
Example / Placeholder Title


Description as an example placeholder. Sample text content for further customization of the "Index36" template.

You are free to edit and customize the template however you like. If you don’t have time or enough knowledge — you can always order template adaptation by contacting me via GitHub or private messages on the digital goods marketplace.

2025-08-18 17:52
Avatar" alt="" class="rounded-circle border border-2 border-light" width="54" height="54">

Фронтенд модуля MultiStore для пользователя-продавца

Модуль MultiStore предоставляет пользователям сайта с правами на чтение (auth_read) и запись (auth_write) в категориях инструменты для работы с товарами на фронтенде. Продавец может просматривать опубликованные товары (свои и чужие), добавлять новые, редактировать и удалять свои товары, управлять ими в личном профиле. Фронтенд включает формы добавления/редактирования, списки товаров с фильтрами и пагинацией, страницы отдельных товаров с мульти-табами. Все действия происходят в рамках доступных категорий, с учетом состояний товаров (опубликовано, на рассмотрении, черновик). Ниже описан функционал подробно, ориентированный на взаимодействие через веб-интерфейс.

Доступ к категориям и навигация

Продавец может просматривать категории товаров, где у него есть права на чтение. Категории отображаются в виде дерева (иерархической структуры) с уровнями, заголовками, описаниями, иконками и счетчиками товаров. Дерево строится рекурсивно, исключая категории из черного списка (настроенного в конфигурации), приватные категории (если скрыты) и системные. Для каждой категории доступны:

  • URL на список товаров в категории.
  • Хлебные крошки (breadcrumbs) с путем от главной страницы до текущей категории (например, Главная > MultiStore > [Категория]).
  • Укороченная версия пути для компактного отображения.
  • Экстрафилды категорий (если настроены), такие как кастомные атрибуты, отображаемые в шаблоне.
  • Пагинация подкатегорий (если их много, лимит из конфигурации, по умолчанию 10 на страницу).
  • Выделение выбранной категории в дереве.

В списках категорий поддерживается фильтрация подкатегорий по родительской, с отступами для иерархии. Продавец может выбрать категорию из выпадающего списка (selectbox) с поддержкой Select2 для поиска и автодополнения, включая опцию "Все категории" или пустой выбор. Список исключает черный список и приватные категории. Если категория не выбрана, отображается общий список товаров с заголовком и описанием по умолчанию (из конфигурации).

Навигация включает RSS-ссылку на категорию, иконку категории (если задана), общее количество товаров в категории и подкатегориях. Для своих категорий (где есть права на запись) отображается кнопка "Добавить товар".

Добавление нового товара

Форма добавления доступна по URL вроде "m=add" (или "m=add&c=[категория]" для конкретной категории), если у продавца есть права на запись в категории. Форма включает:

  • Выбор категории из выпадающего списка с Select2 (отступы для подкатегорий, только доступные категории без заблокированных).
  • Поле для метатайтла (текстовое, до 255 символов).
  • Текстовое поле для метаописания (до 2 строк, 64 символов, до 255).
  • Поле для алиаса (текстовое, до 255 символов).
  • Обязательное поле для заголовка (текстовое, минимум 2 символа, до 255).
  • Текстовое поле для краткого описания (до 2 строк, 64 символов, до 255).
  • Поле для владельца (отображается имя текущего пользователя, ID фиксировано).
  • Выбор даты публикации (селектбокс с календарем, опция "сейчас" через чекбокс).
  • Большое текстовое поле для полного текста (24 строки, 120 символов шириной, с редактором для форматирования).
  • Выбор парсера для текста (селектбокс из доступных, таких как none, HTML, с учетом прав на использование).
  • Поле для стоимости по умолчанию (текстовое, до 10 символов, форматируется с двумя знаками после запятой).
  • Экстрафилды (если настроены администратором): поля для ввода кастомных данных, таких как изображения, файлы, числа, текст и т.д., с заголовками.

Форма поддерживает клонирование товара по ID (копирование данных из существующего). После заполнения:

  • Сохранение как "опубликовано" (если автовалидация включена), "на рассмотрении" (для модерации) или "черновик".
  • Редирект: на страницу товара (если опубликовано), сообщение о модерации или на редактирование (черновик).
  • Хлебные крошки: Главная > MultiStore > [Категория] > Добавление товара.
  • Noindex включен для страницы формы, чтобы не индексировалась поисковиками.

Валидация на фронтенде: проверка категории (обязательна, не заблокирована), заголовка (минимум 2 символа), алиаса (уникальность, формат), текста (если не разрешены пустые). Ошибки отображаются в сообщениях.

Редактирование и удаление товара

Форма редактирования доступна по URL "m=edit&id=[ID]" для своих товаров. Функционал аналогичен добавлению, с дополнительными элементами:

  • Отображение текущего статуса (published, pending, draft) с локализованным текстом.
  • Поле даты обновления (отображается автоматически, readonly).
  • Опция "Установить дату сейчас" (чекбокс).
  • Радиокнопка для удаления (Да/Нет) с подтверждением.
  • Поддержка мульти-табов в тексте: разделение на страницы с [newpage], заголовками [title]...[/title], навигацией (пагенация с 0-индексацией, отключением easypagenav временно).
  • Экстрафилды с текущими значениями.

После сохранения: обновление данных, смена статуса, редирект аналогично добавлению. Удаление: подтверждение, удаление связанных файлов экстрафилдов, обновление счетчиков категории, редирект в список. Хлебные крошки: Главная > MultiStore > [Категория] > [Заголовок] > Редактирование. Noindex включен.

Список товаров в общем разделе

Общий список доступен по URL "mstore" или с параметрами (c=[категория], s=[сортировка], w=[направление], sq=[поиск], d=[пагинация]). Функционал:

  • Фильтр по категории (включая подкатегории, если включено), поиск по заголовку/тексту.
  • Сортировка по полям (id, title, desc, text, ownerid, date, count, updated, cat) с направлениями (asc/desc), стрелками для изменения.
  • Пагинация (лимит из конфигурации категории или по умолчанию 10, с prev/next/first/last/current/total).
  • Отображение: дерево категорий с подкатегориями, хлебные крошки (полные/укороченные), поисковая форма (текстовое поле + селект категорий с Select2).
  • Для каждого товара: URL, заголовок, описание, текст (обрезанный по конфигурации категории, с "more" ссылкой), стоимость, даты, просмотры, статус, владелец, экстрафилды, комментарии (если плагин активен: ссылка, счетчик).
  • Кнопка добавления товара в категории (если права на запись).
  • Видны: все опубликованные товары + свои на рассмотрении/черновики.
  • Сообщения о результатах поиска (количество позиций или "ничего не найдено").
  • Стили: oddeven для строк, нумерация.
  • Noindex отключен для списков.

Специальные списки: unvalidated (свои на рассмотрении), saved_drafts (свои черновики) с сортировкой по дате DESC.

Список товаров в профиле пользователя

В профиле (tab=mstore) отображается вкладка с товарами продавца:

  • Список категорий с иконками, заголовками, URL, счетчиками товаров, выделением выбранной.
  • Фильтр по категории (cat=[код]).
  • Пагинация (dmstore, лимит по умолчанию 10).
  • Сортировка по дате DESC (фиксировано).
  • Для каждого товара: теги как в общем списке, плюс кнопка удаления с подтверждением и редиректом обратно (redirect параметр).
  • Общий счетчик товаров, счетчики по категориям.
  • Кнопка добавления (если права).
  • Видны: опубликованные + свои на рассмотрении/черновики.
  • Noindex отключен для вкладки.

Просмотр страницы товара

Страница товара по URL (id=[ID] или al=[алиас], pg=[таб] для мульти-табов):

  • Теги: URL, ID, заголовок, хлебные крошки (полные, включая товар), алиас, состояние/статус, категория (URL, заголовок, путь, описание, иконка), описание, текст (полный или обрезанный по [more]/[newpage]), стоимость, автор/владелец (с тегами пользователя), даты (с форматом datetime_medium), просмотры.
  • Мульти-табы: разделение текста на вкладки с номерами, заголовками, навигацией (pagenav без easypagenav).
  • Для своих товаров: ссылки на редактирование, удаление с подтверждением.
  • Увеличение просмотров при посещении (учитывается для всех).
  • Мета: title (из метатайтла или заголовка + категория), desc (из метаописания или описания), keywords (из товара).
  • Канонический URL, sublolocation по заголовку, last_modified по обновлению.
  • Noindex отключен.
  • Хлебные крошки: Главная > MultiStore > [Категория] > [Заголовок].

Дополнительные элементы фронтенда

  • Поиск: форма с полем запроса (autofocus, class form-control) и селектом категорий (Select2), действие на URL списка.
  • Комментарии: интеграция с плагином comments (ссылка, счетчик в списках).
  • Экстрафилды: отображение в списках/страницах/формах с заголовками, форматированием (build_extrafields_data).
  • Валюта: отображается в тегах стоимости (из конфигурации).
  • Сообщения: ошибки/успех (например, "Сохранено как черновик", "На рассмотрении").
  • Кэширование: прозрачно для пользователя, ускоряет загрузку списков/страниц для гостей.
Account