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?

1 Mi Piace

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.

2 Mi Piace

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.

4 Mi Piace

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

1 Mi Piace

Probabilmente anche quello. Guarda solo gli esempi.

1 Mi Piace

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.
2 Mi Piace

Dovrei usare allora

import Component from "@glimmer/component";

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

allora?

1 Mi Piace

Guarda i miliardi di esempi :stuck_out_tongue_winking_eye:

1 Mi Piace

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

1 Mi Piace

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?

1 Mi Piace

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.

2 Mi Piace

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:

3 Mi Piace

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.

1 Mi Piace

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.

6 Mi Piace

Grazie mille! Ora funziona!

1 Mi Piace

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:

2 Mi Piace

Grazie per l’incoraggiamento!

1 Mi Piace

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