DevCraft Документации
Руководства

Подключение в теме v200.1.0

Вставки UserLists на новости и страницы списков; стили через оболочку сайта.

Оболочка сайта

Стили и скрипт кнопки не подключают через {include} и не кладут в templates/{skin}/devcraft/user_lists/. Они объявлены в siteAssets манифеста:

ModuleSiteAssetsBuilder::create()
	->css('user_lists.css')
	->js(
		'user_lists_public.js',
		dependsOn: ['devcraft/src/templates/core/assets/js/dc_public.js'],
		available: ['main', 'showfull', 'lastnews', 'tags', 'allnews'],
	)

Скрипт ждёт публичный клиент Admin (dc_public.js) и выводится на главной, полной новости, последних, тегах и ленте всех новостей. Стили — на всех разделах. Эти поля пишутся в таблицу только при первом появлении файла; дальше список правит админка.

В main.tpl должны быть теги {devcraft-header} в <head> и {devcraft-scripts} перед </body>. Подробнее: Публичные ресурсы оболочки.

Старые вставки focus=css и focus=js ничего не выводят (чтобы не дублировать файлы).

Новость: кнопка и окно

В shortstory.tpl, fullstory.tpl или свой шаблон (путь от корня сайта; относительные ../ DataLife Engine вырезает):

{include file="devcraft/src/modules/UserLists/Controller/show_user_lists.php?news_id={news-id}&focus=button"}
{include file="devcraft/src/modules/UserLists/Controller/show_user_lists.php?news_id={news-id}&focus=modal"}
focusРезультат
buttonКнопка «в списки»
modalРазметка окна выбора списка
css / jsПусто (файлы через оболочку)

Текст кнопки берётся из настроек модуля (button_label). Без {news-id} кнопка и окно не рисуются. Гостю блок не показывается.

Разметка: templates/{skin}/devcraft/user_lists/button.tpl и modal.tpl. Нет каталога в своей теме — скопируйте из Default.

Страницы списков

{include file="devcraft/src/modules/UserLists/Controller/show_user_lists_page.php?focus=mine"}
{include file="devcraft/src/modules/UserLists/Controller/show_user_lists_page.php?focus=catalog"}
{include file="devcraft/src/modules/UserLists/Controller/show_user_lists_page.php?focus=view&list_id=1"}
{include file="devcraft/src/modules/UserLists/Controller/show_user_lists_page.php?focus=proposals"}
focusЧто показывает
mineСписки текущего пользователя
catalogОткрытые списки (гости — только если включено в настройках)
viewСодержимое списка; нужен list_id
proposalsОчередь предложений владельцу

Шаблоны: page.tpl, view.tpl, proposals.tpl.

Запросы

Все запросы идут в devcraft/ajax.php (mod=user_lists). Отдельный engine/ajax/user_lists.php не создаём.

Типичная ошибка

В теме ещё стоит engine/modules/devcraft/user_lists.php — этих файлов в пакете больше нет. Замените путь на Controller/show_user_lists.php.

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