Сторінки, статті та новини
Інструменти та плагіни
Заготовка заголовок


Опис як приклад заготовки. Приклад текстового контенту для подальшої кастомізації шаблону "Index36".

Редагувати шаблон можна на власний розсуд. Якщо у вас немає часу або знань – завжди можна замовити адаптацію шаблону, написавши мені через GitHub або особисті повідомлення на публічній сторінці маркетплейсу цифрових товарів.

18.08.2025 17:43

### Общая структура и конфигурация модуля

Модуль MultiStore является расширением для системы Cotonti Siena версии 0.9.26, совместимым с PHP 8.4. Он основан на модуле "Pages" и предназначен для управления товарами и категориями в магазине. Модуль лицензирован под BSD License.

Конфигурация модуля определяется в файле mstore.setup.php и включает:
- Глобальные параметры: 
 - Включение/отключение разметки (mstoremarkup, по умолчанию включено).
 - Выбор парсера для текста товаров (mstoreparser, по умолчанию none, с использованием функции cot_get_parsers() для получения доступных парсеров).
 - Учет просмотров товаров администраторами (mstorecount_admin, по умолчанию отключено).
 - Автоматическая валидация товаров (mstoreautovalidate, по умолчанию включено).
 - Максимальное количество списков на странице (mstoremaxlistsperpage, варианты от 5 до 20, по умолчанию 10).
 - Шаблон заголовка страницы товара ({TITLE} - {CATEGORY}).
 - Заголовок и описание магазина по умолчанию, когда не выбрана категория или товар.
 - Черный список кодов категорий для исключения из структур (mstoreblacktreecatspage).
 - Валюта (mstore_currency, варианты: USD, EUR, RUB, UAH, USDT, BTC, по умолчанию BTC).
- Параметры для категорий (структуры):
 - Порядок сортировки (mstoreorder, использует cot_mstore_config_order() для получения вариантов, по умолчанию title).
 - Направление сортировки (mstoreway, asc или desc, по умолчанию asc).
 - Максимальное количество строк на странице (maxrowsperpage, по умолчанию 30).
 - Обрезка текста в списках (mstoretruncatetext, по умолчанию 0).
 - Разрешение пустого текста (mstoreallowemptytext, по умолчанию отключено).
 - Ключевые слова, мета-заголовок и мета-описание для категорий.
 - Максимальное количество списков на странице для категорий (mstoremaxlistsperpage, варианты от 5 до 20, по умолчанию 10).

Установка модуля (mstore.install.sql) включает:
- Создание таблицы cot_mstore для хранения товаров с полями: id, alias, state, cat, title, desc, metatitle, metadesc, text, costdflt, parser, ownerid, date, updated, count.
- Вставку прав доступа для категорий (e-scooter, e-bike, system, tricycle).
- Вставку категорий в cot_structure: E-scooter, System, E-bike, Tricycle.
- Вставку примера товара (Crosser TR7 Tricycle).

Модуль использует классы: MstoreDictionary для констант состояний (STATE_PUBLISHED=0, STATE_PENDING=1, STATE_DRAFT=2), MstoreRepository для получения товаров по ID с кэшированием, MstoreControlService для удаления товаров с транзакциями и обновлением счетчиков.

### Функции для работы с категориями и структурой

Модуль предоставляет функции для работы с категориями:
- cot_mstore_selectbox_structure_select2(): Выпадающий список категорий с поддержкой Select2, отступами для подкатегорий, черным списком категорий из конфигурации, опцией скрытия приватных категорий, добавлением пустого выбора.
- cot_mstore_selectcat_select2(): Выпадающий список категорий для формы поиска с Select2, включая "Все категории", отступами, черным списком, скрытием приватных.
- cot_mstore_selectcat(): Простой выпадающий список категорий без Select2, с черным списком.
- cot_build_structure_mstore_tree(): Построение иерархического дерева категорий с рекурсией, поддержкой выделения выбранных, уровней, шаблонов, черным списком, подсчетом общего количества товаров, использованием шаблона mstore.tree.tpl, обработкой экстрафилдов, i18n.
- cot_mstore_sync(): Подсчет товаров в категории для синхронизации счетчиков.
- cot_mstore_updateStructureCounters(): Обновление счетчиков товаров в структуре категории.
- cot_mstore_updatecat(): Обновление кода категории для всех товаров.

### Функции для работы с товарами

Общие функции:
- cot_generate_mstoretags(): Генерация тегов для шаблона товара (URL, ID, TITLE, BREADCRUMBS, ALIAS, STATE, STATUS, CAT, CAT_URL, CAT_TITLE, CAT_PATH, CAT_DESCRIPTION, CAT_ICON, DESCRIPTION, TEXT, TEXT_SHORT, TEXT_CUT, TEXT_IS_CUT, DESCRIPTION_OR_TEXT, DESCRIPTION_OR_TEXT_CUT, MORE, AUTHOR, OWNER_ID, OWNER_NAME, COSTDFLT, CREATED, UPDATED, CREATED_STAMP, UPDATED_STAMP, HITS, ADMIN). Поддержка экстрафилдов для товаров и категорий, админ-тегов (EDIT, UNVALIDATE, DELETE, CLONE), статуса (published, pending, draft).
- cot_cut_more_mstore(): Обрезка текста товара по тегу <!--more-->, [more], <hr class="more"> или [newpage], удаление [title].
- cot_readraw_mstore(): Чтение сырого содержимого файла с проверкой на '..'.
- cot_mstore_status(): Определение статуса товара (published, pending, draft).
- cot_mstore_enum(): Генерация виджета списка товаров с фильтрами по категориям, лимиту, шаблону, порядку, условию, активным только, подкатегориям, исключением текущего, черным списком, пагинацией, кэшированием. Поддержка комментариев, тегов.
- cot_mstore_url(): Генерация URL товара с параметрами, хвостом, обходом htmlspecialchars.
- cot_mstore_auth(): Получение прав доступа для категории (auth_read, auth_write, isadmin, auth_download).
- cot_mstore_import(): Импорт данных товара из запроса (POST/DIRECT), с обработкой даты, обновления, парсера, экстрафилдов, прав.
- cot_mstore_validate(): Валидация данных товара (категория, заголовок, алиас, текст), проверка блокировки категории.
- cot_mstore_add(): Добавление товара с проверкой ошибок, уникальностью алиаса, автоматической валидацией, хуками, обновлением счетчиков, логом.
- cot_mstore_update(): Обновление товара с проверкой ошибок, уникальностью алиаса, хуками, обновлением счетчиков, логом.

### Добавление товара (mstore.add.php)

Форма добавления товара:
- Импорт категории, клонирование существующего товара.
- Проверка прав записи в категорию, блокировки категории.
- Генерация хлебных крошек, подзаголовка, noindex.
- Форма с полями: категория (selectbox с Select2), метатайтл, метаописание, алиас, заголовок, описание, владелец, дата (с опцией "сейчас"), текст (textarea с редактором), парсер, стоимость по умолчанию, экстрафилды.
- Валидация и добавление с хуками, редиректом в зависимости от состояния (опубликовано - на страницу, на рассмотрении - сообщение, черновик - редактирование).
- Поддержка кнопки добавления для пользователей с правами.

### Редактирование товара (mstore.edit.php)

Форма редактирования товара:
- Импорт ID, категории, парсера.
- Проверка существования товара, прав чтения/записи.
- Генерация статуса, подзаголовка, noindex, сублиокации.
- Форма с полями: категория (selectbox с Select2), метатайтл, метаописание, алиас, заголовок, описание, дата, обновлено, текст, парсер, стоимость по умолчанию, экстрафилды, владелец/просмотры (для админов).
- Опция удаления с подтверждением.
- Обновление с хуками, редиректом в зависимости от состояния.
- Поддержка мульти-табов в тексте ([newpage]).

### Список товаров (mstore.list.php)

Отображение списка:
- Импорт сортировки, направления, категории, фильтров, поиска, пагинации.
- Проверка прав чтения для категории (специальные: all, system, unvalidated, saved_drafts).
- Фильтры: категория, поиск по заголовку/тексту, состояние, дата, владелец.
- Сортировка по полям (id, title, desc, text, ownerid, date, count, updated, cat), направление (asc/desc).
- Обрезка текста в списках.
- Генерация дерева категорий, хлебных крошек, пагинации.
- Теги для шаблона: категория (код, заголовок, RSS, путь, URL, описание, иконка), поиск (форма с Select2), пагинация, добавление товара.
- Цикл по подкатегориям и товарам с тегами, комментариями, экстрафилдами.
- Кэширование для гостей.

### Просмотр товара (mstore.main.php)

Отображение отдельного товара:
- Импорт ID/алиаса, категории, страницы мульти-таба.
- Проверка существования, прав чтения, состояния (скрытие черновиков/на рассмотрении для не-владельцев/не-админов).
- Увеличение счетчика просмотров (с опцией для админов).
- Генерация тегов, мульти-табов ([newpage]), навигации по табам.
- Подзаголовок, мета, канонический URL, noindex (false).
- Админ-опции.

### Административная панель (mstore.admin.php)

Управление товарами:
- Фильтры: все, на рассмотрении, опубликованные, черновики.
- Сортировка по полям, пагинация.
- Массовые действия: валидация, удаление с подтверждением.
- Действия для товара: валидация, отмена валидации, удаление, редактирование с хуками, логами, очисткой кэша.
- Статистика: общее количество, на рассмотрении.
- Ссылки: конфиг, добавление, экстрафилды, структура.

### Интеграция с профилем пользователя (mstore.userdetails.php)

Вкладка товаров в профиле:
- Импорт вкладки, категории, пагинации.
- Проверка прав, состояния (опубликовано для не-владельцев/не-админов).
- Список категорий пользователя с счетчиками.
- Список товаров с тегами, пагинацией, удалением (для владельца/админа).
- Кнопка добавления для пользователей с правами.
- noindex false для вкладки.

Обліковий запис