Скачать FAQ-плагин для DLE 21
Что было в версии 1.1
Версия 1.1 заложила фундамент и дала три практичные вещи:
-
Разметка Schema.org FAQPage (JSON-LD). На странице
?do=faqавтоматически выводится структурированная разметка. Google может показывать ваши вопросы раскрывающимися блоками прямо в результатах поиска. -
Защита
engine/data/faq.json. При установке рядом с файлом данных создаётся.htaccess, закрывающий прямой доступ из браузера. Открытьhttps://ваш-сайт/engine/data/faq.jsonснаружи больше нельзя. -
Резервная копия перед каждой записью. Перед сохранением
faq.jsonкопируется вfaq.json.bak. Если что-то пойдёт не так — данные можно восстановить руками.
Всё это осталось и работает в текущей версии.
Что добавилось в версии 1.2
Основное изменение 1.2 — поиск по вопросам на странице ?do=faq:
-
Поле поиска над списком и мгновенная фильтрация при вводе.
-
Счётчик «Найдено X из Y» рядом с полем.
-
Кнопка «Сбросить» и сообщение «Ничего не найдено», если запрос не дал результатов.
-
Умное обновление
faq.tpl: при переходе с 1.1 на 1.2 шаблон подменяется автоматически, но если вы уже сами добавили блок поиска — плагин его не трогает.
Что нового в версии 1.3
Это большое обновление — сразу три крупные функции в одном пакете.
1. Категории FAQ
-
У каждого вопроса появилось поле
cat— до 100 символов. -
На фронтенде вопросы группируются в секции с заголовком категории. «Без категории» идёт первой, дальше — по алфавиту.
-
Поиск продолжает работать одновременно во всех категориях и сам скрывает пустые секции.
-
В админке — колонка «Категория» с бейджем, выпадающий фильтр по категориям сверху, а в модальном окне редактирования — поле с
datalist(можно выбрать из существующих или ввести новую). -
Категории вычисляются из самих вопросов: если в категории не осталось ни одного вопроса, она исчезает сама — отдельных таблиц и «пустых» категорий нет.
2. Deep-linking на конкретный вопрос
-
Каждому вопросу присвоен якорь
#faq-N. -
При загрузке страницы с якорем нужный блок автоматически раскрывается, и страница плавно прокручивается к нему.
-
Событие
hashchangeтоже обрабатывается: если в адресной строке сменить якорь, блок раскроется. -
В ответе есть кнопка «Ссылка» — она копирует прямой URL на этот вопрос в буфер обмена (на 1,2 секунды превращаясь в «Скопировано»).
3. Счётчик просмотров
-
У каждого вопроса в
faq.jsonпоявилось полеviews— целое число. -
Счётчик увеличивается при первом раскрытии вопроса на фронте. Отправка идёт через
navigator.sendBeacon, поэтому не мешает пользователю и не блокирует интерфейс. -
Инкремент один раз за сессию просмотра страницы — повторные раскрытия того же вопроса не считаются.
-
В админке появилась колонка «Просмотры», а в меню действий — пункт «Сбросить просмотры».
-
В отличие от админских операций, инкремент просмотра не создаёт
.bak, чтобы не заспамить диск копиями на каждый клик.
Умная миграция данных
Отдельно стоит сказать о phpupgrade. При обновлении с 1.1 или 1.2 до 1.3 плагин не теряет существующие вопросы: он читает текущий faq.json и добавляет каждому вопросу недостающие поля cat = '' и views = 0. Старые данные становятся видимыми и рабочими сразу после установки — ничего вручную править не нужно.
Так же умно обновляется и faq.tpl: если в вашем шаблоне уже есть признаки версии 1.3 (класс .faq-category), файл не перезаписывается — сохраняются ваши доработки.
Обновление в один клик
Плагин умеет проверять обновления сам. В «Управлении плагинами» у FAQ есть кнопка «Проверить обновление» — она обращается по адресу из <upgradeurl>
https://devify.ru/uploads/faq/faq-update.json), сравнивает версии и, если доступна новая, предлагает обновиться. Скачивание идёт через ZIP-архив, внутри которого лежит свежий faq.xml.
Скачать :