Impostazioni non visualizzate

Ciao a tutti, sto iniziando a sviluppare per Discourse e sto lavorando su un componente del tema.
Link: GitHub - NateDhaliwal/discourse-persistent-banner: A theme component for Discourse that cannot be closed by the user.

Quando lo metto su Theme Creator, le impostazioni non appaiono, anche se ho un settings.yml. Qualche idea?

Vedi messaggi di errore nel creatore del tema?

Penso che tu debba usare le stesse virgolette all’inizio e alla fine.

Anche questo potrebbe essere un problema. Proverei default: "".

Forse vuoi aggiungere “block” alle scelte. Altrimenti dovrai usare il pulsante di ripristino per sceglierlo di nuovo.

Oops, mi sono appena reso conto che stavo cliccando su ‘Crea nuovo’ invece di importarlo…
Ma ora, quando provo a usare l’URL, dice che about.json non è valido o non esiste, chiedendomi se è un tema.
About.json:

C’è qualcosa che non va?

Manca una virgola dopo l’URL della licenza.

:roll_eyes:
@merefield La versione sarebbe tra \"\"?

Probabilmente anche quello. Guarda solo gli esempi.

Grazie! Un’ultima cosa, non riesco a visualizzare la variabile.
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/common/header.html

È stato perché non l’ho inizializzata correttamente? Ho provato a seguire la guida…

  1. non usare “header.html”, usa un componente appropriato (preferibilmente un file .gjs, ma anche .hbs potrebbe andare bene).
  2. usa l’helper html-safe ogni volta che visualizzi html da impostazioni o variabili.

Dovrei usare allora

import Component from "@glimmer/component";

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

allora?

Guarda i miliardi di esempi :stuck_out_tongue_winking_eye:

È necessario utilizzare un file gjs solo se è necessario elaborare elementi con javascript, altrimenti potrebbe essere sufficiente un file modello hbs. Sperimenta.

Non sono sicuro di essere nella direzione giusta.
Ho creato javascripts/persistent-banner.hbs con questo:
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/javascripts/persistent-banner.hbs

Ma non appare nulla. Ho provato a metterlo in posti diversi, ma non funziona ancora.

Ho provato a guardare esempi, ma molti non sembrano aiutare.
Qualche consiglio?

In quale plugin outlet vuoi inserire il tuo banner?
Dai un’occhiata a Using Plugin Outlet Connectors from a Theme or Plugin

Potresti usare https://meta.discourse.org/t/add-a-featured-topic-list-to-your-discourse-homepage/132949?u=moin come esempio

Puoi usare il (deprecated) Plugin outlet locations theme component per trovare i nomi e le posizioni degli outlet dei plugin. “above-main-container” ad esempio è quello in alto sopra la lista degli argomenti, ma non sopra la barra laterale.

Guardare il codice di un Theme component che aggiunge qualcosa di simile è anche un ottimo modo per imparare.

Non è necessario e non si dovrebbero inserire tag script nei file hbs. Dovrebbero essere limitati al contenuto del template.

Non tirare a indovinare, leggi le guide:

Quindi… sono riuscito a farlo funzionare senza usare un file hbs, ma usando invece il tag <script> con handlebars, e ora funziona.
Per ora lo uso cosÏ, ma continuerò a provare a usare un file hbs invece.

Ho creato una pull request veloce per te in modo che tu possa vedere il modo corretto di dividere i file. sentiti libero di unire o semplicemente dare un’occhiata al branch.

Grazie mille! Ora funziona!

Non preoccuparti Nate. Continua a sperimentare, leggere e guardare altri esempi. In men che non si dica sarai molto piĂš bravo di me in queste cose di sviluppo :smiley: :raised_hands:

Grazie per l’incoraggiamento!