# Как переопределить файл site-header.hbs из пользовательской темы?

**URL:** https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065
**Category:** Development
**Created:** [24.Июль.2024 09:15:58 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065 "2024-07-24T09:15:58Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![aslangm](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/aslangm/32/433938_2.png) [@aslangm](https://meta.discourse.org/u/aslangm)
#### Post date: [24.Июль.2024 09:15:58 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/1 "2024-07-24T09:15:58Z")

</div>

Я пытаюсь переопределить файл site-header.hbs в своей пользовательской теме. Путь к этому файлу в Discourse: `plugins/styleguide/assets/javascripts/discourse/components/sections/organisms/site-header.hbs`.

Я попробовал добавить в файл head\_tag.html своей темы:

```plaintext
<script type="text/x-handlebars" data-template-name="javascripts/components/sections/organisms/site-header">
  <StyleguideExample @title="site header - in topic - scrolled">
    <div class="d-header-wrap">
        test
    </div>
  </StyleguideExample>
</script>

```

Также я пробовал несколько вариантов:

```plaintext
<script type="text/x-handlebars" data-template-name="components/sections/organisms/site-header">
<div>test</div>
</script>

<script type="text/x-handlebars" data-template-name="javascripts/components/sections/organisms/site-header">
<div>test</div>
</script>

<script type="text/x-handlebars" data-template-name="javascripts/components/site-header">
<div>test</div>
</script>

<script type="text/x-handlebars" data-template-name="javascripts/components/sections/organisms/site-header">
<div>test</div>
</script>

```

Но ничего не помогает. Не могли бы вы мне помочь?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [24.Июль.2024 11:39:05 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/2 "2024-07-24T11:39:05Z")

</div>

> [@aslangm](#):
>
> Я пытаюсь переопределить site-header.hbs в моей пользовательской теме

Вы пытаетесь решить другую задачу, полагая, что переопределение шаблона — это выход. Переопределение шаблонов ненадёжно и может привести к проблемам в будущем. Что именно вы хотите изменить в заголовке, чего нельзя сделать с помощью плагина-контейнера?

---

<div class="post-metadata">

### Author: ![aslangm](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/aslangm/32/433938_2.png) [@aslangm](https://meta.discourse.org/u/aslangm)
#### Post date: [24.Июль.2024 11:55:57 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/3 "2024-07-24T11:55:57Z")

</div>

@pfaffman спасибо за ваш ответ.  
Основная проблема в том, что мне нужно хранить все настройки в теме, а не в плагинах. Есть ли более безопасный способ добиться этого с помощью пользовательской темы?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [24.Июль.2024 12:07:06 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/4 "2024-07-24T12:07:06Z")

</div>

Выводы плагинов обновляются в темах. См. [Using Plugin Outlet Connectors from a Theme or Plugin](https://meta.discourse.org/t/using-plugin-outlet-connectors-from-a-theme-or-plugin/32727)

> [@aslangm](#):
>
> Есть ли другой более безопасный способ добиться этого с помощью пользовательской темы?

Да. Что именно вы пытаетесь сделать?

---

<div class="post-metadata">

### Author: ![aslangm](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/aslangm/32/433938_2.png) [@aslangm](https://meta.discourse.org/u/aslangm)
#### Post date: [24.Июль.2024 12:12:23 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/5 "2024-07-24T12:12:23Z")

</div>

@pfaffman Я хочу убрать отображение логотипа и добавить пользовательскую кнопку. А над заголовком я хочу отображать динамические ссылки, которые будут поступать из пользовательского компонента.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [24.Июль.2024 12:15:53 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/6 "2024-07-24T12:15:53Z")

</div>

Вам не нужно переопределять hbs для выполнения всего этого.

Возможно, стоит посмотреть [Custom Header Links](https://meta.discourse.org/t/custom-header-links/90588)

Вы можете скрыть логотип с помощью CSS.

[New Topic Header Button](https://meta.discourse.org/t/new-topic-header-button/84551) добавляет кнопку

Также см. [(deprecated) Plugin outlet locations theme component](https://meta.discourse.org/t/plugin-outlet-locations-theme-component/100673)

---

<div class="post-metadata">

### Author: ![aslangm](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/aslangm/32/433938_2.png) [@aslangm](https://meta.discourse.org/u/aslangm)
#### Post date: [24.Июль.2024 12:29:24 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/7 "2024-07-24T12:29:24Z")

</div>

@pfaffman спасибо. Я полностью понимаю ваши предложения. Однако я хотел бы узнать, есть ли способ кастомизировать файлы, например `site-header.hbs`, через пользовательскую тему. Это имеет смысл?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [24.Июль.2024 12:33:03 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/8 "2024-07-24T12:33:03Z")

</div>

Это не поддерживается. Вы читали ссылку, которую я отправил вам после вашего предыдущего (дублирующего?) сообщения?

> [@How to override a template.hbs from a plugin](https://meta.discourse.org/t/how-to-override-a-template-hbs-from-a-plugin/155556/7?u=merefield):
>

---

<div class="post-metadata">

### Author: ![aslangm](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/aslangm/32/433938_2.png) [@aslangm](https://meta.discourse.org/u/aslangm)
#### Post date: [24.Июль.2024 12:36:37 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/9 "2024-07-24T12:36:37Z")

</div>

@merefield Да, я прочитал вашу статью. Я просто хотел убедиться.  
Хорошо, большое спасибо.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [24.Июль.2024 12:37:54 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/10 "2024-07-24T12:37:54Z")

</div>

Это может помочь (и гарантировать, что ваши настройки выдержат испытание временем)

> [@Upcoming Header Changes - Preparing Themes and Plugins](https://meta.discourse.org/t/upcoming-header-changes-preparing-themes-and-plugins/296544?u=merefield):
>
> We’ve recently [been working](https://github.com/discourse/discourse/commit/21f23cc032) on updating Discourse’s header from the legacy ‘widget’ rendering system to modern Glimmer components. This change is now available in Discourse core behind the glimmer header mode site setting. timer_clock Approximate Timeline (very rough estimates - subject to change in either direction) Q1 2024: white_check_mark core implementation finished & enabled on Meta white_check_mark upgrade advice published; console deprecation messages enabled …

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [24.Июль.2024 19:45:42 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/11 "2024-07-24T19:45:42Z")

</div>

> [@aslangm](#):
>
> И над заголовком я хочу отображать динамические ссылки, которые будут поступать из пользовательского компонента.

Этот #Customization > Theme component также может быть рассмотрен, если вы ищете меню в заголовке с выпадающим подменю

> [@Header Submenus](https://meta.discourse.org/t/header-submenus/94584?u=heliosurge):
>
> discourse2Summary Header Submenus will allow you to build a header menu - with submenus - using plain text!eyeglassesPreview [Preview on Discourse Theme Creator](https://discourse.theme-creator.io/theme/Discourse/header-submenus)hammer_and_wrenchRepository Link [https://github.com/discourse/discourse-header-submenus](https://github.com/discourse/discourse-header-submenus)open_bookNew to Discourse Themes? [Beginner’s guide to using Discourse Themes](https://meta.discourse.org/t/beginners-guide-to-using-discourse-themes/91966) Install this theme component Features Desktop Mobile Settings Name Description Menu items Add menu items. O…

Преимущество использования существующего компонента (особенно если он официальный или от одного из партнёров) заключается в том, что он, скорее всего, будет поддерживаться с меньшим риском сбоев.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [23.Август.2024 19:46:05 UTC](https://meta.discourse.org/t/how-to-override-the-site-header-hbs-file-from-custom-theme/318065/12 "2024-08-23T19:46:05Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
