روابط التنقل العلوية المخصصة

:discourse2: ملخص روابط التنقل العلوية المخصصة تتيح لك إضافة روابط إلى شريط التنقل العلوي في Discourse.
:eyeglasses: معاينة معاينة في منشئ سمة Discourse
:hammer_and_wrench: رابط المستودع https://github.com/discourse/Discourse-nav-links-component
:open_book: جديد في سمات Discourse؟ دليل المبتدئين لاستخدام سمات Discourse

تثبيت مكون السمة هذا

الميزات

سطح المكتب

الجوال

الإعدادات:

الاسم الوصف
روابط التنقل مفصولة بنقطة فاصلة بالترتيب التالي: اسم العرض؛الوصف؛الرابط
إخفاء القوائم المنسدلة إخفاء قوائم التصنيفات والعلامات المنسدلة الافتراضية
إخفاء الروابط الافتراضية إخفاء الروابط الافتراضية على كل من الجوال وسطح المكتب.
  • روابط التنقل — تتطلب هذه الروابط ثلاثة أجزاء:

    • الاسم
    • الوصف
    • المسار أو الرابط

    الاسم هو النص الذي يظهر كرابطة في القائمة. أما الوصف فيظهر عند تمرير المؤشر فوق الاسم كما يلي:

    المسار/الرابط هو المكان الذي تريد أن يؤدي إليه الرابط.

    يمكنك إضافة الروابط كقيم مفصولة بنقطة فاصلة في إعدادات السمة باتباع هذا الترتيب

    name;description;URL

    يمكن أن يكون الرابط نسبيًا أيضًا مثل:

    /c/staff، /t/232، /groups/plugin_authors، /about، /tags/official

  • إخفاء القوائم المنسدلة

    يخفي قوائم التصنيفات والعلامات المنسدلة الافتراضية

    Screenshot 2023-05-11 at 3.10.55 PM

  • إخفاء الروابط الافتراضية

    يخفي الروابط الافتراضية في هذا القسم

    Screenshot 2023-05-11 at 3.11.29 PM


:discourse2: مُستضافون معنا؟ تتوفر مكونات السمات للاستخدام في خططنا القياسية، والأعمال، والمؤسسية.

64 إعجابًا
Categories in "top menu"?
Add /groups to top nav
How to make some categories like Bugs and Features here visible in top menu?
What about adding tags in the top menu?
How to add breadcrumb?
Simple Unread List
How can I add a menu item
Displaying all non-solved topics
Adding link to blog on main page
What is the proper way to extend categories route and filter topics?
Create a Tag filter like 'Make & Model' on community.cartalk.com
A playful approach to category moderation
Link to find all deleted posts by all users in a particular period
Reply reminder - Remind users to reply to new users topics with zero replies
How to add a topic in top nav in a specific category?
Following tags and top feed for followed tags
Show latest list sorted by creation date
Following tags and top feed for followed tags
Change Topic List home router - from Latest to Following
Missing category and tags breadcrumbs
A "Votes" option for the top menu in main page
Adding a chat link in the top navigation links?
Add a specific class for wikis (when first post) at the topic list level
How to add an icon in a navigation link?
Customizing your site with existing theme components
Show Latest topics, not by comment on home page
Custom Button For Discourse
Add Follow feed to top navigation
Improvements i want for my discourse for making it less overwhelming/noisy for newcomers
Sidebar link / top button to PM admin
Adding 'Upcoming Events' to top navigation
Can we add "Groups" to top menu?
Disclaimer section on the "about" page
Alternative component (plugin?) to categories navbar
Alternative component (plugin?) to categories navbar
FKB Pro - Social theme
2023: The Year in Review
Is it possible to have the Board view as the only view?
How to add Button in Section
Brave default Theme
Air Theme
Provide a way to access tracked/watched topics (outside search)
Discourse Solved
The first Custom Top Nav link inappropriately appears selected
Add another tab to menu bar
How can I remove the Category and tag filter?
How to Disable ALL User-to-User DMs/Chat without breaking Other Features?
Disable personal message between members
Add category in Top Menu?
Strange repetition in menu items
How can I add a link to the top menu area?
Why we can't add groups to top menu
How to add links on home page menu to other site?
Traditional multi level hierarchy vs flat discourse hierarchy
Ordering topics - how do the links work?
Knowledge Base
Automatically fill category with topics? "Best of" category?
How to add new button in different color
Adding "Category" as a topic list option within categories
Docs: Add link to top menu
New Theme: Tag-Pages Navigation
Custom nav bar options
Where can I see posts created by me?
Showing categories statically above most recent posts
Custom nav items no longer showing after recent update
Add /groups to top nav
Add topics-sorted-by-create-time to `top menu`
Categories Customization
Volunteer Activities - a simple setup for non-hierarchical collaboration
How to make the recommanded topics collection

مرحباً

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

بدلاً من كلمة “Agora”، أريد أن يظهر النص “Agora (3)” للمستخدم الذي لديه ثلاثة مواضيع غير مقروءة في هذه الفئة (نفس سلوك رابط “غير المقروء” القياسي).

هل لديكم أي فكرة؟

شكراً مقدماً.

هل يعرف أحد كيف يمكنني إضافة رابط علامة يكون نسبيًا فعليًا للمسار الحالي؟ أود استخدام علامة حول وتقديمها كرابط علوي يوجه إلى موضوع حول نسبي للفئة التي يتواجد فيها المستخدم.
على سبيل المثال، يتواجد المستخدم في الفئة /c/feedback/7. سيؤدي اختيار حول إلى التوجيه إلى /tags/c/feedback/7/about.

إعجابَين (2)

أود استخدام المكون على مثيل ولكن السلوكيات المختلفة لا تعمل:

  • عند استخدام “إخفاء الروابط الافتراضية”، فإنه يخفي العنصرين الفرعيين الأولين (الأحدث والفئات). ولكن عندما يتنقل المرء إلى فئة، فإن رابط “الفئات” الافتراضي غير معروض بالفعل في القائمة. ثم يخفي هذا الإعداد عنصر تنقل إضافي، وهو العنصر الثالث في الصف.

لقطة شاشة من 2022-05-10 18-29-05

  • أضفت عنصر قائمة لرابط فئة مباشر (/c/game-talk). عندما أتنقل إليه، لا يحصل على فئة نشطة ولا يتم تمييزه. بدلاً من ذلك، يتم تمييز رابط “الأحدث” ولديه فئة نشطة. هذا ليس رابط “الأحدث” الافتراضي، ولكنه رابط أضفته من خلال المكون (يربط فقط بـ /latest).

لقطة شاشة من 2022-05-10 18-25-39

  • في الواقع، رابط “الأحدث” لا يحصل على فئة نشطة أيضًا عندما لا يسمى “الأحدث”. لذلك، يبدو أن الفئة النشطة على المسار الحالي لا تعمل على الإطلاق بسبب المكون. هذا هو العرض على /latest ولكن باسم مختلف لرابط الأحدث:

لقطة شاشة من 2022-05-10 18-39-15

إعجابَين (2)

سؤال سريع-
أحاول إنشاء هذا وجعل عنوان URL ?order=created حتى يتمكن المستخدمون من تصفح المواضيع الحديثة.
يعمل هذا بشكل مثالي على سطح المكتب ولكنه يفشل على الهاتف المحمول - يتم إعادة تحميل شريط التنقل ولن تظهر القائمة المنسدلة.

لدي نفس السؤال… هل هذا حل؟ :face_with_monocle:

أعتقد أنني أعرف سبب حدوث ذلك…
المكون يحتوي على السطر التالي:

if (window.location.pathname.match(sec2)) {
          $(navHeader).html(filter + markd);
        }

بسبب التعبير العادي… ؟ يُستخدم بحد ذاته كعلامة خاصة للتعبير العادي، وكان من المفترض مقارنة المعلمة بـ window.location.search.
لقد قمت بعمل نسخة من المكون، وغيرته إلى الكود التالي وهو يعمل.

if (sec[2].indexOf("?") === -1) {
        if (window.location.pathname.match(sec[2])) {
          $(navHeader).html(filter + markd);
        }
      } else {
        // reg ?->/?
        sec[2] = sec[2].replace(/\?/g, "/?");
        const pathWithSearch = window.location.pathname + window.location.search;
        if (pathWithSearch.match(sec[2])) {
          $(navHeader).html(filter + markd);
        }
      }
إعجاب واحد (1)

أحسنت صنعًا :clap:

أين وضعت جزء الكود هذا؟

Discourse-nav-links-component/mobile/head_tag.html ، استبدل رمز المطابقة. :face_with_peeking_eye:

إعجاب واحد (1)

لماذا لا تقوم بعمل PR ليستفيد منه الجميع؟

4 إعجابات

هل يمكنني فعل ذلك؟ لطالما اعتقدت أن مستوى الكود الخاص بي ضعيف للغاية… وأشعر بالحرج قليلاً للقيام بذلك. شكراً على النصيحة!!! سأقوم بمراجعته وتقديم طلب سحب!

إعجاب واحد (1)

أنا أفكر في محاولات مساهمتي أيضًا!!

ومع ذلك، يبدو أن الفريق (وأدواتهم الآلية) جيدون جدًا في تنظيف الكود.

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

5 إعجابات

هل تمكنت من حل هذه المشكلة؟ أنا أواجه مشكلة مماثلة

لا يمكنني القول بأنني وجدت حلاً مثالياً، لكنني اكتشفت ما كانت المشكلة بالنسبة لي.

يمكن العثور على المشكلة هنا
https://github.com/discourse/Discourse-nav-links-component/blob/main/desktop/head_tag.html

وتحديداً، هذا الجزء:

    api.modifyClass("component:navigation-item", {
      pluginId: "discourse-nav-links-component",
      active: Ember.computed("contentFilterMode", "filterMode", function() {
        let contentFilterMode = this.get("content").get("filterMode");

        if (window.location.pathname === location) {
          return contentFilterMode === filter;
        } else {
          return this._super(contentFilterMode, this.get("filterMode"));
        }
      })
    });

يبدو أن هذا يضبط “نشط” على كل رابط تنقل. بصراحة، منطق كيفية اتخاذ القرار وما هي كل هذه المتغيرات غامض جداً بالنسبة لي. لكن المشكلة هنا:

        if (window.location.pathname === location) {
          return contentFilterMode === filter;
        } else {
          return this._super(contentFilterMode, this.get("filterMode"));
        }

بالنسبة لي، هذا يتحقق مما إذا كان عنوان URL للصفحة هو نفس موقع عنوان URL لشريط التنقل، وإذا كان الأمر كذلك، فإنه يُرجع نتيجة contentFilterMode === filter، وكلا المتغيرين غير واضحين إلى حد ما بالنسبة لي. إذا فشل الشرط، يبدو أنه يقوم فقط بتشغيل المنطق العادي لما إذا كان يجب تمييز شيء ما على أنه نشط (وهذا هو سبب عمل روابطي غير المخصصة بشكل جيد). المشكلة هي أنه بينما يعمل هذا الرمز مرة واحدة لكل رابط تنقل، فإن متغير location يبدو دائماً أنه “categories” لذا فإن الشرط if خاطئ دائماً للروابط المخصصة. علاوة على ذلك، حتى لو قمت بإصلاح متغير “location” عن طريق استبداله بـ this.get("content").href، فإن قيمة الإرجاع خاطئة دائماً أيضاً لأن متغير filter يتم تعيينه دائماً إلى “categories”.

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

    api.modifyClass("component:navigation-item", {
      pluginId: "discourse-nav-links-component",
      active: Ember.computed("contentFilterMode", "filterMode", function() {
        return window.location.pathname.includes(this.get("content").href);
      })
    });

بشكل أساسي، يتحقق فقط مما إذا كان عنوان URL الحالي يتضمن عنوان URL لشريط التنقل كجزء من سلسلة نصية. إذا كان الأمر كذلك، فإنه يسلط الضوء عليه.

4 إعجابات

تم تقسيم 4 مشاركات إلى موضوع جديد: Custom relative tag filter on the nav bar

مرحباً. أنا أكرر هذه المشاركة. هل هناك طريقة للإشارة إلى المواضيع غير المقروءة من فضلك؟ شكراً

مرحباً،
كيف نقوم بإعداد فتح عنوان URL في علامة تبويب جديدة؟
شكراً لك!

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

هل يمكنك أن تكون أكثر تحديدًا بشأن الأخطاء التي تمنعك من استخدام المكون؟

نعم، آسف، الرئيسي الذي واجهته هو هذا:

أفترض أنه يحتاج فقط إلى بعض CSS مستهدفة بشكل أفضل ولكن قد أكون مخطئًا!

إعجاب واحد (1)