J’ai créé un plugin personnalisé pour inclure des champs supplémentaires pour les groupes. Mais ils ne s’appliquent qu’aux groupes dont le nom contient « chapter ». Il n’est donc pas logique de les avoir dans des groupes à d’autres fins. Existe-t-il un moyen de créer une condition qui vérifie par exemple if chapter in group.name; then chapter = true ?
J’ai ceci :
Je veux masquer le groupe de contrôle en haut si le nom du groupe ne contient pas le mot chapter. J’utilise déjà apparemment du Jinja2 d’après l’exemple que j’ai utilisé. Si cela ressemble à d’autres Jinja2, je peux certainement y créer une condition. Mais j’ai alors besoin de savoir quelques choses.
Si Jinja2 est entièrement disponible, comment puis-je accéder à la variable du nom du groupe pour créer la condition ?
Si Jinja2 n’est pas (entièrement) disponible, comment puis-je créer cette condition alors ? Probablement qu’un autre JavaScript devrait définir un booléen, je suppose. Mais la structure de ces variables de groupe et la logique JavaScript ne me sont pas connues, tout exemple serait excellent !
Oh attendez… Je vois soudainement quelques méthodes pour tester. Si Jinja2 fonctionne ici, alors en effet dans g.json le nom du groupe est visible et peut être utilisé pour une condition…
Et non, ça ne fonctionne pas. Et ce n’est pas Jinja2, ce sont des éléments spécifiques à Handlebars (mais je suppose que contains n’est pas une fonction native ?).
Mais ça ne fonctionne pas, j’obtiens un tas d’erreurs. Je n’utilise probablement pas le bon accès aux variables. Bien que remplacer group.name par simplement "chapter_netherlands" échoue également.
Erreur survenue :
- Lors du rendu :
-niveau supérieur
application
discourse-root
groupe
groupe.gestion
groupe.gestion.profil
champs-profil-formulaire-groupes
prise-de-raccordement-plugin
connecteur-plugin
Erreur non interceptée : Tentative de résolution de `contains`, qui était attendu comme un composant, mais rien n'a été trouvé.
Mais je ne vois pas vraiment de schéma dans cette structure de dossiers. J’ai créé ma propre fonction dans discourse-group-custom-fields/assets/javascripts/discourse/app/helpers/contains.js, mais quand j’essaie de l’utiliser dans discourse-group-custom-fields/assets/javascripts/discourse/connectors/group-edit/field-container.hbs, j’obtiens l’erreur Uncaught Error: Attempted to resolve "contains", which was expected to be a component, but nothing was found.. Donc, évidemment, ce n’est pas un chemin que Discourse recherche, ou je fais quelque chose de mal.
Le sujet ci-dessous suggère que cela pourrait être dans le répertoire des initializers et avoir l’extension es6.
J’ai donc déplacé mon fichier contains.js dans ce répertoire et ajouté .e6 comme extension, et j’ai obtenu la même erreur. Une aide ou de la documentation serait formidable