「バナー」トピックをクリックする方法がない

my website のトップにバナーが 1 つあります。(私はトピックをピン留めする習慣はあまりなく、バナーが 1 つとグローバルピンが 1 つだけです)。

しかし、ユーザーがそのトピック/投稿へ移動したい場合、バナーをクリックする方法がありません。
ただし、そのトピックの最初の投稿が YouTube の動画リンクであるため、訪問者はそのトピックへ移動しなくても動画を見ることができます。しかし、そのバナーからクリックしてそのトピックへ移動する方法はありません(YouTube 動画がない別のトピックでも試しました)。
また、ログインしていないユーザーとして、そして別のユーザーとしてそのトピックにアクセスすることも試みました。

また、自分で「X」をクリックしてバナーを削除した後、バナー設定を解除(アンバナー)して再度バナー設定をしても、自分用に再び表示させることができません。自分用に再度バナーとして表示させる方法を教えてください。

(サイトとトピック/投稿がヒンディー語であるため、お詫びいたします)。

以前は、同じトピックを参照するハイパーリンクを投稿に含めることでこの問題を回避していました。例えば、「このトピックへ移動」をクリックしてください。続きを読む。

:slight_smile:

それは良い回避策ですね。
ただ、それを実現するには、投稿のほぼ冒頭にリンクを掲載する必要があります(ユーザーが簡単に確認・クリックできるようにするため)。しかし、投稿を読んでいる途中でそのリンクをクリックし、再び同じ投稿に戻るとなると、少し不自然に見えるかもしれません。

とはいえ、この問題が解決するまでの間、それは非常に良い提案です。

トピック内に複数の投稿や返信がある場合、トピックの最初の投稿にハイパーリンクを記述し、末尾に/2を付けて2番目の投稿にリンクさせることができます。つまり、先頭や導入部分の投稿ではなく、2番目の投稿に直接ジャンプするようになります。それでも少し不自然に思えるかもしれませんが、ページを下にスクロールするだけの効果があります。完璧ではありませんが、まあ悪くないでしょう。

@Bathinda 以下のような方法があります

投稿の内容は以下の通りです:

これはバナーに表示されるが、実際の投稿には表示されないリンク付きのバナートピックになります。

[スレッドにアクセス](https://forums.example.com/t/test-thread/26?banner-topic)

ポイントは、Discourse が無視するが CSS で利用可能なクエリ文字列をリンクの末尾に追加することです。つまり、https://forums.example.com/t/test-thread/26?banner-topichttps://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>。その後、共通の CSS で .banner-link をスタイル設定してください。

以下は、リンクを追加する代わりにバナー全体をクリック可能にするものです。

<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>

お時間をいただき、誠にありがとうございます。

このコードの中で、私がカスタマイズできる単語を、太字・斜体・区別して示していただけないでしょうか。それらの単語を別々に書き出したり、色を変えて表示したりしていただけると助かります。

前回の回答では、バナー内にリンクを作成する方法(あるいはバナー全体をリンク可能にする方法)として、2 つの異なる(しかしそれほど大きく異なるわけではない)アプローチが提示されていたと理解しました。後者の場合、トピックや投稿自体にリンクを含めたり埋め込んだりする必要はないと考えております。

ありがとうございました。

以下がその外観です

「このバナーを編集」リンクはスタッフのみ表示されますが、これは「スレッドへ移動」と同じ場所へリンクしています。そのため、このリンクは完全に削除すべきです。すると、以下のように変更されます

<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}}} の前後に、好きな内容を追加することも可能です。