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

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

Include TagsAdd в fullstory.tpl: кнопка, окно и публичные CSS/JS оболочки.

Введение

На полной новости модуль рисует кнопку и окно предложения тегов. Логика include — в devcraft/src/modules/TagsAdd/Controller/show_tags_add.php; разметка кнопки и окна — в теме templates/{skin}/devcraft/tags_add/.

Стили и скрипт сайта идут из Public/ через siteAssets манифеста (списки публичных ресурсов Admin). В main.tpl нужен тег {devcraft} или пара {devcraft-header} / {devcraft-scripts}. Подробности: публичные ресурсы оболочки.

Include с focus=css и focus=js ничего не выводят: их можно убрать, чтобы не путать со старой схемой.

Предварительные требования

main.tpl

Один раз в оболочке:

{devcraft}

Либо раздельно: {devcraft-header} в <head> и {devcraft-scripts} перед закрытием </body>. Так на страницу попадут tags_add.css, tags_add_site.js и общий dc_public.js Admin.

В манифесте у tags_add_site.js заданы зависимость от dc_public.js и разделы main, showfull, lastnews, tags, allnews. Эти поля пишутся в таблицу только при первой записи файла. Дальше их правят в админке: публичные стили и скрипты.

fullstory.tpl

В шаблон полной новости добавьте (путь от корня сайта; DLE вырезает .. в include):

{include file="devcraft/src/modules/TagsAdd/Controller/show_tags_add.php?news_id={news-id}&focus=button"}
{include file="devcraft/src/modules/TagsAdd/Controller/show_tags_add.php?news_id={news-id}&focus=modal"}

Параметр news_id — канон; newsid принят как синоним.

Параметр focus:

ЗначениеРезультат
buttonКнопка предложения
modalРазметка окна
css, jsПусто (файлы уже в оболочке)

Файлы темы: button.tpl, modal.tpl. Если скин не Default — скопируйте каталог из пакета Default.

Теги шаблонов темы

button.tpl

ТегОписание
{button-label}Текст кнопки из настроек
{news-id}ID новости

modal.tpl

ТегОписание
{news-id}ID новости
{button-label}Текст кнопки / заголовок окна
{user-hash}dle_login_hash для AJAX

При правке окна сохраняйте имена полей формы и вызов AJAX — иначе отправка сломается. Публичный скрипт Public/tags_add_site.js шлёт DevCraftPublic.Ajax.post('tags_add', 'suggest', { news_id, tags }). Подробности: AJAX.

Модерация

Очередь: ?mod=tags_add&action=suggestions.
Одобрение / отклонение / удаление — окна Metro; отклонение с причиной или стандартной из настроек.

Связанные разделы

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