This is looking good @neil. One thing that would be good relating to this would be the simple option to ‘enable tags in category’ option in the category modal.
In my use case I only want tags (and specific tags at that) to be able to be used in specific categories. E.g. in those categories where I don’t want tags enabled I wouldn’t want the tag input field to be shown to users. Is this doable?
Another feature that would make sense related to this:
If tag filter is enabled, yet only certain categories have tags availble using the ‘Tags that can only be used in this category’ in category settings, I believe the homepage (both the main category, latest and top) pages should have the tag filter disabled by default.
I.e. only when digging down into the categories/sub-categories with tags allowed should the tag filter be shown (showing the respective tags available).
Otherwise from the homepage (whether that be categories or latest), you’ll get a whole bunch of tags in the filter, often without context as they only have context when filtered inside their respective categories.
أتفق بنسبة 100%. في مثالنا، لدينا قسم وثائقي مع مجموعة وسوم مخصصة. أريد إظهار قائمة الوسوم المنسدلة هنا، مع عرض الوسوم المخصصة فقط. وهذا يعمل.
لكنني لا أريد أن تكون نفس الوسوم متاحة في القائمة المنسدلة على مستوى “الأحدث” و"الأفضل" العام لكل الفئات. هذا يزيل ميزة تخصيص مجموعات الوسوم لفئات معينة، حسب رأيي، ويُسبب ارتباكًا على المستوى الرئيسي.
يجب أن تظهر فقط الوسوم العالمية غير المخصصة لأي مجموعة وسوم مرتبطة بفئة معينة في قائمة الوسوم المنسدلة على المستوى الرئيسي.
في منتداي الأول (المستورد)، كنت بحاجة إلى فئة إعلانات مبوبة.
بما أن Discourse لا يحتوي على شيء مثل “مجلد” يحتوي على فئات كما هو الحال في محركات أخرى مثل vbulletin أو phpbb، فقد كانت لدي ثلاث خيارات أساسية:
فئة إعلانات واحدة لكل من إعلانات “الشراء” و"البيع"، حيث يضيف المستخدمون بأنفسهم بادئة [شراء] أو [بيع] لعنوان الموضوع (مثل 2000…)
فئة إعلانات واحدة حيث يمكن للمستخدمين استخدام وسوم “شراء” أو “بيع”. هذا الخيار هو الأكثر ملاءمة على الإطلاق، لكننا لم نكن نستخدم الوسوم في أي فئة أخرى، وكان المستخدمون سيرون حقل الوسم في المحرر لأي فئة، مما قد يكون مربكًا.
وجود فئتي إعلانات في المستوى الأعلى: “شراء” و"بيع". هذا هو الخيار الذي اخترناه؛
أقوم الآن باستيراد منتدى آخر أكبر، ولدي نفس “المشكلة” تمامًا، باستثناء أنني سأحتاج إلى وسوم لفئتين بدلاً من واحدة: فئة إعلانات مبوبة، وفئة “لغات أخرى” تحتوي فقط على منشورات بلغات أجنبية ستستخدم وسمًا محددًا للغة التي كُتبت بها، مثل “العبرية”، “الدنماركية”، إلخ.
ومرة أخرى، لا نحتاج إلى وسوم لأي فئة أخرى.
أحتاج إلى محدد الوسوم في شريط تنقل قائمة المواضيع لكلتا الفئتين، ولكن ليس للفئات الأخرى.
يمكنني بسهولة إخفاؤه عند الحاجة باستخدام قليل من CSS، لكن المشكلة الرئيسية هي إدخال الوسم في المحرر، الذي لا يمكن عرضه أو إخفاؤه حسب الرغبة…
أعتقد أنه في هذه المرحلة، أفضل طريقة هي تجاوز طريقة tagValidation في المحرر.
في كل مرة يتم فيها اختيار فئة في المحرر، سيتم إخفاء أو إظهار إدخال الوسم بناءً على الفئة المحددة.
عندما يتم إخفاء حقول الوسوم، سيبدو الأمر كالتالي، مع وجود مساحة فارغة:
من الخطأ بشكل خاص في كود النواة الحالي إظهار مربع اختيار الوسوم عندما لا توجد وسوم ليقوم المستخدم باختيارها لفئة معينة. يحل الكود الأخير هذه المشكلة في تجربة المستخدم. ينبغي أن يكون هذا هو الوضع الافتراضي في النواة @team
بالإضافة إلى ذلك، يجب أن يكون هناك نصان قياسيان لقائمة الوسوم المنسدلة:
“وسوم اختيارية”
ونص آخر في حال كانت الوسوم إلزامية ( ومتاحة للمستخدم ) لفئة معينة
لا يزال مربع اختيار الوسوم يظهر مع عبارة “وسوم اختيارية” في المحرر لفئة تحتوي على مجموعة وسوم إلزامية، كما يظهر في الفئات التي لا تتوفر فيها وسوم للمستخدم في فئة أخرى. هذا الأمر مربك من منظور تجربة المستخدم، حيث يضطر المستخدم إلى النقر على نافذة الخطأ المنبثقة لفهم ما هو مطلوب.
من جهة، قد يكون تغيير موقع منتقي الفئات عند اختيار فئة بناءً على ما إذا كانت تتطلب وسومًا أمرًا خاطئًا من حيث تجربة المستخدم. ومن جهة أخرى، نادرًا ما نستخدم منتقي الفئات أكثر من مرة واحدة.
لستُ قلقًا جدًا بشأن إهدار المساحة، لكنني اكتشفتُ “مشكلة” أخرى في كود JS الجميل الخاص بك عمومًا. ربما يمكنك الاطلاع على هذا؟
لدينا مجموعات وسوم مخصصة “للطاقم فقط” (مثل الوسوم المخفية ووسوم النظام) ومجموعات وسوم إلزامية للمستخدمين حسب الفئة. وكلاهما مرتبطان عبر خيار “تقييد هذه المجموعات إلى هذه الفئة”.
الآن، يتحقق هذا الكود فقط مما إذا كانت الفئة تسمح بالوسوم أو إذا كان طول tag_groups أكبر من 0 أو إذا كان عدد allowed_tags أكبر من 0، لكن للأسف هذا صحيح دائمًا لأن لدينا مجموعات وسوم مخصصة للطاقم فقط ضمن المجموعات المقيدة أيضًا.
هل يمكن تعديل الكود ليأخذ في الاعتبار سياق المستخدم، وهل تتوفر وسوم فعلية لهذا المستخدم المحدد؟
يجب أن يكون من الممكن عدّ العناصر العامة فقط في مصفوفة category.allowed_tag_groups.length للمستخدمين غير المنتمين للطاقم (أو هل تتوفر في المصفوفة الأسماء فقط وليس الحالات؟):
في حالتنا، سنقوم بفحص الأسماء في allowed_tag_groups واستبعادها من المصفوفة إذا لم يكن currentUser من الطاقم. لكن هذا حل مؤقت غير نظيف، إذ لا أعرف كيف يمكن إضافة سياق المستخدم هنا (أو حتى إذا كان ذلك ممكنًا في ضوء كود النواة الحالي، لا أعتقد ذلك).
لكن هذا حيلة غير نظيفة؛ فالقائمة المنسدلة الكاملة للوسوم في المحرر يجب أن تكون أكثر سياقية عبر كود النواة، ويجب أن تأخذ في الاعتبار جميع الحالات المذكورة أعلاه.
أعتقد أن وظيفة مجموعات العلامات هذه الأيام تمنحك تجربة قريبة.
ستقوم بربط مجموعة علامات بمجموعة من الفئات ثم منع إنشاء علامات جديدة.
لست متأكدًا من pr-welcome هنا، وإزالته، يجب تحديد التغيير المطلوب بشكل صحيح. هذا أعتقد أنه يطلب مربع اختيار في إعدادات الفئة، ولكن حتى هذا يحتاج إلى الكثير من التفكير، هل هو محدد افتراضيًا، هل الإعداد الإضافي مربك ببساطة للكثير من الناس؟