الحاجة إلى إضافة علامة عندما توجد أي من العلامات الأربع الأخرى في الموضوع

مرحباً بالجميع،

لقد قمت ببعض إعادة الهيكلة في منتداي مؤخرًا وبدأت في استخدام العلامات.

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

مهاراتي في لغة Ruby للأسف ضعيفة.
لقد رأيت كل من

و

ولكنني لست متأكدًا من كيفية تكييف ذلك للتحقق ببساطة مما إذا كانت أي من هذه العلامات الأربع موجودة في الموضوع بدلاً من عمليات التحقق التي تقوم بها الأمثلة حاليًا.

بشكل أساسي، إذا كانت أي من العلامات الموجودة في اللون الوردي موجودة في الموضوع، فيجب إضافة العلامة الخضراء تلقائيًا.

DiscourseEvent.on(:topic_created) do |topic|
  guardian = Guardian.new(Discourse.system_user)
  required_tag_names = [”sync1”, “sync2”, “sync3”, “sync4”]
  DiscourseTagging.tag_topic_by_names(topic, guardian, ["apim"], append: true) if topic.tags.exists?(name: required_tag_names)
end

أنت بحاجة إلى هذا :arrow_up: الكود.

تعديل: يمكنك أيضًا فرضه عن طريق إضافة مجموعة علامات وتعيين “apim” كعلامة رئيسية. في هذه الحالة، يمكن للمستخدمين اختيار علامات “sync” فقط بعد تحديد العلامة الرئيسية “apim”.


أعتقد أنه سيكون أكثر فائدة إذا سمحنا للمستخدمين بتحديد العلامات الفرعية أولاً ثم نضيف العلامة الرئيسية تلقائيًا :person_shrugging: معظم المستخدمين النهائيين لن يعرفوا عن متطلبات العلامة الرئيسية.

إعجابَين (2)

ممتاز، عادةً ما أحاول حل هذه الأمور بنفسي ولكن لغة روبي ليست تخصصي وكان لدي شعور بأن شخصًا ما سيقدم مثالًا في غضون دقائق :slight_smile:

الآن أحتاج فقط إلى معرفة كيفية إضافة ذلك إلى إضافة (plugin)، لكنني متأكد من أنها بسيطة جدًا.

أتفق على أنه في بعض الأحيان قد يكون اختيار علامة فرعية تضيف علامة أصلية نتيجة مفضلة.

شكرًا لمساعدتك.

تعديل: تم إنشاء الإضافة (plugin) وهي تعمل كما هو مقصود، شكرًا جزيلاً لمساعدتك!

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

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