Besoin d'ajouter une balise quand l'une des 4 autres balises existe sur le sujet

Salut à tous,

J’ai récemment restructuré mon forum et j’ai commencé à utiliser des tags.

Une chose avec laquelle j’ai du mal (je sais que ce n’est pas natif, mais peut-être qu’un plugin simple existe ?) est que lorsqu’un nouveau sujet est créé avec le tag “sync1”, “sync2”, “sync3” ou “sync4”, je dois également ajouter le tag “apim”. Quelqu’un sait comment je pourrais faire cela ?

Mes compétences en Ruby font malheureusement défaut.
J’ai vu à la fois

et

mais je ne suis pas sûr de la façon dont je peux adapter cela pour simplement vérifier si l’un de ces 4 tags est présent dans le sujet au lieu des vérifications que les exemples ont actuellement.

En gros, si l’un des tags en rose existe dans le sujet, le tag vert devrait également être ajouté automatiquement.

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

Vous avez besoin de ce code :arrow_up:.

Modification : Vous pouvez également l’imposer en ajoutant un groupe d’étiquettes et en définissant “apim” comme étiquette parente. Dans ce cas, les utilisateurs ne pourront choisir les étiquettes “sync” qu’après avoir sélectionné l’étiquette parente “apim”.


Je pense qu’il serait plus utile si nous permettions aux utilisateurs de sélectionner d’abord les étiquettes enfants, puis d’ajouter automatiquement l’étiquette parente :person_shrugging: La plupart des utilisateurs finaux ne connaîtront pas les exigences de l’étiquette parente.

2 « J'aime »

Excellent, d’habitude j’essaie de résoudre ces problèmes moi-même, mais Ruby n’est pas ma spécialité et j’avais le sentiment que quelqu’un aurait un exemple en quelques minutes :slight_smile:

Maintenant, il me suffit de comprendre comment ajouter cela à un plugin, mais je suis sûr que c’est assez simple.

Je suis d’accord que parfois, sélectionner une balise enfant qui ajoute un parent pourrait être un résultat préférable.

Merci pour votre aide.

EDIT : plugin créé et fonctionnel comme prévu, merci beaucoup pour votre aide !

1 « J'aime »

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