Ho recentemente riorganizzato il mio forum e ho iniziato a utilizzare i tag.
Una cosa con cui sto lottando (so che non è nativo, ma forse esiste un semplice plugin?) è che quando viene creato un nuovo argomento con il tag “sync1”, “sync2”, “sync3” o “sync4”, devo anche aggiungere il tag “apim”. Qualcuno sa come potrei fare?
Purtroppo le mie competenze in Ruby sono scarse.
Ho visto entrambi
e
ma non sono sicuro di come adattarlo per verificare semplicemente se uno di quei 4 tag è presente nell’argomento invece dei controlli che gli esempi hanno attualmente.
In pratica, se uno qualsiasi dei tag in Rosa esiste nell’argomento, anche il tag Verde dovrebbe essere aggiunto automaticamente.
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
Ti serve questo codice.
Modifica: puoi anche imporlo aggiungendo un gruppo di tag e impostando “apim” come tag padre. In tal caso, gli utenti potranno scegliere i tag “sync” solo dopo aver selezionato il tag padre “apim”.
Penso che sarebbe più utile se permettessimo agli utenti di selezionare prima i tag figlio, quindi aggiungeremo automaticamente il tag padre La maggior parte degli utenti finali non sarà a conoscenza dei requisiti del tag padre.
Eccellente, di solito cerco di capire queste cose da solo ma Ruby non è la mia specialità e avevo la sensazione che qualcuno avrebbe avuto un esempio in pochi minuti
Ora devo solo capire come aggiungerlo a un plugin, ma sono sicuro che è abbastanza semplice.
Concordo sul fatto che a volte selezionare un tag figlio che aggiunge un genitore potrebbe essere un risultato preferito.
Grazie per il tuo aiuto.
EDIT: plugin creato e funzionante come previsto, grazie mille per il tuo aiuto!