DevCraft Документации

Начало работы v200.1.0

Обзор UserLists: свои и общие списки новостей, кнопка на материале, каталог и предложения — без правок штатного «Избранного» DLE.

UserLists — сателлит DevCraft Admin для DataLife Engine. Люди собирают новости в свои списки (только себе или открытые всем), а администратор задаёт общие имена вроде «В планах» или «Просмотрено»: название одно на весь сайт, содержимое у каждого своё.

Модуль не трогает штатное «Избранное» DLE: не подменяет его, не переносит туда записи и не правит ядро ради этого. Данные лежат в таблицах dc_user_lists*. Это замена старого FavAll: админка на Metro, кнопка на новости, каталог открытых списков и очередь предложений с одобрением владельца.

Исходники пакета: репозиторий DLE-UserLists (devcraft/src/modules/UserLists/).

Что видит посетитель

На краткой или полной новости — кнопка (текст задаётся в настройках, по умолчанию «В списки»). По нажатию открывается окно: отметить списки, куда положить материал, при необходимости создать свой список.

Отдельно в теме подключаются страницы:

  • мои списки;
  • каталог открытых списков (гости — только если это разрешено в настройках);
  • просмотр одного списка;
  • очередь предложений владельцу.

Чужой личный список с сайта не виден. Открытый список видят те, кому это разрешено настройкой для гостей и правами группы.

Что настраивает администратор

Два вида списков:

  1. Админ-списки — общие имена. Пользователь не удаляет такой список. Внутри у каждого человека свой набор новостей. При первом открытии модуля создаются три имени: «В планах», «Просмотрено», «Избрано».
  2. Списки пользователей — создаёт владелец. Считаются в лимит группы. Можно оставить только себе или открыть всем (если группе разрешено). Описание правится визуальным редактором. Имя, видимость и описание меняют владелец или администратор.

Права групп: доступ к модулю на сайте, сколько своих списков можно завести, можно ли открывать списки всем, можно ли предлагать новости в чужие открытые списки.

Предложения: владелец включает приём и выбирает, кто может предлагать — конкретные люди или все, у кого есть право предлагать. Новость сначала в очереди; владелец принимает или отклоняет.

Возможности

  • кнопка и окно выбора списков на новости (краткая, полная или свой шаблон);
  • каталог, «мои списки», просмотр и очередь предложений — отдельные вставки 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. Одна и та же новость в одном списке у одного пользователя не дублируется.

Структура файлов

Корень сайта после установки (обзор):

user_lists.php
manifest.php
button.tpl
modal.tpl
page.tpl
view.tpl
proposals.tpl

Если в текущей теме нет каталога devcraft/user_lists/, скопируйте его из Default.

Разделы админки

РазделЗачем
Админ-спискиОбщие имена списков; содержимое у каждого пользователя своё
Списки пользователейЧужие и свои пользовательские списки, правки от администратора
Права группДоступ, лимит своих списков, открытые списки, предложения
Настройкигости и открытые списки, текст кнопки, запрещённые слова, сколько записей на странице
Подключение в шаблонышпаргалка вставок в тему

Дальше

На этой странице