Je rencontre le même problème, et cela affecte également d’autres plugins, comme Locations et Private Topics. Le message « Vous avez des modifications non enregistrées » avec l’option d’enregistrer n’apparaît tout simplement pas. Même lorsque je modifie autre chose, les paramètres ne sont pas enregistrés.
Peut-être que cela relève de Development, puisque les plugins officiels ne semblent pas affectés, mais d’un autre côté, cela a commencé après une mise à jour de Discourse. Cela affecte également deux plugins officiels (calendar et restricted replies).
Oui, c’est spécifiquement un problème lié à FormKit lorsque enable_simplified_category_creation est activé. Les plugins devront migrer pour utiliser FormKit et la nouvelle structure de données.
Un exemple fonctionnel de cette migration est disponible dans l’un de nos plugins principaux, qui a été migré ici :
Vous pouvez voir comment la structure du formulaire se branche avec {{#if this.siteSettings.enable_simplified_category_creation}} et comment le formulaire est structuré en utilisant FormKit et les données de @outletArgs.form. L’ancienne structure de formulaire reste toujours après {{else}} pour assurer la compatibilité avec les anciennes versions.
Habituellement, je suis assez détendu lorsque je dois mettre à jour des plugins en raison de modifications du noyau, et je suis satisfait de la façon dont les développeurs sont guidés. Cependant, je pense que l’équipe de Discourse a vraiment raté son coup ici.
Il n’y a eu aucune annonce (du moins, je ne peux pas en trouver, et @moin ne me l’a pas signalée (encore) )
Aucune tentative n’a été faite pour atténuer cela avec du code générique dans le noyau
Il n’y a même pas d’avertissement dans la console de développement du navigateur
Les choses ont simplement cessé de fonctionner.
Un rapide examen, probablement même pas exhaustif, montre que cela a cassé AU MOINS les plugins suivants :
C’est vrai ! Nous aurions dû avertir de ce changement au fur et à mesure de son avancement via notre fonctionnalité des changements à venir — c’est un nouveau processus pour nous et nous allons régler cela. Pour l’instant, enabled_simplified_category_creation peut être désactivé depuis /admin/config/upcoming-changes pour restaurer toutes les fonctionnalités existantes du plugin.
Nous avions à la fois Simplified category setup et le changement à venir dans l’interface d’administration (et probablement un article « Quoi de neuf » aussi) :
Vous auriez dû recevoir des notifications concernant ce changement à la fois lorsqu’il est apparu sur votre site et lorsqu’il a été activé automatiquement, ce qui s’est probablement produit cette semaine seulement, lorsque le changement a été promu au statut Stable.
Comme l’a dit Kris, l’atténuation réside dans le changement à venir dans le cœur du système, ce qui vous laisse le temps de migrer vos éléments :
Quoi d’autre vous aurait aidé dans ce cas ? Nous pourrions ajouter quelques détails supplémentaires dans le sujet lié au changement à venir, en précisant ce que les développeurs doivent faire pour se préparer.
En ce qui concerne les avertissements aux développeurs, je peux consulter l’équipe dev-xp pour voir s’il y a quelque chose de mieux que nous puissions faire la prochaine fois.
Oui, j’ai bien reçu ces notifications le 3 février.
Mais à ce moment-là, le changement concernant le bouton d’enregistrement flottant n’avait pas encore été implémenté (cela a eu lieu fin février, je crois). Il n’y a pas eu de mise à jour supplémentaire dans ce sujet ou ailleurs pour refléter ces modifications.
N’importe laquelle de ces options :
une annonce technique opportune destinée aux développeurs de plugins
un retour automatique temporaire vers l’ancienne logique (comme cela a été fait pour la liste des sujets : dès qu’il y avait du code de plugin hérité, le système basculait automatiquement)
un code de repli temporaire permettant de maintenir le fonctionnement des fonctionnalités héritées (détecter les champs de saisie en dehors des formulaires et les inclure dans les paramètres à enregistrer). Cela aurait également pu vous éviter l’effort de toutes ces branches {{#if this.siteSettings.enable_simplified_category_creation}}.
des avertissements dans la console de développement du navigateur lorsque du code hérité est détecté
une analyse statique des plugins connus, comme je l’ai fait hier (cela m’a pris 10 minutes et j’ai même découvert certains plugins officiels qui avaient été négligés ;))