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 ?

1 « J'aime »

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.

2 « J'aime »

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.

4 « J'aime »

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

1 « J'aime »

Probablement aussi. Il suffit de regarder les exemples.

1 « J'aime »

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.
2 « J'aime »

Aurais-je à utiliser

import Component from "@glimmer/component";

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

alors ?

1 « J'aime »

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

1 « J'aime »

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.

1 « J'aime »

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 ?

1 « J'aime »

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.

2 « J'aime »

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 :

3 « J'aime »

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.

1 « J'aime »

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.

6 « J'aime »

Merci beaucoup ! Ça marche maintenant !

1 « J'aime »

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:

2 « J'aime »

Merci pour vos encouragements !

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.