لقد قمت ببعض إعادة الهيكلة في منتداي مؤخرًا وبدأت في استخدام العلامات.
أحد الأشياء التي أواجه صعوبة فيها (أعلم أنها ليست ميزة أصلية، ولكن ربما توجد إضافة بسيطة؟) هو عندما يتم إنشاء موضوع جديد بالعلامة “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
أنت بحاجة إلى هذا الكود.
تعديل: يمكنك أيضًا فرضه عن طريق إضافة مجموعة علامات وتعيين “apim” كعلامة رئيسية. في هذه الحالة، يمكن للمستخدمين اختيار علامات “sync” فقط بعد تحديد العلامة الرئيسية “apim”.
أعتقد أنه سيكون أكثر فائدة إذا سمحنا للمستخدمين بتحديد العلامات الفرعية أولاً ثم نضيف العلامة الرئيسية تلقائيًا معظم المستخدمين النهائيين لن يعرفوا عن متطلبات العلامة الرئيسية.