Masquer certains paramètres de groupe si le nom du groupe inclut un nom spécifique

Je comprends et j’admets que je dois créer ces fonctions moi-même, ce n’est pas comme Jinja2 avec des choses intégrées utiles pour faire cela.

Mais où dois-je créer ces fonctions handlebars dans mon plugin ? Je vois pas mal d’exemples ici : Repository search results · GitHub

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.

import RawHandlebars from "discourse-common/lib/raw-handlebars";
import { htmlSafe } from "@ember/template";
import { rawConnectorsFor } from "discourse/lib/plugin-connectors";

//RawHandlebars.registerHelper("contains", function (args) {
//  const connectors = rawConnectorsFor(args.hash.name);
//  if (connectors.length) {
//    const output = connectors.map((c) => c.template({ context: this }));
//    return htmlSafe(output.join(""));
//  }
//});


Handlebars.registerHelper('contains', function(needle, haystack, options) {
     needle = Handlebars.escapeExpression(needle);
     haystack = Handlebars.escapeExpression(haystack);
     return (haystack.indexOf(needle) > -1) ? options.fn(this) : options.inverse(this);
});

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 :slight_smile: