Intellect Board Pro
Расширяемый движок форума с разделами разных типов
Объявление
Выпущена новая сборка версии 3.05, получившая обозначение Rebuild. Основные доработки касаются юзабилити и поддержки PWA.
Перейти к скачиванию
Привет, гость!

4X_Pro
4X_Pro
Основатель проекта

Выпущена промежуточная сборка — 3.05 rebuild

с большим количеством доработок юзабилити

Из-за большого объёма доработок по новой версии я принял решение выложить промежуточную сборку, получившую обозначение Intellect Board 3.05 Rebuild.

Наиболее существенные изменения

  • Настроена фильтрация тегов HTML по белому списку, поэтому теперь можно разрешить его применение и рядовым пользователям. Сам список тегов задаётся в файле etc/tags.txt.
  • Добавлена поддержка PWA (Progressive Web Application): теперь просмотренные страницы доступны в оффлайн режиме. Также ускорилось открытие страниц за счёт улучшенного кеширования файлов шрифтов, скриптов и стилей.
  • Возможность ограничить время редактирования сообщений, а также удалить своё сообщение в течение этого времени, если в теме не появилось новых ответов.
  • Решена проблема с поддержкой emoji, коды которых больше 0xFFFFFF.
  • Полностью переработано автосохранение форм с сообщением: теперь сохраняется не только основной текст, но и все поля формы. Сохранение делается не только по таймеру, но и при закрытии страницы.

Улучшения юзабилити

  • Сделано автодополнение имён пользователей при отправке личных сообщений и поиске в списке участников.
  • Добавлена автоматическая генерация teaserов для сообщений в блоге с возможностью задавать минимальную и максимальную длину. При этом разбиение делается с учётом границ абзацев (максимальный приоритет), предложений или их частей, вырезаются изображения, цитаты и таблицы, а также закрываются все открытые теги.
  • Улучшено юзабилити модераторских действиях: при разделении сообщений с переносом в существующую тему можно ввести не только её номер, но и часть названия или URL для облегчения поиска. А список разделов при переносе тем выводится с группированиям по категориям и сохранением порядка сортировки.
  • «Умный тег» [video] — теперь в него можно помещать не только прямую ссылку на видеофайл, но и ссылки на страницы с видео на наиболее популярных в Рунете видеохостингах: YouTube, Rutube, VKVideo, TikTok, Одноклассники и страницу с видео в Яндекс.Облаке.
  • Ссылка «Развернуть» теперь не выводится для коротких цитат и кусков кода, которые сразу показаны полностью.
  • Если не задан текст ссылки (т.е. она имеет вид [url]https://intbpro.ru[/url]), то её URL выводится без префикса http:// или https:// и с заглавной буквы: Intbpro.ru для улучшения визуального восприятия. Также автоматически распознаются ссылки на несколько наиболее известных ресурсов (например, YouTube и Telegram) и заменяются на их названия: [url]https://t.me/x4_pro[/url] будет заменена на Telegram: x4_pro, если включена опция «Преобразовывать адреса в ссылки».
  • Доработан внешний вид форм и информационных сообщений, форма регистрации пользователя сделана более дружественной к инструментам автодополнения.

Исправление мелких ошибок

  • Не работавшая отправка сообщений по Ctrl+Enter, если используется WYSIWYG-режим редактора.
  • Ошибки при модерации разделов с "-" в URL.
  • Ошибки при отображении категории.

Доработки безопасности

Сделано несколько доработок в плане безопасности: коды и токены для OAuth, а также случайное поле профиля пользователя теперь генерируются с помощью криптографически надёжной функции random_bytes. Для хеширования cookies долгосрочной авторизации и создания авторизационных ссылок-ключей (ссылок с параметром authkey) применяется алгоритм SHA-256 вместо MD5. Также изменены настройки сессионных cookies: они устанавливаются с флагом SameSite=strict.
Примечание: смена алгоритма хеширования приведёт к тому, что часть пользователей будет разово разлогинена, также перестанут действовать авторизационные ссылки (например, для отписки от тем), которые были сгенерированы до обновления форума.

Также проведён рефакторинг кода: функция load_lib объявлена устаревшей, а подключение библиотек теперь делается просто через создание экземпляра класса new Library_имя с использованием механизма автоматической загрузки классов PHP.

Изменений в структуре базы данных по сравнению с версией 3.05 не делалось, поэтому запускать install.php и выполнять обновление не требуется. Однако необходимо скопировать файл etc/tags.def в etc/tags.txt и файл etc/routes.def в etc/routes.txt, после чего отредактировать любой раздел, чтобы обновились настройки путей сервера.

1 комментарий:

4X_Pro
0

Кроме этого, часть кода, написанного во время разработки этой версии IntB, которая отвечает за сохранение данных, вводимых в форму при написании сообщения, была выделена в отдельный проект, получивший название FormStorage. В дальнейшем, скорее всего, в отдельные проекты будут выделены части кода, отвечающие за очистку HTML по белому списку и за умную генерацию teaserов в блоге.

У вас нет прав для отправки комментариев.