Панель уведомлений

:information_source: Краткое описание Отображение панели объявлений
:eyeglasses: Предпросмотр https://discourse.theme-creator.io
:hammer_and_wrench: Репозиторий https://github.com/nolosb/discourse-announcement-bar
:question: Руководство по установке Как установить тему или компонент темы
:open_book: Новичок в темах Discourse? Начинающее руководство по использованию тем Discourse

Установить этот компонент темы

Настройки

Есть несколько вариантов для настройки содержимого, куки и размещения макета:

Стили

Для стилизации CSS структура компонента следующая:

.announcement-bar {
  &__wrapper { }

  &__container { }

  &__content { }

  &__close { }
}
24 лайка

Отличная работа, как всегда, @manuel :clap: :slight_smile:

8 лайков

Отличная идея для компонента!

Не могли бы вы добавить настройки, которые ограничивали бы группы пользователей, для которых будет видна эта публикация?

6 лайков

Спасибо за предложение, @kinetiksoft! Я предпочитаю, чтобы общие компоненты не включали функции групп :smile:. Причина в том, что на практике реальные сценарии использования часто более специфичны, чем просто выбор группы. Возможно, вам также потребуется различать анонимных посетителей или отображать разный контент для разных групп. И тогда сложность уже возрастает.

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

Что касается таргетинга групп с помощью CSS, то компонент Discourse groups css classes in body является отличным помощником.

2 лайка

2 поста были перенесены в новую тему: Кнопка установки темы не работает в Ember 5

Привет
После установки и включения я получаю следующую ошибку:

Думаю, эта ошибка в консоли имеет отношение к делу:

Что-то упустил? Спасибо

2 лайка

Похоже, вы используете версию Discourse, которая не поддерживает файлы формата .gjs.

Кажется, это было введено в версии v3.2.0.beta3 (июль 2023 года — конкретно в этом коммите).

К сожалению, если кто-то не создаст версию без использования файлов .gjs, вам нужно либо обновить Discourse, либо удалить этот компонент.

4 лайка

Мы находимся на версии 3.1, так что это имеет смысл.

Надеемся, что Events скоро обновится и поддержит версию 3.2, и мы перейдём на него.

Спасибо.

4 лайка

Извините за путаницу, @martyn_thomas, и спасибо за объяснение причины, @Arkshine! Я обновил файл about, указав "minimum_discourse_version": "3.2.0.beta3".

6 лайков

Привет,

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

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

Я не совсем понимаю, к чему вы ссылаетесь. Не могли бы вы еще раз описать, что именно вы делали в административной панели, и какой результат увидели пользователи? И для каких именно пользователей?

Я имею в виду этот компонент темы.

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

Я отключил и снова включил его, чтобы проверить, не в этом ли проблема, но, по моему мнению, когда кто-то закрывает компоненты темы, они исчезают для всех остальных. Сначала я заметил это в представлении для настольных компьютеров, а затем в мобильном представлении.

1 лайк

Так быть не должно. Отклонение глобального баннера или закрепленной темы должно отклонять его только для этого авторизованного пользователя, а не для всех пользователей.

1 лайк

Отключение компонента удаляет его для всех.

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

Хм… Я это уже делал. Также я impersonировал пользователя, который давно не входил в систему, и не смог увидеть панель с объявлениями.

@Aaron_Walsh то, что я могу воспроизвести:

  • закрыть панель объявлений, будь то как пользователь или анонимный посетитель
  • выйти из системы или переключиться на другую учетную запись в том же браузере
  • панель не отображается в том же браузере

Поэтому я предполагаю, что это проблема кэширования. Похоже, что реализация куки не зависит от учетной записи пользователя, а от истории браузера. Я скопировал код работы с куки из другого компонента и не очень хорошо разбираюсь в деталях их работы. Готов изменить код, если это действительно возможно и у кого-то есть нужный код. В противном случае меня это не сильно беспокоит. То, что я вижу: проблема затрагивает только тот же браузер, и панель не закрывается для других пользователей в их соответствующих сеансах.

3 лайка

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

Зашёл в анонимном браузере под другим пользователем.

Не авторизован — полоса отображается. Авторизован как тестовый пользователь — полоса отображается. Закрыл полосу, вышел и зашёл снова — полосы нет. Закрыл окно Chrome в режиме инкогнито и открыл новое — полоса объявлений вернулась.

Так что это точно проблема, связанная с куки-файлами или кешем браузера.

1 лайк

Функция «Имперсонация» не очищает куки-файлы вашего браузера.

Да, я это знаю. Я имею в виду, что я, между прочим, очистил куки в Chrome, чтобы убедиться.

Функция «Имитация» была лишь тестом, чтобы проверить, отображается ли это в их аккаунте.

1 лайк