Подключение в теме 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.