У меня есть пользователь, который спрашивает, можно ли ограничить показ баннера только главной страницей, чтобы он не отображался, если страница добавлена в закладки? В настоящее время он показывается в обоих случаях.
Да, это есть в настройках баннера приветственной ссылки:
Вы имеете в виду, если они установили пользовательскую страницу (последние, категории, что угодно) в качестве своей главной страницы в своём профиле?
Тогда эта произвольная страница считается «главной» для пользователя, и, следовательно, приветственный баннер будет отображаться для них на их новой главной странице.
Если главная страница вашего сайта по умолчанию — /categories, и вы хотите, чтобы приветственный баннер отображался только на /categories, независимо от предпочтений интерфейса пользователей, возможно, вы могли бы установить параметр показывать на в значение «discovery» или «all» и использовать JavaScript, чтобы скрыть приветственный баннер на других страницах, кроме той, на которой вы хотите его показать.
Но в данный момент я не знаю, как надёжно определить текущую страницу, на которой мы находимся (включая случаи первой загрузки страницы и смены страницы), чтобы динамически скрывать приветственный баннер.
Я с радостью попробую это позже (
), но, возможно, это может стать началом:
Ах, большое спасибо! Да, некоторые мои лидеры сообщества, у которых по умолчанию установлен последний макет, предпочли бы, чтобы баннер отображался, например, только на странице категорий. Я изучу предоставленную вами ссылку.
Хорошо, вот рабочее решение. В моём примере баннер «Добро пожаловать» будет отображаться только на странице /latest, независимо от настроек интерфейса пользователя. Я оставлю вам возможность настроить его так, чтобы он показывался только на странице /categories. ![]()
-
Установите настройку показывать на для баннера «Добро пожаловать» в значение «все» или «обнаружение», в зависимости от страницы(страниц), на которой(которых) должен отображаться баннер.
-
Добавьте этот скрипт в вашу тему:
<script type="text/discourse-plugin" version="1.4.0"> // показывает баннер «Добро пожаловать» только на странице /latest api.onPageChange(() => { const router = api.container.lookup('service:router'); if (router.currentRoute.name === 'discovery.latest') { document.body.classList.add('route-discovery-latest'); } else { document.body.classList.remove('route-discovery-latest'); } }); </script> -
Добавьте этот CSS в вашу тему:
body:not(.route-discovery-latest) .welcome-link-banner-connector { display: none; }
Использованный источник:
Спасибо за это, огромное спасибо! ![]()
