Discourse теперь предлагает официальный компонент темы для поддержки этого случая использования:
Оригинальный контент
Я не уверен, что для большинства сайтов хорошая идея — сделать так, чтобы основной логотип Discourse вел на внешний сайт, но есть исключения, когда имеет смысл перенаправлять пользователей на внешний веб-сайт при клике на основной логотип Discourse. Если вы хотите это сделать, вот как.
Создайте новый компонент темы
Обратите внимание: этот раздел руководства вскоре будет выделен в отдельную тему.
На странице «Администрирование / Настройка / Темы» в боковой панели нажмите ссылку «Компоненты». Затем в нижней части боковой панели нажмите кнопку «Установить»:
В открывшемся модальном окне нажмите ссылку «Создать новый»:
Задайте имя для компонента темы и убедитесь, что выбран тип «Компонент». Затем нажмите кнопку «Создать»:
После этого вы попадете на главную страницу компонента темы.
Добавьте код в компонент темы
Код для переопределения URL-адреса по умолчанию основного логотипа необходимо добавить в секцию HEAD вашего компонента темы. Чтобы открыть редактор компонента, нажмите кнопку «Изменить CSS/HTML»:
В открывшемся редакторе нажмите ссылку «HEAD»:
В зависимости от различных условий добавьте следующие фрагменты кода в секцию HEAD редактора, чтобы изменить URL-адрес, на который указывает логотип главной страницы. Обратите внимание: вам нужно заменить https://example.com в коде на полный URL-адрес домашней страницы вашего внешнего сайта:
- для изменения ссылки на статический URL-адрес:
<script type="text/discourse-plugin" version="1.3.0">
api.registerValueTransformer("home-logo-href", () => "https://example.com")
</script>
- для возврата динамического URL-адреса на основе текущего пользователя:
<script type="text/discourse-plugin" version="1.3.0">
api.registerValueTransformer("home-logo-href", () => {
const currentUser = api.getCurrentUser();
return `https://example.com/${currentUser.username}`;
})
</script>
- для возврата URL-адреса на основе настройки компонента темы:
<script type="text/discourse-plugin" version="1.3.0">
api.registerValueTransformer("home-logo-href", () => {
return settings.example_logo_url_setting;
})
</script>
Нажмите кнопку «Сохранить», чтобы сохранить изменения. После этого вернитесь на главную страницу компонента темы и нажмите ссылку «Добавить во все темы», чтобы добавить новый компонент ко всем темам вашего сайта:








