أنا أواجه صعوبة في إقناع مؤسستنا بعدم العودة إلى منتدى تقليدي يتيح مستويات متعددة من التسلسل الهرمي، والتي غالبًا ما تؤدي إلى تعذيب من نوع انقر-وشغّل، انظر حان الوقت لنحدث عن الوسوم
أحتاج إلى أدلة تثبت أن استخدام الوسوم أمر سهل التنفيذ دون الحاجة إلى الكتابة في مربع البحث.
سيكون رائعًا لو تم الإجابة على الأسئلة التالية.
لدينا شبكة من المؤيدين من العقد المحلية التي ستنمو على مستوى العالم، ويمكن مقارنتها بفئة “المجموعات المحلية” على https://discuss.okfn.org. هناك، يتم تغطية جميع المواقع عبر فئات فرعية. هذا هو الحل الصحيح إذا لم نصل إلى مستوى المدينة كما هو مطلوب في حالتنا.
لدي في ذهني هيكل كالتالي:
فئة: العقد المحلية
وسم: قارة (يجب مناقشة ما إذا كان ذلك منطقيًا)
فئة فرعية: دولة (يجب أن تكون الدولة واضحة بصريًا، ولهذا السبب نستخدم القارة كوسم)
وسم: مدينة
هل توجد أي إمكانية للتنقل باستخدام الوسوم فقط، مستفيدًا من تسلسل هرمي لمجموعات الوسوم، مثل:
لم أجد حتى الآن طريقة لتغطية ذلك عبر شريط حقول التنقل. كما لم أجد طريقة لجعل الموضوع يُوسّم تلقائيًا بناءً على اسم فئته الفرعية وفئة الوالدة الخاصة بها لجعل هذا الأمر ممكنًا.
أنا على علم بالمواضيع التالية:
لقد فكّرت في هذا الأمر قليلاً. لقد جربت سابقًا نظام تصنيفات من ثلاثة مستويات وأنظمة تنقل قائمة على الوسوم المختلفة.
الفئة: العقد المحلية
الوسم: القارة (يحتاج إلى مناقشة لمعرفة ما إذا كان منطقيًا)
الفئة الفرعية: الدولة (يجب أن تُصوَّر الدولة بشكل جيد، ولهذا السبب تُستخدم القارة كوسم)
الوسم: المدينة
أعتقد أنك في الأساس بحاجة إلى قائمة منسدلة للوسوم مخصصة لمجموعة وسوم معينة، حيث تُحدَّد مجموعة الوسوم بناءً على سياق الفئة (لتسهيل تجميع المدن المختلفة ضمن فئات فرعية للدولة).
من حيث وجود الخرائط في أماكن أخرى غير قائمة المواضيع، أو مدمجة في منشور، فإن مكون “إضافة المواقع” (Locations Plugin) يحتوي على خريطة قابلة للتجزئة يمكن إدراجها في صفحة الفئة.
يمكنك تحقيق كلا الأمرين عبر مكون للمظهر (theme component). إذا كنت بحاجة إلى مساعدة في بناء مثل هذا المكون، فيمكنني إرشادك إذا أردت المحاولة بنفسك، أو يمكنك توظيف Pavilion للقيام بذلك نيابة عنك.
شكرًا جزيلاً لك على التغذية الراجعة الإيجابية، إذن يمكن القيام بأي شيء بخريطة الموقع بأنفسنا لكننا نحتاج إلى كتابة بعض الأكواد لتخصيص المظهر بالطريقة التي نفضلها.
للاطلاع على تصور عام لخارطة الطريق لتنفيذ ذلك، هل يمكنك تأكيد أو تصحيح أو توسيع أو الإجابة على النقاط التالية:
التأكد من إمكانية إنشاء قوائم منسدلة للوسوم لا نهائية (محدودة فقط بحجم الصفحة)، مع اختيار الوسوم بناءً على القائمة المنسدلة السابقة. @angus، هل يمكنك تأكيد إمكانية ذلك من حيث المبدأ؟
هل يمكن دمج البحث حسب الفئة والوسوم كما طُلب في النقطة 2 من القائمة الثالثة الأخيرة.
إنشاء تسلسل هرمي للوسوم مماثل لما هو موضح في المنشور الأصلي. هذا أمر جوهري للغاية؛ بدونه، هذا المشروع محكوم عليه بالفشل.
على سبيل المثال، قمتُ سابقًا بإنشاء تسلسل هرمي للفئات يتكون من 3 مستويات، ويدعم أيضًا تقاطعات متعددة للوسوم على مستوى الفئة.
هيكل مسار التسلسل الهرمي للفئات المكون من 3 مستويات مع تقاطعات متعددة للوسوم
scope "/multi" do
constraints(tag_id: /[^\/]+?/, format: /json|rss/) do
get '/c/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_category_show'
get '/c/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_parent_category_category_show'
get '/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_grandparent_category_category_show'
Discourse.filters.each do |filter|
get "/c/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_category_show_#{filter}"
get "/c/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_parent_category_category_show_#{filter}"
get "/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_grandparent_category_category_show_#{filter}"
end
end
end
هذا أكثر تعقيدًا مما أعتقد أنك تريد فعله، لكنه ليس مستدامًا ما لم تكن مستعدًا لاستثمار الكثير من الوقت أو الموارد لدعمه. ومن المرجح أن ينكسر في مرحلة ما عند تغيير Discourse القياسي.
مع هذا السياق، هناك أمران يجب فهمهما بخصوص هيكل مسار الفئة/الوسم في Discourse القياسي:
تقاطعات الوسوم المتعددة ممكنة فقط على مستوى الموقع بأكمله؛ وليس على مستوى الفئة، أي أنه لا توجد مسارات في Discourse القياسي لعرض قائمة بالمواضيع تحتوي على مواضيع في فئة محددة ومع أكثر من وسم محدد. إذا كنت ترغب في ذلك، فستحتاج إلى إضافة المسار.
تقاطعات الفئات غير ممكنة. أي أنه لا يوجد مسار في Discourse لعرض مواضيع من فئتين على نفس المستوى (أي فئتين أبويتين أو فئتين فرعيتين).
لا يزال بإمكانك تحقيق نظام مكون من 4 مستويات (وهو ما يبدو أنه هدفك) دون إجراء إضافات كبيرة على جانب الخادم.
على سبيل المثال، يمكنك استخدام الوسوم حصريًا لتمثيل المستويات الأربعة. https://thepavilion.io/tags/intersection/events/bug/to-do/high يمثل التقاطع بين الوسوم: events و bug و to-do و high على Pavilion. يمكنك استخدام 4 قوائم منسدلة، واحدة لكل مجموعة وسوم تُستمد منها هذه الوسوم، مثل:
[plugin] [type] [status] [importance]
بمجرد أن تحدد كيفية هيكلة تسلسلك الهرمي ضمن هيكل مسار Discourse الحالي، فإن باقي الأشياء التي ذكرتها هي مجرد تعديلات على جانب العميل وهي (نسبيًا) مباشرة.
هل هناك مثال؟ لا أعرف كيف سيبدو الأمر أو أين يتم إضافة الكود.
أين وكيف يتم إدخال grandparent_category نظرًا لعدم وجود أدوات افتراضية للقيام بذلك عبر واجهة المستخدم؟
هل هذا مرتبط بطريقة ما بـ Pavilion ليس كذلك، أليس كذلك؟ الكود أعلاه سيُعدّل صفحة الهبوط للفئات، أليس كذلك؟
تبدو تقاطعات الوسوم المتعددة فكرة جيدة، رغم أنها
قد يتطلب ذلك تجاوز الفئات كمسار تنقل رئيسي وبناء صفحة هبوط مخصصة تعتمد على هذه الوسوم، وهو ما طلبته في Display tags by tag group - #22 by PackElend
هل سيحتاج ذلك إلى سمة (Theme) مخصصة؟
وسوم فقط
نعم، هذه هي الفكرة للبدء، ويمكن تغيير أي شيء آخر في مرحلة لاحقة.
طالما أننا نضمن وضع الوسوم بشكل صحيح، فكل شيء ممكن، اعتمادًا على الوقت وتحمل الإحباط :)، أليس كذلك؟
التسلسل الهرمي سيكون على النحو التالي:
المستوى الأول: العقد المحلية
المستوى الثاني: القارات
المستوى الثالث: الدول
المستوى الرابع: المدن
في البداية، سنستخدم فقط العقد المحلية كفئة رئيسية مع فئة فرعية لكل مدينة*. وبمجرد أن يصبح عدد العقد كبيرًا جدًا، سننتقل إلى استخدام العقد المحلية والدول، على أمل إنشاء سمة خاصة بنا لجعل التنقل القائم على الوسوم أكثر جاذبية (مثل استخدام مربعات للوسوم مشابهة لتلك المستخدمة للفئات، كما ذُكر في النقطة 2).
علاوة على ذلك، آمل أن نتمكن من المضي قدمًا مع طلب الميزة القادم الذي نناقشه في إضافة Locations Plugin، حيث يمكن استخدامها في العديد من مجموعات الفئات/الوسوم .
الأهم من ذلك كله، أننا نحتاج إلى تشغيل الوسم التلقائي للمواضيع في أقرب وقت ممكن، وإلا سنواجه فوضى قبل أن نبدأ حتى على نطاق واسع.
بالإضافة إلى ذلك، نحتاج إلى إدخال مربعات منسدلة إضافية في شريط التنقل، يتم ملؤها بالوسوم بناءً على الاختيار. آمل ألا يكون مزج الفئات الفرعية مع مربعات منسدلة محددة بالوسوم أمرًا معقدًا.
هل من السهل تحقيق شيء يشبه التخطيط أدناه؟
تخطيط لعدد قليل من العقد
تخطيط لعدد أكبر من العقد
دمج المربعات
أخيرًا وليس آخرًا، قد يكون من المفيد، هل يمكنك دمج مربعات مثل:
لا يمكنك التصفية بناءً على وسمين داخل نفس التصنيف.
لست متأكدًا، لكني أعتقد أنك تفترض أنه إذا كنت داخل تصنيف “العقد المحلية” وقمت بالتصفية بناءً على “القارات”، فستتمكن أيضًا من التصفية بناءً على الدول والمدن في نفس الوقت. وهذا أيضًا لن يعمل.
أعتقد أن هذا هو أفضل إجراء يمكنك اتخاذه.
استخدم فقط العقد المحلية كل تصنيف رئيسي مع تصنيف فرعي لكل مدينة
أظن أنك تحاول دمج الكثير من التخطيط المستقبلي في احتياجاتك الحالية.
وبمجرد أن يصبح عدد العقد كبيرًا جدًا، سننتقل إلى استخدام العقد المحلية والدول
أفهم رغبتك في إعداد “الهيكل” المناسب الآن، ولكن مهما كانت خدمتك جيدة، فستستغرق وقتًا طويلاً قبل أن تصبح هذه مشكلة بالنسبة لك، أي سنوات. وفي تلك المرحلة، ستتغير الافتراضات التي تعمل بها مجتمعتك.
علاوة على ذلك، ستكون المشكلة التي ستواجهها في الغالب مشكلة تنظيمية وليس مشكلة هرمية. على سبيل المثال، يمكنك ببساطة تجميع التصنيفات الفرعية للمدن في شريط تنقيح معدل حسب الدولة إذا أردت. وإذا أردت إجراء مناقشة على مستوى “وطني” (سواء كان ذلك منطقيًا أم لا)، فيمكنك ببساطة إنشاء تصنيف فرعي منفصل لذلك.
لا تحتاج بالضرورة إلى هيكل هرمي في منتدى المناقشات الخاص بك يتطابق بدقة مع الهيكل الإداري للمكان الذي تدور حوله المناقشات. ما تحتاجه هو هيكل يسمح لمستخدميك بالعثور على المحتوى ذي الصلة بهم. أنا أفهم أنك تربط بين المفهومين، لكنني لست متأكدًا مما إذا كان ذلك مبررًا. فالتركيز المفرط على هذا الربط يُعقّد تفكيرك حول هيكل المنتدى.
بشكل أساسي، أعتقد أنك تستثمر الكثير في جعل هذا الهيكل مشابهًا للطريقة التي تتخيل بها الحالة المثالية لخدمتك من منظور واسع (10,000 قدم)، أي العمل على نطاق واسع لدرجة أنه يصبح ضروريًا تقسيم المدن حسب الدول والقارات. وعندما تصل إلى هذه النقطة (إذا وصلت إليها)، فإن طبيعة هذا القرار بأكملها ستكون مختلفة.
أتفق. أحاول دمج التفكير العميق والمُهيكل القديم مع نهج منصة Discourse.
لكن على أي حال، كما قلت
غير متأكد مما إذا سيكون هناك فقط
نظرًا لأن التركيز ينصب على مشاريع في مناطق جغرافية محدودة جدًا ومنخفضة المستوى. بالطبع، سيكون لبعض الموضوعات أهمية وطنية أو عالمية. كيفية إدارتها/وضعها جميعًا في السياق الصحيح/جعلها متاحة في الزاوية المناسبة من منصة Discourse هي بالتأكيد شيء ينطبق عليه مبدأ “التعلم بالممارسة”.
إذا قررنا الاعتماد على الوسوم فقط، فقد يساعد نهجك في “تقاطع الوسوم” بشكل هائل.
قبل اتخاذ هذه الخطوة، نحتاج إلى تخصيص صفحة هبوط الوسوم و التقاطع لتبدو بطريقة ما مشابهة لصفحة هبوط الفئات. هل هذا ممكن؟
أفكر في جعل تخطيط https://se23.life/tags يستخدم مربعات مملوءة بـ “الوسوم الفرعية” كما هو مقترح في Higher level of granularity for category & subcategory styling - #7 by PackElend (لكنني هناك طلبت تحسين المربعات للفئات الفرعية).
بالإضافة إلى ذلك، بمجرد النقر على مربع أو وسم داخل مربع، يتم تشغيل الاستعلام https://thepavilion.io/tags/intersection/tag1/tag2/tag3/.... يتم عرض النتيجة بنفس أسلوب المربعات (أو أي شيء نعتبره مناسبًا).
كما ترون، لا يزالُ لديّ عالق في نهج متعدد المستويات لأنه نفس القياس، عندما تكبّر من النطاق العالمي إلى المحلي. هذا هو مسار التنقل الأكثر طبيعية لأي مستخدم جديد للوصول إلى عقده المحلية.
أتمنى أن يثبت صحة قولك
لكن قد تكون هناك مخاوف من أن يصبح مستوى ما مكتظًا بعدد كبير جدًا من الوسوم. على سبيل المثال، يمكن أن يصبح وضع جميع مدن الولايات المتحدة أو الصين في الفئات الفرعية للصين والولايات المتحدة، على التوالي، أمرًا فوضويًا.
أتفق، ولكن على الرغم من أنني ربما
. ستساعد هذه العبارة في إزالة العاطفة من النهج العميق.
هل يمكنك شرح ذلك بمزيد من التفصيل أو هل هناك مثال متاح؟
هل تخصيص شريط التنقل هذا هو نفسه المطلوب في بداية هذا المنشور، المميز بـ [1]؟
لقد قمت بإنشاء نوع من النماذج الأولية التي تصور خارطة طريق محتملة، مفترضًا أن مستوى الدولة والمدن لا يمكن أن يعيش جنبًا إلى جنب بجعل كل منهما فئة فرعية للعقد المحلية.