Расширение для phpBB3, которое автоматически отображает блок с похожими темами после первого сообщения на каждой странице темы.
Данное расширение анализирует заголовок текущей темы и находит похожие темы в том же форуме, используя алгоритм поиска по ключевым словам. Блок с похожими темами отображается после первого поста на каждой странице темы, что помогает пользователям находить связанный контент.
- **Автоматический поиск** похожих тем по заголовку
- **Умный алгоритм** анализа ключевых слов
- **Настраиваемые параметры** через панель администратора
- **Многоязычность** (русский и английский)
- **Адаптивный дизайн** для всех устройств
- **Оптимизированная производительность**
Расширение предоставляет следующие настройки в панели администратора:
Основные параметры:
- **Включить/выключить** отображение похожих тем
- **Количество тем** для отображения (1-20, по умолчанию: 7)
- **Минимальная длина слова** для поиска (2-10, по умолчанию: 3)
- **Максимальное количество слов** из заголовка (1-10, по умолчанию: 5)
Доступ к настройкам:
`Панель администратора → Расширения → Similar Topics → Настройки`
1. **Скачайте** расширение и распакуйте в папку `ext/roma30/similar_topics/`
2. **Зайдите** в Панель администратора → Настройки → Расширения
3. **Найдите** "Similar Topics" в списке расширений
4. **Нажмите** "Включить"
- **phpBB:** версия 3.3.0 или выше
- **PHP:** версия 7.1 или выше
- **MySQL/MariaDB:** любая поддерживаемая phpBB версия
Алгоритм поиска:
1. **Анализ заголовка** - извлечение ключевых слов из названия темы
2. **Фильтрация слов** - удаление коротких слов и спецсимволов
3. **Поиск в базе** - SQL-запрос с условиями LIKE для каждого слова
4. **Сортировка результатов** - по времени создания и количеству ответов
5. **Ограничение выдачи** - настраиваемое количество результатов
Условия отображения:
-
-
-
-
Блок похожих тем включает:
- **Заголовок** с иконкой
- **Список тем** с ссылками
- **Количество ответов** для каждой темы
- **Стильное оформление** в рамках дизайна форума
Структура файлов:
```
ext/roma30/similar_topics/
├── ext.php # Основной класс расширения
├── composer.json # Метаданные пакета
├── config/services.yml # Конфигурация сервисов
├── event/listener.php # Обработчик событий
├── acp/ # Панель администратора
├── language/ # Языковые файлы
├── migrations/ # Миграции базы данных
└── styles/ # Шаблоны и стили
```
События phpBB:
- `core.viewtopic_modify_post_row` - обработка постов
- `core.viewtopic_assign_template_vars_before` - загрузка языков
База данных:
Расширение использует стандартные таблицы phpBB:
- `phpbb_topics` - для поиска похожих тем
- `phpbb_config` - для хранения настроек
Оптимизация SQL:
- Использование индексов по `forum_id` и `topic_time`
- Ограничение результатов через `LIMIT`
- Исключение текущей темы и неактивных тем
Кэширование:
- Результаты поиска не кэшируются для актуальности
- Языковые файлы загружаются один раз на страницу
Поддерживаемые языки:
- **Русский** (`language/ru/`)
- **Английский** (`language/en/`)
Для добавления нового языка создайте соответствующие файлы в папке `language/[код_языка]/`.
Изменение внешнего вида:
Отредактируйте файл:
`styles/prosilver/template/event/viewtopic_body_postrow_post_after.html`
Изменение логики поиска:
Модифицируйте методы в файле:
`event/listener.php`
При возникновении проблем:
1. Проверьте совместимость версий
2. Убедитесь в правильности установки
3. Проверьте настройки в панели администратора
4. Просмотрите логи ошибок phpBB
Данное расширение распространяется под лицензией **GPL-2.0**.
**Roma30** - разработчик расширения
*Расширение протестировано на phpBB 3.3.x и совместимо с темой оформления Prosilver.*