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

:information_source: Краткое описание Dumbcourse добавляет лёгкий интерфейс Discourse, совместимый со старыми браузерами, по адресу /dumb. Он разработан для навигации с помощью D-pad, маленьких экранов и старых версий Android WebView, где стандартный интерфейс Discourse может быть слишком тяжёлым.
:hammer_and_wrench: Ссылка на репозиторий GitHub - JTech-Forums/JtechTools: Jtech — combined Discourse plugin bundle: dislike, another-smtp, mini-mod, mod-categories, dumbcourse. One plugin.rb, six admin tabs, no namespace collisions. · GitHub
:open_book: Руководство по установке Как установить плагины в Discourse


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

https://github.com/alltechdev/jtech-web

В исходном проекте используется прокси Cloudflare worker для обслуживания форумов, а плагин Dumbcourse полностью интегрирует его в вашу инстанцию Discourse. Dumbcourse не использует прокси, а предоставляет контент напрямую.


Возможности

  • Предоставляет минимальное SPA по адресу /dumb в том же домене Discourse
  • ES5 / без этапа сборки; намеренно минимальный DOM/JS/CSS для старых браузеров и WebView
  • Использует эндпоинты JSON Discourse того же домена и стандартные cookie сессии 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://YOUR_FORUM_DOMAIN/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 в боковую панель.

18 лайков

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

Однако мне не нравится, что имя отображается в 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 лайк

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

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

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

2 лайка

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

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

4 лайка