| Riepilogo | Aggiungi un pulsante o del testo in qualsiasi punto | |
| Repository | https://github.com/literatecomputing/discourse-custom-components | |
| Guida all’installazione | Come installare un tema o un componente tema | |
| Nuovo ai temi di Discourse? | Guida per principianti all’utilizzo dei temi di Discourse |
Installa questo componente tema
Aggiunge un pulsante di collegamento o testo arbitrario in qualsiasi punto di inserimento del plugin. (Ignora le filigrane nelle immagini: ho fatto queste schermate su un sito di staging/test.)
Per vedere dove si trovano i punti di inserimento del plugin, usa Introducing Discourse developer toolbar per trovarli. Se non sai cos’è un punto di inserimento del plugin, puoi dare un’occhiata a Using Plugin Outlet Connectors from a Theme or Plugin, ma questo componente ti permette, con alcune restrizioni, di inserire testo in qualsiasi punto di inserimento del plugin senza programmare o capire veramente cos’è un punto di inserimento del plugin.
Ho iniziato a sviluppare questo plugin per qualcuno che voleva visualizzare un pulsante “clicca questo pulsante per iscriverti in modo da poter inviare messaggi privati” sui profili utente e sulle schede utente. Volevano che il pulsante venisse visualizzato se l’utente non poteva inviare messaggi privati. Poiché non sono sempre così intelligente come penso di essere, ho scritto il componente utilizzando i gruppi per determinare se il pulsante veniva visualizzato. Un problema con questo approccio era che i membri dello staff non erano nel gruppo degli iscritti, quindi vedevano il pulsante “devi iscriverti” anche se potevano inviare messaggi privati. Inoltre, il gruppo era nascosto, quindi era impossibile usarlo comunque in un componente tema. Ho riscritto quel componente tema per utilizzare currentUser.can_send_private_messages per determinare se visualizzare il pulsante.
Per chi è questo?
Se vuoi inserire un pulsante con un link o del testo arbitrario visualizzato o nascosto per determinati gruppi, questo ti permetterà di inserirli in qualsiasi punto di inserimento del plugin. Vuoi aggiungere un pulsante di collegamento “Devi iscriverti” tra ogni messaggio tranne quelli che non sono membri? Questo lo farà . Vuoi inserire dell’HTML arbitrario in un punto di inserimento del plugin, solo per vedere come apparirà ? Questo lo farà .
Come aiuta gli sviluppatori
Questo tema contiene alcuni semplici esempi su come:
- usare l’oggetto Objects type for theme setting
- usare
api.renderInOutlet(come descritto qui per inserire un componente Glimmer in un punto di inserimento controllato da un’impostazione anziché creare un file nella directoryconnectors - Scrivere un semplice componente Glimmer che accede a
currentUser - Avvolgere un componente in un altro template (inline) per potergli passare dati
- Visualizzare HTML arbitrario da un’impostazione del tema libero dai vincoli di Markdown–Certo, forse
ma se stai cercando di farlo all’interno di un <template> all’interno di un file .gjs, funziona in modo leggermente diverso (come {{htmlSafe component.text}})



