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

Я писал об этом в теме Многофункциональный плагин баннеров, но понял, что это может быть лучше в виде отдельного поста, поэтому вот он:

Спасибо за отличный инструмент.

Я почти создал то, что мне нужно. Не знаю, есть ли у кого-то идеи или можно ли это реализовать в многофункциональном баннере.

Вот баннер, который я создал:

Однако я хочу, чтобы он отображался только для людей из моей группы Discourse «trial». Платящим участникам вообще не нужно видеть этот баннер, поэтому я написал:

Если вы уже являетесь участником, вы можете закрыть это сообщение

Однако это всё ещё несовершенное решение.

Другая проблема заключается в том, что ссылка кнопки «Узнать больше» является приватной для участников группы «Trial Mode», так как платящие участники не имеют доступа к группе, куда ведёт эта ссылка.

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

Знает ли кто-нибудь о каких-либо обходных путях, которые я могу использовать, чтобы баннер отображался только участникам группы trial?

Мне бы очень хотелось найти решение с помощью многофункциональных баннеров, так как они выглядят отлично, но я открыт и для других идей!

Спасибо!

Мой CSS становится лучше, хотя всё ещё примитивен :slightly_smiling_face:, но я думаю, вы могли бы сделать что-то вроде этого, при условии, что группа «Trial» установлена как их основная:

.banner-box {
	display: none;
}

.primary-group-trial {
   .banner-box {
       display: initial;
   }
}

Таким образом, первая часть скрывает элемент от всех, а вторая показывает его членам с группой «trial» в качестве основной.

Спасибо большое! Я попробую поэкспериментировать с этим.

К сожалению, у меня уже настроена другая основная группа для некоторых пользователей. Как вы думаете, основная группа — это единственный вариант? Нельзя ли просто сделать так, чтобы, если пользователь состоит в «группе пробного периода», всё работало?

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

Огромное спасибо!

@JammyDodger Я совершенно забыл о том, что баннер должны видеть и пользователи без аккаунтов.

В таком случае, как ты думаешь, есть ли способ сделать так, чтобы вместо отображения только для «trial-group»

мы изменили CSS так, чтобы он скрывался только для «paid-members group»?

Это было бы потрясающе!

Похоже, что там тоже можно использовать класс anon. :+1: Так что вы можете добавить что-то вроде этого в конец:

.anon {
   .banner-box {
       display: initial;
   }
}

Кажется, я видел способ вставки класса, хотя я не очень в этом разбираюсь. :slightly_smiling_face: Я поищу тему, о которой думаю, и проверю, правильно ли я её понял.

Это было бы невероятно, ваш CSS-трюк сработал просто отлично! Единственное, чего не хватает — сделать это без использования primary-group, но при условии, что пользователь просто состоит в этой группе.

Этот компонент должен позволять добавлять классы тегов body для групп, не являющихся основными:

Я думаю, вы сделаете что-то вроде:

body.group-trial {
   .banner-box {
       display: initial;
   }
}

Это будет работать только в том случае, если пользователи группы trial имеют как минимум право видеть, что эта группа существует.

Огромное спасибо, я попробую это, возможно, это именно то решение, которое мне нужно! Спасибо @tshenry и @JammyDodger за невероятную помощь!