Dumbcourse – дружелюбный к старым браузерам интерфейс по адресу /dumb (D-pad + маленькие экраны)

:information_source: Резюме Dumbcourse добавляет легковесный интерфейс Discourse, совместимый со старыми браузерами, под адресом /dumb. Он разработан для навигации с помощью D-pad, малых экранов и старых Android WebView, где стандартный интерфейс Discourse может быть слишком тяжелым.
:hammer_and_wrench: Ссылка на репозиторий https://github.com/TripleU613/dumbcourse
:open_book: Руководство по установке Как установить плагины в Discourse


Этот проект стал возможен благодаря работе @ars18:

Оригинальный проект использует прокси Cloudflare Worker для обслуживания форумов, а плагин dumbcourse полностью интегрирует его в ваш экземпляр Discourse. Dumbcourse не использует прокси, а обслуживает контент напрямую.


Возможности

  • Обслуживает минималистичное SPA по адресу /dumb в том же домене Discourse.
  • ES5 / без этапа сборки; намеренно минимальный DOM/JS/CSS для старых браузеров и WebView.
  • Использует конечные точки JSON того же происхождения и стандартные куки сессии Discourse.
  • Списки тем: latest, new, top, unseen, hot, my, а также категории.
  • Просмотр категорий: /dumb/c/:slug/:id.
  • Чтение тем и публикация ответов (ответ/цитирование/реакции).
  • Поиск и базовые профили пользователей.
  • Навигация, удобная для D-pad, с фокусируемыми элементами интерфейса.

Конфигурация

  1. Установите плагин

    • Добавьте репозиторий в containers/app.yml в секции hooks -> after_code, затем пересоберите контейнер.
  2. Включите его

    • Перейдите в Администрирование → Плагины → Dumbcourse.
    • Включите dumbcourse_enabled.
  3. Выберите настройки по умолчанию

    • Установите тему по умолчанию и начальный вид (см. раздел «Настройки» ниже).
  4. Проверьте

    • Перейдите по адресу: https://ВАШ_ДОМЕН_ФОРУМА/dumb.
    • Анонимные пользователи должны попасть на /dumb/login.
    • Авторизованные пользователи должны увидеть настроенный вид по умолчанию.

Скриншоты

Старый браузер / стандартный интерфейс Discourse

Интерфейс Dumbcourse

В теме

Действия с сообщением / выбор

Базовое меню

Настройки плагина


Статус / Известные ограничения

Этот проект в настоящее время находится в стадии бета-тестирования (первоначальная реализация была выполнена быстро), поэтому ожидайте наличие недоработок. Вклад и ревью кода приветствуются.

Текущие известные пробелы / открытые вопросы:

  • Регистрация + CAPTCHA: создание учетной записи зависит от стандартного процесса регистрации Discourse, но поведение CAPTCHA может варьироваться в зависимости от конфигурации сайта.
  • Проверка безопасности: упрощенный интерфейс не должен обходить права доступа Discourse, однако он еще не прошел тщательной проверки на безопасность. Пожалуйста, сообщайте о любых проблемах или подозрительном поведении.
  • UX модерации/администрирования: инструменты модерации и администрирования сегодня минимальны; безопасное расширение их функциональности включено в план работ.
  • Взаимодействие с сенсорным экраном и D-pad: сенсорный ввод может конфликтовать с навигацией через фокус на некоторых устройствах; запланированы улучшения.
  • Общий доступ к ссылкам: /dumb предоставляет альтернативный интерфейс, что поднимает вопросы об обмене каноническими ссылками между пользователями «dumb» и стандартными пользователями. Последовательный подход все еще дорабатывается.

Благодарности

Особая благодарность @ars18 (GitHub: https://github.com/alltechdev) за ключевой вклад и помощь в запуске первоначальной идеи.


Настройки

Название Описание
dumbcourse_enabled Главный переключатель включения/выключения для Dumbcourse.
dumbcourse_default_theme Тема по умолчанию для /dumb (dark / light).
dumbcourse_default_view Начальный вид по умолчанию (latest / new / top / unseen / hot / my / categories).
dumbcourse_sidebar_link_enabled Добавляет ссылку в боковую панель на /dumb.

17 лайков

Звучит как отличная идея!

Однако мне не нравится, что имя отображается в URL — можно ли сделать его настраиваемым, чтобы, например, было /simple/ вместо /dumb/?

(Честно говоря, само название меня не совсем устраивает, но если его можно настроить, это уже помогает. Это оскорбительное слово, и оно довольно идиоматично.)

3 лайка

Вау, это выглядит действительно хорошо! Похоже, найдено решение проблем некоторых пользователей, вызванных отсутствием поддержки старых браузеров: Dropping iOS 15 & other old browsers in July 2025.

В мире кнопочных телефонов это принято, но да, добавлю настройку для этого.

2 лайка

Недавно я добавил настройки администратора/модератора. Очередь на проверку всё ещё требует доработки.

Скриншоты

4 лайка

Забыл упомянуть, вот сопутствующий Android APK.

Поддерживает Android 6+ и Chrome WebView 44+.

Пример (наш APK для форумов)

3 лайка

Вот и всё.

4 лайка

Быстрая работа… Большое спасибо!

@TripleU Здесь, на Meta, поступило несколько запросов с просьбой добавить возможность отключить бесконечную прокрутку в пользу пагинации. Решает ли этот плагин эту задачу?

1 лайк

У Dumbcourse пока нет такой опции (если люди действительно этого хотят…).

4 лайка

Отправлено!

2 лайка

Могу я предложить изменить путь (возможно, даже название плагина) на что-то менее оскорбительное. Например, простой, базовый.

Потому что это не глупая функция, а на самом деле довольно умное решение иметь интерфейс с низкой детализацией

1 лайк

Вы немного опоздали :grin:

4 лайка

Это здорово весело, и мне нравится название, потому что вокруг него есть история инженерии, и я совсем не считаю это оскорбительным — но добавление возможности настройки маршрута — это отличное дополнение.

В любом случае, говоря о глупостях, я вас перещеголяю:

4 лайка

О, это поднимает вопрос: как обрабатываются изображения и встроенные медиа? Они превращаются в ссылки, скрываются или отображаются…?

3 лайка

Изображения, видео, аудио и iframe-фреймы отображаются непосредственно в теле поста, при этом их URL переписываются на правильный базовый путь к ресурсам.

2 лайка

В тестировании

1 лайк

Превосходно! Похоже, это хороший способ сделать наши форумы доступными для старых браузеров (старых компьютеров, старых телефонов, старых планшетов), как отмечалось в посте Нейта выше.

Есть ли способ, чтобы пользователь мог установить предпочтение, чтобы автоматически подключаться к этому режиму представления? (Желательно под выбранным названием, не обязательно «глупый».)

Это хорошо, но если подумать, это не так важно. Если вы планируете внедрить это в доме престарелых, центре обучения взрослых или в любом другом контексте, где люди находятся в невыгодном положении, не обладают технической грамотностью, просто не молоды или не являются носителями английского языка, то маркировка «глупый» будет крайне негативным сигналом. Важно не то, оскорбляетесь вы или нет, и не забота администратора сайта, а то, как это воспримет конечный пользователь.

1 лайк

Я в замешательстве. Они могут просто перейти по выбранному URL-адресу пути. Вы имеете в виду что-то другое?

Эд, пожалуйста, не считай меня глупцом, конечно, я это понимаю. Я остановлюсь, потому что это раздражающая баня червей…

4 лайка