Paramètres qui n'apparaissent pas

Salut tout le monde, je commence à développer des choses pour Discourse, et je travaille sur un composant de thème.
Lien : GitHub - NateDhaliwal/discourse-persistent-banner: A theme component for Discourse that cannot be closed by the user.

Lorsque je le mets sur Theme Creator, les paramètres n’apparaissent pas, même si j’ai un settings.yml. Des idées ?

Voyez-vous des messages d’erreur dans le créateur de thème ?

Je pense que vous devez utiliser les mêmes guillemets au début et à la fin.

Cela pourrait aussi être un problème. J’essaierais default: "".

Peut-être que vous voulez ajouter “block” aux choix. Sinon, vous devrez utiliser le bouton d’annulation pour le choisir à nouveau.

Oups, je viens de réaliser que je cliquais sur « Créer nouveau » au lieu d’importer…\nMais maintenant, lorsque j’essaie d’utiliser l’URL, il est indiqué que about.json est invalide ou n’existe pas, me demandant si c’est un thème.\nAbout.json :\nhttps://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/about.json\n\nY a-t-il quelque chose qui ne va pas ?

Virgule manquante après l’URL de la licence.

:roll_eyes:
@merefield La version serait entre \"\" ?

Probablement aussi. Il suffit de regarder les exemples.

Merci ! Une dernière chose, je n’arrive pas à afficher la variable.
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/common/header.html

Est-ce parce que je ne l’ai pas initialisée correctement ? J’ai essayé de suivre le guide…

  1. n’utilisez pas « header.html », utilisez un composant approprié (de préférence un fichier .gjs, mais .hbs pourrait suffire).
  2. utilisez l’helper html-safe chaque fois que vous affichez du HTML à partir de paramètres ou de variables.

Aurais-je à utiliser

import Component from "@glimmer/component";

export default class PracticeComponent extends Component {
  get bannerLinks() {
    return JSON.parse(settings.banner_links);
  }
}

alors ?

Regardez les milliards d’exemples :langue_tirée_clin_d’œil:

Vous n’avez besoin d’utiliser un fichier gjs que si vous devez traiter des éléments avec JavaScript, sinon un fichier de modèle hbs pourrait suffire. Expérimentez.

Je ne suis pas sûr d’être dans la bonne direction.
J’ai créé javascripts/persistent-banner.hbs avec ceci :
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/javascripts/persistent-banner.hbs

Mais rien ne s’affiche. J’ai essayé de le mettre à différents endroits, ça ne fonctionne toujours pas.

J’ai essayé de regarder des exemples, mais beaucoup ne semblent pas aider.
Des conseils ?

Dans quel point d’extension de plugin souhaitez-vous placer votre bannière ?
Jetez un œil à Using Plugin Outlet Connectors from a Theme or Plugin

Vous pourriez utiliser https://meta.discourse.org/t/add-a-featured-topic-list-to-your-discourse-homepage/132949?u=moin comme exemple

Vous pouvez utiliser le (deprecated) Plugin outlet locations theme component pour trouver les noms et les emplacements des points d’extension de plugin. « above-main-container », par exemple, est le plus haut au-dessus de la liste des sujets, mais pas au-dessus de la barre latérale.

Examiner le code d’un Theme component qui ajoute quelque chose de similaire est également un excellent moyen d’apprendre.

Vous n’avez pas besoin et ne devriez pas mettre de balises script dans les fichiers hbs. Elles doivent être limitées au contenu du modèle.

Ne tâtonnez pas, lisez les guides :

Alors… j’ai réussi à le faire fonctionner sans utiliser de fichier hbs, mais en utilisant plutôt la balise <script> avec handlebars, et cela fonctionne maintenant.
Je l’utilise comme ceci pour l’instant, mais je continuerai à essayer d’utiliser un fichier hbs à la place.

J’ai créé une pull request rapide pour que vous puissiez voir comment diviser correctement les fichiers. N’hésitez pas à fusionner ou simplement à jeter un œil à la branche.

Merci beaucoup ! Ça marche maintenant !

Pas de souci Nate. Continue d’expérimenter, de lire et de regarder d’autres exemples. En un rien de temps, tu seras bien meilleur que moi dans ce domaine du développement :smiley: :raised_hands:

Merci pour vos encouragements !