Подключение в теме 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; отклонение с причиной или стандартной из настроек.