Нет возможности кликнуть по теме «Banner»

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

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

Также, как только я убрал баннер, нажав на ‘X’ для себя, я не смог заставить его снова появиться, даже после того, как убрал его как баннер (снял статус баннера) и затем снова сделал его баннером. Пожалуйста, подскажите, как заставить его снова отображаться как баннер для меня.

(Извините, сайт и тема/сообщение на хинди).

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

:slight_smile:

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

Тем не менее, пока это не решено, это очень хорошее предложение.

Если в теме есть несколько постов или ответов, вы можете добавить гиперссылку в первом посте темы, указывающую на второй пост, добавив /2 в конце. Иными словами, это переместит вас сразу ко второму посту, а не вернёт к началу или вводному посту темы. Это всё ещё может показаться немного странным, но эффект будет таким, будто страница просто прокручивается вниз. Не идеально, но, наверное, неплохо.

@Bathinta Вы можете сделать что-то вроде этого

Вот содержание поста:

Это будет тема с баннером, содержащая ссылку, которая отображается в баннере, но не в самом посте.

[Перейти к теме](https://forums.example.com/t/test-thread/26?banner-topic)

Секрет в том, чтобы добавить строку запроса в конец вашей ссылки, которую Discourse проигнорирует, но которую вы сможете использовать в своём CSS. Таким образом, https://forums.example.com/t/test-thread/26?banner-topic приведёт вас на страницу https://forums.example.com/t/test-thread/26, а вы сможете использовать строку запроса ?banner-topic в своём CSS, чтобы идентифицировать ссылки, которые нужно скрыть.

a[href$="?banner-topic"] {
    display:none;
}
#banner-content a[href$="?banner-topic"] {
    display:block;
}

Не совсем удобно для пользователя, но хорошее решение.

Кстати, если я хочу создать компонент темы с этим кодом, куда мне его добавить: в ‘head’, ‘body’ или куда-то ещё?

Забудьте о моём предыдущем решении. Думаю, это сработает автоматически. Вставьте это в ваш Common </head>

<script type="text/x-handlebars" data-template-name="components/discourse-banner">
{{#if visible}}
  <div class="row">
    <div id="banner" class={{overlay}}>
      {{d-button icon="times" action="dismiss" class="btn btn-flat close" title="banner.close"}}
      <div id="banner-content">
        {{{content}}}
        <p><a href="{{banner.url}}">Перейти к теме</a></p>
        {{#if currentUser.staff}}
          <p><a href="{{banner.url}}">{{{i18n "banner.edit"}}}</a></p>
        {{/if}}
      </div>
    </div>
  </div>
{{/if}}
</script>

Строка <a href="{{banner.url}}">Перейти к теме</a> добавляет ссылку, и вы можете заменить текст «Перейти к теме» на любой другой. Вы можете добавить класс к ссылке <a href="{{banner.url}}" class="banner-link">Перейти к теме</a>, а затем стилизовать .banner-link в вашем общем CSS.

Ниже приведён вариант, который делает весь баннер кликабельным вместо добавления отдельной ссылки:

<script type="text/x-handlebars" data-template-name="components/discourse-banner">
{{#if visible}}
  <div class="row">
    <a href="{{banner.url}}" class="banner-link">
      <div id="banner" class={{overlay}}>
        {{d-button icon="times" action="dismiss" class="btn btn-flat close" title="banner.close"}}
        <div id="banner-content">
          {{{content}}}
            {{#if currentUser.staff}}
          <p><a href="{{banner.url}}">{{{i18n "banner.edit"}}}</a></p>
        {{/if}}
      </div>
     </div>
    </a>
  </div>
{{/if}}
</script>

Большое спасибо за уделенное время.

Буду признателен, если вы сможете выделить/разделить слова в этом коде, которые я могу настроить. Возможно, выписать эти слова отдельно или выделить их другим цветом.

Как я понял из вашего предыдущего ответа, вы предложили два разных (но не слишком отличающихся) способа создания ссылки внутри баннера (или сделать весь баннер кликабельным). В последнем случае, думаю, мне не нужно включать/встраивать ссылку в саму тему/сообщение.
Спасибо.

Вот как это выглядит

Ссылку «Редактировать этот баннер» видят только сотрудники, но она ведёт в то же место, что и «Перейти к теме», поэтому её стоит убрать совсем. Тогда у нас получится вот так:

<script type="text/x-handlebars" data-template-name="components/discourse-banner">
{{#if visible}}
  <div class="row">
    <div id="banner" class={{overlay}}>
      {{d-button icon="times" action="dismiss" class="btn btn-flat close" title="banner.close"}}
      <div id="banner-content">
        {{{content}}}
        <p><a href="{{banner.url}}">Перейти к теме</a></p>
      </div>
    </div>
  </div>
{{/if}}
</script>

Строка, которую можно редактировать:
<p><a href="{{banner.url}}">Перейти к теме</a></p>
Вы можете заменить Перейти к теме на любой текст. Также вы можете добавить любой контент до или после {{{content}}} в посте баннера.