Начало работы v200.1.0
Обзор UserLists: свои и общие списки новостей, кнопка на материале, каталог и предложения — без правок штатного «Избранного» DLE.
UserLists — сателлит DevCraft Admin для DataLife Engine. Люди собирают новости в свои списки (только себе или открытые всем), а администратор задаёт общие имена вроде «В планах» или «Просмотрено»: название одно на весь сайт, содержимое у каждого своё.
Модуль не трогает штатное «Избранное» DLE: не подменяет его, не переносит туда записи и не правит ядро ради этого. Данные лежат в таблицах dc_user_lists*. Это замена старого FavAll: админка на Metro, кнопка на новости, каталог открытых списков и очередь предложений с одобрением владельца.
Исходники пакета: репозиторий DLE-UserLists (devcraft/src/modules/UserLists/).
Что видит посетитель
На краткой или полной новости — кнопка (текст задаётся в настройках, по умолчанию «В списки»). По нажатию открывается окно: отметить списки, куда положить материал, при необходимости создать свой список.
Отдельно в теме подключаются страницы:
- мои списки;
- каталог открытых списков (гости — только если это разрешено в настройках);
- просмотр одного списка;
- очередь предложений владельцу.
Чужой личный список с сайта не виден. Открытый список видят те, кому это разрешено настройкой для гостей и правами группы.
Что настраивает администратор
Два вида списков:
- Админ-списки — общие имена. Пользователь не удаляет такой список. Внутри у каждого человека свой набор новостей. При первом открытии модуля создаются три имени: «В планах», «Просмотрено», «Избрано».
- Списки пользователей — создаёт владелец. Считаются в лимит группы. Можно оставить только себе или открыть всем (если группе разрешено). Описание правится визуальным редактором. Имя, видимость и описание меняют владелец или администратор.
Права групп: доступ к модулю на сайте, сколько своих списков можно завести, можно ли открывать списки всем, можно ли предлагать новости в чужие открытые списки.
Предложения: владелец включает приём и выбирает, кто может предлагать — конкретные люди или все, у кого есть право предлагать. Новость сначала в очереди; владелец принимает или отклоняет.
Возможности
- кнопка и окно выбора списков на новости (краткая, полная или свой шаблон);
- каталог, «мои списки», просмотр и очередь предложений — отдельные вставки
Controller/; - админ-списки с общим именем и личным содержимым;
- свои списки с лимитом, запрещёнными словами в названии и ограничением длины;
- права по группам DLE;
- гости и открытые списки — отдельный переключатель;
- запросы сайта и админки только через
devcraft/ajax.php; - журнал важных действий через
LogGenerator.
Требования
| Компонент | Версия |
|---|---|
| DataLife Engine | ≥ 21.0 |
| PHP | ≥ 8.3 |
| DevCraft Admin | ≥ 200.4.1 |
Идентификация модуля
| Поле | Значение |
|---|---|
| Каталог модуля | UserLists |
| Код в админке | user_lists |
| Версия | 200.1.0 |
| Точка входа | engine/inc/user_lists.php |
| Пространство имён | DevCraft\Modules\UserLists |
Таблицы в базе
При первом открытии модуля в админке создаются таблицы с префиксом сайта:
| Назначение | Таблица |
|---|---|
| Списки (админские и пользовательские) | {prefix}_dc_user_lists |
| Новости в списках | {prefix}_dc_user_list_items |
| Кому разрешено предлагать в конкретный список | {prefix}_dc_user_list_suggestors |
| Права групп | {prefix}_dc_user_list_group_permissions |
Новость в элементе ссылается на post.id. Одна и та же новость в одном списке у одного пользователя не дублируется.
Структура файлов
Корень сайта после установки (обзор):
Если в текущей теме нет каталога devcraft/user_lists/, скопируйте его из Default.
Разделы админки
| Раздел | Зачем |
|---|---|
| Админ-списки | Общие имена списков; содержимое у каждого пользователя своё |
| Списки пользователей | Чужие и свои пользовательские списки, правки от администратора |
| Права групп | Доступ, лимит своих списков, открытые списки, предложения |
| Настройки | гости и открытые списки, текст кнопки, запрещённые слова, сколько записей на странице |
| Подключение в шаблоны | шпаргалка вставок в тему |