تقييد لافتة الترحيب بصفحة المستخدم الرئيسية

هل من الممكن تقييد اللافتة لتظهر في الصفحة الرئيسية فقط، بحيث إذا قاموا بحفظ أحدث كتاب في المفضلة لا تظهر؟ حاليًا، يبدو أنها تظهر في كلتا الحالتين.

إعجابَين (2)

نعم، إنها موجودة في إعدادات لافتة رابط الترحيب:

هل تقصد، إذا قاموا بتعيين صفحة مخصصة (الأحدث، الفئات، أيًا كان) كصفحتهم الرئيسية في ملفهم الشخصي؟
إذًا تُعتبر هذه الصفحة العشوائية “الصفحة الرئيسية” للمستخدم، وبالتالي ستظهر لافتة الترحيب لهم في صفحتهم الرئيسية الجديدة.

إذا كانت الصفحة الرئيسية الافتراضية لموقعك هي /categories وتريد أن تظهر لافتة الترحيب فقط على /categories، بغض النظر عن تفضيلات واجهة المستخدم، فربما يمكنك تعيين إظهار على إلى “discovery” أو “all” واستخدام جافاسكريبت لإخفاء لافتة الترحيب في صفحات أخرى غير الصفحة التي تريد إظهارها عليها.

لكنني حاليًا لا أعرف كيفية تحديد الصفحة الحالية بشكل موثوق (بما في ذلك عند تحميل صفحة لأول مرة وعند تغيير الصفحة) لإخفاء لافتة الترحيب ديناميكيًا.

سأكون سعيدًا بتجربة هذا لاحقًا (:sleeping:)، ولكن ربما يمكن أن يكون هذا بداية:

إعجابَين (2)

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

إعجابَين (2)

حسنًا، إليك حل يعمل. في مثالي، سيتم عرض لافتة الترحيب على صفحة /latest فقط، بغض النظر عن إعدادات واجهة المستخدم الخاصة بالمستخدمين. سأدعك تقوم بتخصيصها لعرضها على صفحة /categories فقط. :slight_smile:

  1. قم بتعيين إعداد “عرض على” لافتة رابط الترحيب إلى “all” أو “discovery”، اعتمادًا على الصفحة (الصفحات) التي تريد عرض اللافتة عليها.

  2. أضف هذا النص البرمجي في السمة الخاصة بك:

    <script type="text/discourse-plugin" version="1.4.0">
        //shows the welcome banner only on the /latest page
        api.onPageChange(() => {
            const router = api.container.lookup('service:router');
    
            if (router.currentRoute.name === 'discovery.latest') {
                document.body.classList.add('route-discovery-latest');
            } else {
                document.body.classList.remove('route-discovery-latest');
            }
        });
    </script>
    
  3. أضف هذا CSS إلى السمة الخاصة بك:

    body:not(.route-discovery-latest) .welcome-link-banner-connector {
       display: none;
    }
    

المرجع المستخدم:

8 إعجابات

شكرا جزيلا لك! :raised_hands:

3 إعجابات

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