Плагин Время прочтения статьи для Webasyst Блог
Плагин автоматически рассчитывает время чтения для каждой статьи блога на основе количества слов, изображений, таблиц, кода и других элементов контента. Результат сохраняется в базе данных и может быть отображён в любом месте шаблона темы.
Содержание
Возможности
- 🔢 Умный подсчёт слов — учитывает количество слов в тексте статьи
- 🖼️ Изображения и видео — добавляет время для просмотра медиа-контента
- 📊 Сложные элементы — учитывает таблицы, блоки кода и списки
- ⚙️ Гибкая настройка — скорость чтения, множители для разных типов контента
- 🎨 UI 2.0 — современный интерфейс с переключателями и слайдерами
- 🔄 Пересчёт — кнопка для пересчёта всех постов одним кликом
- 📱 Адаптивность — корректно работает с короткими и длинными статьями
- 🌐 Локализация — поддержка склонения слов на разных языках
⚙️ Настройки
| Параметр | Описание | По умолчанию |
|---|---|---|
| Включить/выключить | Главный переключатель плагина (UI 2.0: switch) | Включено |
| Скорость чтения | Количество слов в минуту (150-400, с пресетами) | 250 слов/мин |
| Время к изображению | Секунды на просмотр одного изображения | 10 секунд |
| Текст заголовка | Текст перед временем чтения | Reading time: |
| Место отображения | Автоматически через JS или вручную в шаблоне | Самостоятельно в шаблоне |
| CSS селекторы | Селекторы для автоматической вставки | article>.credentials, [class*=»post-author»], [class*=»post-meta»] |
| Множитель таблиц | Коэффициент сложности чтения таблиц | 2.0 |
| Множитель кода | Коэффициент сложности чтения кода | 1.5 |
| Множитель списков | Коэффициент сложности списков (меньше = быстрее) | 0.8 |
| Время видео | Секунды на одно видео | 60 секунд |
| Порог короткого контента | Мин. время в секундах для показа | 30 секунд |
| Максимум постов в списке | Лимит обработки постов в списке (0 = безлимит) | 100 |
💻 Использование в шаблоне
Для отдельной страницы поста:
{$postduration = $wa->blog->postduration} {if $postduration} <span class="post-duration">Время чтения: {$postduration}</span> {/if}Для страницы списка постов:
{$postduration_list = wa("blog")->plugin("postduration")->articleList()} {$postduration_list}Альтернативный метод (простой):
{if $post.postduration} <span class="reading-time">Время чтения: {$post.postduration}</span> {/if}🎯 Функционал UI 2.0
- Переключатель включения/выключения — современный switch вместо чекбокса с текстом «Включено/Выключено»
- Слайдер скорости чтения — диапазон 150-400 слов/мин с визуальным отображением значения
- Кнопки-пресеты — 🐢 Медленная (180), 📖 Средняя (250), ⚡ Быстрая (350)
- Дублирование кнопки сохранения — кнопка «Сохранить» продублирована сверху страницы
📐 Алгоритм расчёта
Плагин использует следующую формулу для расчёта времени чтения:
Время = (Слова / Скорость) + (Изображения × Время_на_изображение / 60) + (Видео × Время_на_видео / 60) + (Таблицы × Множитель_таблиц × 0.5) + (Код × Множитель_кода × 0.3) + (Списки × Множитель_списков × 0.2)Если итоговое время меньше порога короткого контента (по умолчанию 30 секунд), отображается время в секундах. Иначе — в минутах с правильным склонением.
🔄 Пересчёт существующих постов
Если вы установили плагин на существующий блог с постами:
- Откройте настройки плагина
- Прокрутите вниз до раздела «Recalculate reading time»
- Нажмите кнопку «Пересчитать все посты»
- Дождитесь завершения (появится сообщение с количеством обновлённых постов)
Альтернативный способ: просто откройте и сохраните каждый пост вручную — время будет пересчитано автоматически.
🌍 Локализация
Плагин поддерживает множественное число слов на разных языках через систему локализации Webasyst. Формат вывода:
- 1 минута, 2 минуты, 5 минут (русский)
- 1 minute, 2 minutes, 5 minutes (английский)
- И другие языки системы