Bonjour ! Ceci est principalement une question pour @angus, mais si quelqu’un a des suggestions, je lui en serais très reconnaissant !
J’avais travaillé sur une variation du plugin Topic Custom Field de @angus et cela fonctionnait comme je le souhaitais dans mon instance Discourse hébergée localement (version 3.4.0.beta3-dev). Une fois que je l’ai installé sur notre instance Discourse déployée (également version 3.4.0.beta3-dev), quelque chose d’étrange se produit. Lorsqu’un utilisateur écrit un nouveau message et saisit une valeur dans le champ personnalisé, celle-ci n’est pas enregistrée ni rendue lorsque l’utilisateur publie le message. MAIS si l’utilisateur modifie le message et y ajoute ensuite la valeur, elle est enregistrée et rendue. Cela me suggère que cela pose problème quelque part dans les connecteurs (vraisemblablement le connecteur composer), mais je n’arrive pas à comprendre pourquoi, car cela fonctionne parfaitement dans mon instance locale. J’ai des expressions régulières qui filtrent les entrées, cela pourrait-il être le coupable ? Toutes suggestions sont grandement appréciées. Merci !
Il est difficile de déboguer cela de manière abstraite, je vais donc vous donner quelques conseils à la place. La clé pour trouver la réponse à tout problème de ce type est la concentration et le processus d’élimination. Commencez par déterminer pourquoi vous pouvez reproduire le problème en production mais pas en développement.
Les plugins et les thèmes sont-ils exactement les mêmes en production et en développement ?
Utilisez-vous le même type d’utilisateur (admin, mod, etc.) ?
Effectuez-vous les actions dans le même type de sujet ?
Effectuez-vous les actions à la même vitesse ?
Commencez par faire tout ce que vous pouvez pour essayer de reproduire le problème en développement, s’il y a effectivement un problème. Concentrez-vous sur cela jusqu’à ce que vous obteniez des résultats ou que vous compreniez pourquoi c’est différent en production.
De plus, une partie de la raison pour laquelle le plugin Topic Custom Fields n’est pas destiné à une utilisation en production est qu’il n’a pas de tests. Je sais que vous n’allez pas aimer entendre cela, mais vous devriez écrire des tests d’acceptation pour le comportement du compositeur. Cela vous donnera une réponse définitive quant à savoir s’il fonctionne dans des scénarios particuliers ou non.
Je ne suis pas sûr que cela aide, mais il semble que le problème pourrait être que le champ personnalisé n’est pas configuré correctement lors de la création d’un article.
Assurez-vous d’attribuer une valeur par défaut au champ lorsque le compositeur s’ouvre.
Vous pourriez également essayer de désactiver temporairement votre filtre regex pour vérifier s’il cause des problèmes de validation. Enfin, vérifiez que le champ personnalisé est bien inclus dans les données envoyées lors de la sauvegarde initiale.