QR / Additional BBCode Toolbar (дополнительные настройки для панели BBCode в редакторе сообщений)

Ответить
 • Просмотры: 42
Аватара пользователя
волчара
Администратор
Сообщения: 1902
Зарегистрирован: 29 дек 2016, 10:45
Благодарил (а): 10 раз
Поблагодарили: 664 раза
Страна: Russia
Откуда: Омск
Пол: Мужчина
Возраст: 51
Контактная информация:

QR / Additional BBCode Toolbar (дополнительные настройки для панели BBCode в редакторе сообщений)

Сообщение волчара »

Код: Выделить всё

# QR / ABBCT инструменты (`vse/qrabbct`)

Расширение для **phpBB 3.3+**: быстрый ответ (Quick Reply), дополнительные BBCode, оформление цитат и ссылок, вставка видео (VideoPLAY), ограничения по ссылкам и вспомогательные сценарии для администраторов и модераторов.

**Версия:** см. `composer.json`  
**Лицензия:** GPL-2.0-only

---

## Требования

- PHP ≥ 7.1  
- phpBB ≥ 3.3.0  
- Расширение DOM (для постобработки HTML после s9e Text Formatter)

---

## Установка и обновление

1. Скопируйте каталог `vse/qrabbct` в `ext/vse/qrabbct/`.
2. В ACP: **Персонализация → Управление расширениями** — включите **QR / ABBCT инструменты**.
3. При обновлении нажмите **«Обновить»** у расширения, чтобы применились миграции.
4. После изменений при необходимости очистите кэш форума.
5. **Настройки (тумблеры ACP) сохраняются** при обновлении файлов и при повторном включении расширения; сброса «на нули» больше нет (раньше это делал `ext.php` при каждом enable).

**Примечание (миграция v1_1_10):** в самой первой миграции были опечатки в именах ключей конфига (`vse_abbct_*` вместо `vse_qrabbct_*`), из‑за чего после полного удаления данных и повторной установки тумблеры в ACP могли отображаться неверно. Обновите расширение и выполните **«Обновить»**, чтобы применилась миграция `v1_1_10`.

---

## Разделы администратора (ACP)

Расширение добавляет три страницы настроек (категория **QR / ABBCT инструменты**):

| Режим | Назначение |
|--------|------------|
| **Настройки QR** | Форма быстрого ответа в темах и опции полного редактора |
| **Дополнительные функции BBCode** | Цитаты, ссылки, URL-диалог, подсветка текста и др. |
| **Добавить BBCode** | Включение отдельных BBCode и режима «Вид сообщения» |

---

## 1. Настройки QR (быстрый ответ)

| Функция | Описание |
|--------|----------|
| **Скрыть статусы BBCode и «Обзор темы» в полном редакторе** | Под блоком смайликов на странице **полного** редактирования сообщения скрываются строки «BBCode включён», «[img] включён» и т.д., а также ссылка «Обзор темы». Блок обзора темы **внизу страницы** остаётся. Не зависит от включения быстрого ответа. |
| **Включить «Быстрый ответ»** | Показ формы быстрого ответа на странице темы (дополнительно к настройкам форума). |
| **Включить панель кнопок BBCode** | Панель BBCode в форме быстрого ответа. |
| **Разрешить загрузку файлов** | Вложения в быстром ответе; настраивается plupload, шаблон вложений. |
| **Отображать смайлики** | Блок смайлов рядом с полем ввода (с учётом прав форума). |
| **Отображать кнопку «Читать далее»** | Переход на следующую страницу темы; на последней странице — кнопка «Назад». |
| **Высота поля ввода** | Высота textarea в пикселях (250–1200 px). |

Дополнительно:

- Скрытие быстрого ответа, если он отключён в настройках расширения.
- Стили: оформление блока смайлов, вложений, «лайк»-блока QR, кнопок чтения далее и т.д.
- **Запрет дубликата имён файлов** (глобально по форуму): при включённых вложениях в QR загрузка отклоняется, если файл с таким `real_filename` уже есть среди не сиротских вложений.

---

## 2. Дополнительные функции BBCode

### Цитаты

| Опция | Описание |
|--------|----------|
| **Изменить стиль BBCode quote** | Кастомное оформление цитат; цвет ссылки на автора по `user_colour` из БД. |
| **Компактное отображение цитат** | Ограничение высоты блока цитаты с кнопкой раскрытия. |
| **Быстрое цитирование выделенного текста** | Кнопка цитирования при выделении текста в сообщениях. |
| **…в личных сообщениях** | То же для ЛС (при включённом основном тумблере). |

### BBCode URL

| Опция | Описание |
|--------|----------|
| **Всплывающее диалоговое окно** | По нажатию кнопки URL открывается модальное окно: ввод адреса и подписи к ссылке (`mendalurl.js` / стили). |

### Настройки ссылок

| Опция | Описание |
|--------|----------|
| **Запрет вставки внешних ссылок** | Удаление «голых» `http/https` вне тегов `[url]…[/url]` при вводе в редакторе (JS). |
| **Включить стиль** | Оформление ссылок классами `bt_link` / `bt_line` и CSS `links.css`. |
| **Отображение заголовков темы вместо URL** | Для **локальных** ссылок на темы (`viewtopic`, `t=`, `p=`, SEO-URL) текст ссылки заменяется на **название темы** из БД (постобработка после s9e). |
| **Назначение внешней ссылки** | Значение атрибута `target` (например `_blank`, `_self`) **только для внешних http/https** ссылок; для ссылок на форум, `mailto`, `tel` и т.п. не задаётся; для `_blank` добавляется `noopener`/`noreferrer` с сохранением `nofollow`/`ugc` от phpBB. |

### Настройки обращения по никнейму

Три тумблера в ACP. При выключении главного тумблера два остальных в ACP автоматически переключаются в «Выкл» и блокируются (как для «Быстрый ответ»). На странице темы: подсказка (`title`) при наведении на ник, по клику — всплывающее меню (`appeal_nickname.js` / `appeal_nickname.css`).

| Опция | Описание |
|--------|----------|
| **Включить обращение по никнейму** | Подсказка «Обратиться по никнейму»; по клику — меню с пунктом «Обратиться по никнейму» (вставка обращения в поле ответа через `insert_text`). |
| **«Перейти в профиль»** | Пункт меню — переход по ссылке профиля автора. |
| **«Ответить в ЛС»** | Переход в ЛС с **цитатой текста поста**: `ucp.php?i=pm&mode=compose&action=quotepost&p=…` (как в профиле). Если ID поста не найден — `action=post&u=…`. |
| **Подпись «Тема» в ЛС** | Ядро phpBB подставляет `SUBJECT` + двоеточие + **название темы** в текст ссылки на пост и в подпись поля темы письма. Расширение подменяет `SUBJECT` на «Тема» / `Topic` (см. `qrabbct_pm.php`). Это **штатное** поведение: в ссылке видно префикс и заголовок темы, сам URL ведёт на конкретное сообщение (`?p=…#p…`). |

**Если не срабатывает:** в ACP должен быть включён главный тумблер «Включить обращение по никнейму»; после правок — **очистка кэша** (шаблоны, темы, JS). Обычный клик по нику открывает меню; **Ctrl+клик** оставляет переход в профиль по ссылке (без меню). Стили на базе prosilver должны наследовать шаблоны расширения или дублировать события `overall_footer_body_after` / `overall_header_stylesheets_after`.

---

## 3. Добавить BBCode — сборник BBCode

Каждый пункт можно включать отдельно:

| BBCode | Назначение (кратко) |
|--------|---------------------|
| `[quote]` | Цитирование (совместно с настройками цитат выше). |
| `[spoiler]` | Скрытый текст. |
| `[offtopic]` | Блок «не по теме». |
| `[highlight]` | Подсветка маркером (цвет опционально). |
| `[align]` | Выравнивание текста. |
| `[s]` | Зачёркнутый текст. |
| `[font]` | Шрифт из списка. |
| `[br]` | Перенос строки. |
| `[imgL]` / `[imgR]` / `[imgC]` | Изображение слева, справа, по центру. |

### VideoPLAY

При включении доступны теги для вставки ссылок на видео/ролики:

- **Rutube, VK, Одноклассники** — кнопка с возможностью просмотра во **встроенном модальном окне** на форуме (iframe).  
- **Дзен, Яндекс.Диск** — переход на сторонний сервис (без встроенного плеера на форуме в текущей логике).

Рендер в HTML выполняется при показе сообщения и в предпросмотре.

### «Вид сообщения»

- Выпадающий список для вставки заготовок: **сообщение / предупреждение** (админ, модератор), **важное / объявление / обновление** (для выбранных групп), **Инструкция** — BBCode `[instr]…[/instr]` (цвет оформления **#096c63**; отдельный тумблер и права групп в ACP).
- Видимость пунктов настраивается **по группам** (чекбоксы групп в ACP; при отсутствии выбора для «админ/модератор» используется fallback по **имени группы** в БД; для «Инструкция» без выбранных групп пункт виден **всем**).
- Кнопка `[quote]` в полном редакторе может скрываться, если цитирование отключено в этом разделе.

---

## Технические заметки

- **События ядра:** `core.user_setup`, `core.page_header`, `core.viewtopic_modify_quick_reply_template_vars`, `core.viewtopic_modify_page_title`, `core.posting_modify_template_vars`, `core.modify_text_for_display_after`, `core.modify_format_display_text_after`, `core.text_formatter_s9e_render_after`, `core.modify_uploaded_file`.
- **Настройки ACP** сохраняются при обновлении расширения; принудительного сброса в `ext.php` нет.
- Языковые файлы: `language/ru/` (при необходимости добавьте `en` по образцу).

---

## Авторы и происхождение

В `composer.json` указан автор **vse** (phpbb.com). Доработки и сценарии ABBCT/QR оформлены в рамках этого расширения.

---

*Документ отражает функциональность на момент версии из `composer.json`. При добавлении возможностей обновляйте README.*
Админ раздел
ИзображениеИзображениеИзображение
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Мудрость заключается не в том, что бы не делать ошибки, а уметь их исправлять вовремя!
Изображение
Ответить

Вернуться в «PHPBB3.3.15»