لا توجد طريقة للنقر على موضوع "Banner"

يوجد لافتة واحدة في أعلى موقعي الإلكتروني. (ليس لدي عادة تثبيت المواضيع كثيرًا، فقط لافتة واحدة وتثبيت عام واحد).

لكن لا توجد طريقة للنقر على اللافتة إذا أراد أي مستخدم الانتقال إلى ذلك الموضوع/المشاركة.
ولكن بما أن أول مشاركة في ذلك الموضوع هي رابط فيديو من يوتيوب، يمكن للزائر مشاهدة الفيديو دون الدخول إلى ذلك الموضوع. لكن لا توجد طريقة للنقر والانتقال إلى ذلك الموضوع من خلال اللافتة (لقد جربت موضوعًا آخر بدون فيديو يوتيوب).
لقد جربت أيضًا زيارة ذلك الموضوع كمستخدم غير مسجل ومستخدم آخر.

أيضًا، بمجرد إزالي للافتة بالنقر على ‘X’ لنفسي، لم أستطع إعادتها للظهور، حتى بعد إزالتها كلافتة (إلغاء تثبيتها) ثم تثبيتها كلافتة مرة أخرى. يرجى إخباري كيف يمكنني جعلها تظهر كلافتة مرة أخرى لنفسي.

(أعتذر، الموقع والموضوع/المشاركة باللغة الهندية).

لقد تجنبت ذلك في الماضي باستخدام رابط تشعبي في المنشور يشير إلى الموضوع نفسه. على سبيل المثال، انقر هنا للانتقال إلى هذا الموضوع نفسه. اقرأ المزيد.

:slight_smile:

هذا حل عملي جيد.
ومع ذلك، سيتعين عليّ تضمين الرابط في أعلى المنشور تقريبًا (لجعله سهل العرض والنقر للمستخدم)، وقد يبدو ذلك غريبًا بعض الشيء عندما يقرأ شخص ما المنشور ثم ينقر على هذا الرابط ويعود إليه.

ومع ذلك، حتى يتم حل هذه المشكلة، فإن هذا اقتراح ممتاز.

إذا كان لديك عدة منشورات/ردود في الموضوع، يمكنك كتابة الرابط التشعبي في المنشور الأول في الموضوع للربط بالمنشور الثاني بإضافة /2 في النهاية. وبعبارة أخرى، سيقفز إلى المنشور الثاني ولن يعيد الربط إلى أعلى المنشور/مقدمة الموضوع. قد يبدو الأمر غريبًا بعض الشيء، لكنه سيكون له تأثير تحريك الصفحة لأسفل فقط. ليس مثاليًا، لكنه ليس سيئًا، أعتقد.

@Bathinda يمكنك فعل شيء مثل هذا

إليك محتوى المنشور:

سيكون هذا موضوعًا شريطيًا يحتوي على رابط يظهر في الشريط ولكن ليس في المنشور الفعلي.

[زيارة الموضوع](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;
}

ليس سهل الاستخدام إلى هذا الحد، لكنه حل عملي جيد.

بالمناسبة، إذا أردت إنشاء مكون سمة (theme component) باستخدام هذا الكود، فأين يجب إضافة الكود: في ‘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}}} في منشور الشريط الإعلاني.