بالنظر إلى هذا الأمر بشكل أعمق، تمت إضافة مكون “breadcrumbs” (مسارات التنقل) إلى Discourse في وقت سابق من هذا العام: FEATURE: Introduce DBreadcrumbs components (#27049) · discourse/discourse@1239178 · GitHub. يتم عرضه حاليًا فقط في صفحات إدارية محددة.
لذلك، قمت بإنشاء مكون اختباري لعرض مسارات التنقل: Manuel Kostka / Discourse / Components / Breadcrumbs · GitLab. القالب الحالي هو:
<template>
{{#if this.currentPage}}
{{bodyClass "has-breadcrumbs"}}
<ul class="breadcrumbs {{concat '--' settings.plugin_outlet}}">
<li class="breadcrumbs__item --home">
{{#if this.homePage}}
{{i18n "js.home"}}
{{else}}
<a href="/">{{i18n "js.home"}}</a>
{{/if}}
</li>
{{#if this.parentCategory}}
<li class="breadcrumbs__item --parent">
<a href="/c/{{this.parentCategoryLink}}">
{{this.parentCategoryName}}</a>
</li>
{{/if}}
{{#unless this.homePage}}
<li class="breadcrumbs__item --current">
{{this.currentPage}}
</li>
{{/unless}}
</ul>
{{/if}}
</template>
لقد قمت الآن بإنشاء فرع يستخدم مكون DBreadcrumbs الجديد: Files · dbreadcrumbs · Manuel Kostka / Discourse / Components / Breadcrumbs · GitLab. سيؤدي ذلك إلى جعل القالب أكثر إيجازًا وأعتقد أنه سيوفر بشكل عام تناسقًا وإمكانية وصول أفضل:
<template>
{{#if this.currentPage}}
{{bodyClass "has-breadcrumbs"}}
<DBreadcrumbsContainer class="{{concat '--' settings.plugin_outlet}}" />
<DBreadcrumbsItem @path="/" @label={{i18n "js.home"}} />
{{#if this.parentCategory}}
<DBreadcrumbsItem
@path="/c/{{this.parentCategoryLink}}"
@label={{this.parentCategoryName}}
/>
{{/if}}
{{#unless this.homePage}}
<DBreadcrumbsItem @path="" @label={{this.currentPage}} />
{{/unless}}
{{/if}}
</template>
ومع ذلك، عند استخدام DBreadcrumbsItem، يتم خلط ترتيب الفئة الأصلية والفئة الفرعية في المكون المعروض. يتم إدراج الفئة الحالية أولاً:
أتساءل عما إذا كان ذلك بسبب هذا السلوك، المذكور في رسالة الالتزام؟
- DBreadcrumbsItem - المكون الذي يسجل LinkTo لمسار التنقل. سيظهر مسار التنقل بناءً على ترتيب عرض هذه العناصر في الصفحة.
