ID: news_templates
Name: News Templates
Version: 0.1.0
Acts: core
Actions: rpc; news_templates.php
File: news_templates.php
Config: config.php
Install: install.php
Deinstall: deinstall.php
Type: plugin
Title: Шаблоны новостей
Description: Предустановленные шаблоны текста для вставки в редактор новости
Author: NGCMS Community
Author_URI:
http://ngcms.orgInformation: Добавляет выпадающий список с шаблонами в тулбар редактора новости (через JS) и хранит шаблоны в БД
Плагин добавляет в редактор новости (в админке) выпадающее меню с предустановленными текстовыми шаблонами. Шаблоны хранятся в БД и вставляются в тело новости одним кликом. В комплекте — облегчённый BBCode‑тулбар и модальные окна для вставки ссылок, e‑mail, изображений и медиа.
Возможности- Хранение произвольного числа шаблонов (заголовок + текст, флаг «Активен»).
- Быстрая вставка шаблона в активное поле редактора без перезагрузки страницы.
- Мини‑тулбар BBCode (жирный, курсив, списки, цитата, код, спойлер и др.).
- Модальные окна для вставки URL, e‑mail, изображений (с загрузкой), медиа.
- Drag & Drop загрузка изображений/файлов с автоматической подстановкой BBCode.
- RPC‑метод для получения списка активных шаблонов (используется JS в админке).
Установка1) Админка → Плагины → news_templates → Установить.
2) Будет создана таблица `prefix_news_templates`.
3) По умолчанию создано 3 «пустых» слота под шаблоны (можно изменить в настройках).
Удаление: Админка → Плагины → news_templates → Удалить. Таблица и настройки будут очищены.
Настройка- «Количество шаблонов» — задаёт, сколько строк для редактирования выводить в настройках плагина. Это же число используется как максимум при сохранении.
- Для каждой строки доступны поля: «Заголовок», «Текст шаблона», «Активен».
- Порядок отображения соответствует номеру строки (поле `ord`). Чтобы переупорядочить — отредактируйте нужные строки.
Как это работает в редакторе- На странице создания/редактирования новости автоматически подключается общий скрипт `lib/news_editor.js`, который добавляет кнопку «Шаблоны» в тулбар редактора.
- При первом открытии меню скрипт вызывает RPC‑метод и подтягивает активные шаблоны:
- Метод: `plugin.news_templates.list`
- Права: только для авторизованных пользователей админки
- Формат ответа: JSON `{ status, data: [{ id, ord, title, content }, ...] }`
- Клик по пункту просто вставляет содержимое шаблона (поле `content`) в активную текстовую область.
Зависимости и совместимость- Работает с дефолтными админ‑скинами NG CMS (Bootstrap 3/5) и без jQuery — есть нативные fallbacks.
- Для кнопок и иконок используется Font Awesome (идёт в составе админ‑тем).
- Загрузка изображений/файлов использует RPC бэкенды NG CMS (методы `admin.images.upload`, `admin.files.upload` и аналоги). Если в сборке отсутствуют конкретные обработчики — будет использована доступная альтернатива.
Структура БДТаблица `prefix_news_templates`:
- `id` — PK, auto_increment
- `ord` — порядковый номер
- `title` — заголовок шаблона
- `content` — текст шаблона
- `active` — 0/1, отображать в меню
- `dt` — дата изменения (unix time)
RPC- Зарегистрирован метод `plugin.news_templates.list` (см. `news_templates.php`).
- Возвращает только активные шаблоны, отсортированные по `ord`, затем по `id`.
- Доступ разрешён только авторизованным пользователям (в админке).
Подсказки по использованию- Если кнопка «Шаблоны» не появилась:
- Проверьте, что плагин установлен и включён.
- Убедитесь, что загружается `lib/news_editor.js` (в консоли не должно быть ошибок 404/JS).
- Посмотрите ошибки в консоли/сети по RPC `plugin.news_templates.list`.
- Шаблоны можно заводить как заготовки BBCode или чистого текста. При вставке формат никак не изменяется.
Пример оформления новости с BBCode
Ниже — типовой «скелет» новости, который вы можете сохранить одним из шаблонов и вставлять при создании материалов.
Код:
[p][b]Короткий анонс:[/b] Одним–двумя предложениями опишите, о чём материал.[/p]
[img="https://example.com/path/to/cover.jpg" align="center" width="960" height="540"]Подпись к изображению[/img]
[p]Основной текст новости. Допускается [b]выделение[/b], [i]курсив[/i], [u]подчёркивание[/u] и др.[/p]
[quote]Ключевая цитата источника или выдержка из документа.[/quote]
[p][b]Список ключевых фактов:[/b][/p]
[ul]
[li]Факт №1[/li]
[li]Факт №2[/li]
[li]Факт №3[/li]
[/ul]
[p]Полезные ссылки: [url="https://example.com"]официальный сайт[/url], [url="https://example.com/faq"]FAQ[/url].[/p]
[spoiler]Дополнительные детали, которые можно скрыть под спойлер.[/spoiler]
[code=js]
// Короткий пример кода (если уместно)
function hello(name){
return 'Hello, ' + name + '!';
}
[/code]
[media width="640" height="360"]https://example.com/embed/video.mp4[/media]
[p][i]Автор: Имя Фамилия. Контакты: [email][email protected][/email][/i][/p]
Скачать:news_templates.zip