Как добавить кнопку в заголовок только для авторизованных пользователей? Мне нужно добавить для этой кнопки пользовательский текст и ссылку.
Вы уже искали в категории #theme-component, чтобы узнать, нет ли там чего-то, что подходит для ваших задач?
Отображение только для авторизованных пользователей
Вы можете нацеливаться на анонимных пользователей, чтобы скрывать от них элементы. Например, этот код скрывает теги в боковом меню навигации для пользователей, которые не вошли в систему. Вы можете использовать похожий код, чтобы скрыть любой элемент в заголовке от анонимных пользователей.
.anon .sidebar-section-wrapper.sidebar-section[data-section-name="tags"] {
display: none;
}
Это отличное решение,
Мне действительно нужен был только один верхний кнопочный элемент.
В итоге я просто попросил ChatGPT подсказать, как добавить его вручную с помощью кода, и он предоставил рабочее решение…
Заголовок:
<script type="text/discourse-plugin" version="0.8.22">
api.decorateWidget('header-buttons:after', helper => {
let currentUser = api.getCurrentUser();
if (!currentUser) return;
return helper.h('li.custom-login-button-li', [
helper.h('a.custom-login-button', { href: 'ВСТАВЬТЕ СЮДА ССЫЛКУ', target: '_blank'}, 'Кнопка')
]);
});
</script>
CSS
.custom-login-button {
display: inline-block;
margin: 0;
padding: 0.5em 1em;
text-align: center;
vertical-align: middle;
border: 1px solid transparent;
font-weight: bold;
line-height: 1.5;
border-radius: 3px;
color: #fff !important;
background-color: #0084ff;
border-color: #0076e6;
text-decoration: none;
cursor: pointer;
transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
}
.custom-login-button:hover {
background-color: #0076e6;
border-color: #0065d0;
}
.custom-login-button-li {
list-style-type: none;
}
Отличная работа, @Sami_Syed.
Я использую ссылку на иконку в заголовке TC выше на своём форуме для отображения одной иконки только для мобильных пользователей.