Переключатель пользовательского поля для боковой панели (режим SFW)

Что именно нужно сделать?

Мне нужно добавить новую кнопку в боковую панель (или в другое подходящее место — можно обсудить), которая будет переключать значение пользовательского поля. Мы настроили режим «SFW» (безопасный контент), по сути используя обратный подход. Однако, поскольку установка этого значения опциональна для пользователя, а сайт по умолчанию содержит NSFW-контент, пользователю потребуется время, чтобы зайти в настройки профиля и найти маленькую и неочевидную галочку.

Поэтому идея состоит в том, чтобы добавить кнопку с двумя состояниями (Вкл/Выкл), которая будет изменять значение пользовательского поля. По умолчанию состояние — NSFW (поле пользователя не отмечено, или 0). Второе состояние — SFW (поле пользователя отмечено).

Когда это нужно?

Мне кажется, для опытного разработчика тем или компонентов это быстрая задача :slight_smile: Не торопитесь.

Каков ваш бюджет в долларах США за эту задачу?

Назовите свою цену. Звучит как несложная работа.

1 лайк

Может, эта работа мне интересна?

4 лайка

Не уверен, что это вопрос к кому-то :slight_smile: Давайте работать :slight_smile:

3 лайка

Можно ли комбинировать этот компонент темы с приветственным баннером со ссылкой?

1 лайк

Какой потрясающий компонент темы User Field Prompt! Неважно, как часто я посещаю Discourse Meta, всегда удивительно находить что-то новое о Discourse.

Описанная задача отличается от концепции полей постов. Также она не предназначена для взаимодействия с другими компонентами темы, такими как Welcome Link Banner, о котором вы упомянули.

Максимальная кастомизация, которую я вижу сейчас, — это введение базовых вариантов настройки, таких как:

  • Текстовые поля Discourse для администратора, чтобы можно было создавать/обновлять/удалять кнопки на примере множества компонентов темы, таких как Custom Header Links (icons)

  • Администратор мог бы задать кнопке:

    • Имя (ID для целей CSS)
    • Имена SVG-иконок для обоих состояний (требуется их наличие в спрайтах font-awesome или пользовательские SVG с сайта)
    • ID пользовательского поля
1 лайк

Ладно, пока не пробовал, но там есть также публикация страниц.

Думаю, код может помочь получить некоторые идеи. Есть несколько компонентов, использующих поля пользователя. Более недавнее дополнение — своего рода список отслеживаемых слов для участника, который будет скрывать сообщения с указанным словом.

Также есть некоторые компоненты темы, использующие переключатель, если не ошибаюсь, в гамбургер-меню или в заголовке.

Ссылки в пользовательском заголовке, возможно, тоже будут работать.

Не уверен, но с помощью флажка, возможно, можно скопировать ссылку для этого флажка предпочтений пользователя.

Извините, я потерял вас на первых нескольких предложениях, так как не думаю, что они связаны с темой выше.

P.S. У вас истёк срок действия SSL-сертификата для сайта в вашей биографии :unlocked:

1 лайк

Спасибо, нужно обновить адрес сайта. Клиент перешел с .ai на .com. :facepalm:

Идея, которую я имел в виду выше. Вы можете посмотреть исходный код подсказки поля «Пользователь», чтобы понять, какой код нужен для переключения настройки NSFW пользователя. Затем посмотрите, например, на компонент темы с переключателем Светлая/Темная тема и объедините идеи для создания переключателя, который будет управлять вашей настройкой NSFW пользователя.

Хорошо, теперь я понял. Похоже, вы изобретаете велосипед в отношении решения, о котором я упоминал в первом посте: Our solution for blurring NSFW content

Оно делает именно то, о чём вы говорите: проверяет значение поля пользователя и через JS добавляет CSS-класс. Пожалуйста, используйте в качестве основы код из этого сообщения, так как код из первого поста там опирается на устаревшие методы Discourse.

Кроме того, вы можете посмотреть это: CSS Classes for Current User's Groups, чтобы настроить внешний вид и функциональность вашего сайта в зависимости от групп пользователей :slight_smile:

1 лайк

Что касается самого переключателя и вашего упоминания переключателя тёмного/светлого режима, думаю, будущим разработчикам этого компонента будет интересно изучить его. Я хочу поделиться им с общественностью, как только он будет завершён. @Lhc_fl сейчас работает над чем-то, и мы, надеюсь, сможем сначала протестировать это в продакшене сами :slight_smile:

2 лайка

Это действительно круто. Я всё ещё новичок в изучении программирования. Мне ещё многое предстоит узнать.

Судя по тому, что я видел, Lhc_fl очень талантлив.

1 лайк

Готово: Sidebar User Field Toggle

Yep Reaction GIF by C H A R L Ö T T E

Спасибо, @Lhc_fl :heart:

3 лайка

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.