He hecho algunos cambios en mi foro recientemente y he empezado a usar etiquetas.
Una cosa con la que estoy luchando (sé que no es nativo, pero ¿quizás existe un plugin simple?) es que cuando se crea un nuevo tema con la etiqueta “sync1”, “sync2”, “sync3” o “sync4”, también necesito añadir la etiqueta “apim”. ¿Alguien sabe cómo podría hacer esto?
Lamentablemente, mis habilidades en Ruby son limitadas.
He visto ambos:
y
pero no estoy seguro de cómo puedo adaptar esto para simplemente comprobar si alguna de esas 4 etiquetas está en el tema en lugar de las comprobaciones que tienen los ejemplos actuales.
Básicamente, si alguna de las etiquetas en Rosa existe en el tema, la etiqueta Verde también debería añadirse automáticamente.
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
Necesitas este código.
Editar: También puedes forzarlo agregando un grupo de etiquetas y estableciendo “apim” como la etiqueta principal. En ese caso, los usuarios solo podrán elegir las etiquetas “sync” después de seleccionar la etiqueta principal “apim”.
Creo que sería más útil si permitiéramos a los usuarios seleccionar primero las etiquetas secundarias y luego agregamos la etiqueta principal automáticamente La mayoría de los usuarios finales no sabrán sobre los requisitos de la etiqueta principal.
Excelente, normalmente intento resolver estas cosas yo mismo, pero Ruby no es mi especialidad y tenía la sensación de que alguien tendría un ejemplo en cuestión de minutos
Ahora solo necesito averiguar cómo agregar eso a un plugin, pero estoy seguro de que es bastante simple.
Estoy de acuerdo en que a veces seleccionar una etiqueta secundaria que agrega una principal podría ser un resultado preferido.
Gracias por tu ayuda.
EDITAR: plugin creado y funcionando según lo previsto, ¡muchas gracias por tu ayuda!