Quando usare un plugin vs componente tema?

Devo apportare piccole modifiche ad alcune viste:
Ad esempio:

Devo creare un plugin per ogni modifica? Anche se è molto piccola, come solo CSS?
Grazie per il tuo aiuto.

1 Mi Piace

No, i plugin sono richiesti solo se si intende modificare il back-end.

Se si tratta solo di una modifica locale, è possibile andare su Admin → Personalizza → Tema e inserire le modifiche in un nuovo Componente Tema, quindi aggiungerlo al Tema corrente.

Dai un’occhiata a https://meta.discourse.org/c/documentation/theme-developers/127, in particolare:

8 Mi Piace

Grazie!
Quindi, se ho bisogno di cambiare un’etichetta o aggiungere un tooltip, devo creare un tema, ma se ho bisogno di aggiungere una nuova colonna a una pagina (ad esempio, l’elenco degli argomenti), devo creare un plugin?

La distinzione è questa:

  • Se è necessario modificare l’API, ad esempio dati nel percorso .json, modifiche all’autorizzazione, elaborazione dei dati back-end, è necessario un plugin
  • Per molte modifiche al front-end che non richiedono dati diversi, è sufficiente un TC. Ad esempio, molte modifiche di presentazione o qualsiasi logica in JavaScript che non sia sensibile.
5 Mi Piace

E un’area grigia (che qui non si applica, credo) è se hai bisogno di dati non disponibili (come i campi personalizzati dell’utente) potresti usare AJAX per recuperare quei dati con javascript quando ne hai bisogno, o avere un plugin che aggiunge i dati al serializzatore.

5 Mi Piace

Ok, grazie. Nella guida non capisco come posso configurare e importare un TC localmente, c’è solo un esempio per uno remoto.

Ti suggerirei di usare questo fantastico strumento per creare facilmente TC localmente:

2 Mi Piace

A meno che tu non abbia una modifica CSS molto piccola, ti consiglio di utilizzare un tema remoto o lo strumento CLI.

Ma se fai clic su “installa tema”, la finestra di dialogo ti consentirà di creare un tema (o un componente del tema se lo fai nella pagina del componente).

all’interno dell’elenco degli argomenti della categoria devo aggiungere una nuova colonna con la colonna “created_at” e cambiare la data da “tiny” a estesa (ad es.: GG/MM/AAAA HH:MM)

Se vuoi aggiungere nuove funzionalità a un modello, inizierei con GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes, ma non so come aggiungere una colonna lì. Immagino che ci sia un po’ di magia JavaScript che potresti fare, ma non è il mio campo.

Sai che puoi vedere quelle informazioni passando il mouse sopra, giusto?

Vedi anche Plugin outlet locations theme component, ma non c’è nessun plugin outlet lì.

2 Mi Piace

Hai queste prese per plugin: topic-list-after-columns e topic-list-header-after.

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/list/topic-list-item.hbr#L90

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/topic-list-header.hbr#L27

Buona osservazione. Sembrava sbagliato che non ci fosse un’uscita lì. Immagino che il componente del tema semplicemente non la mostri.

1 Mi Piace

Il componente del tema delle posizioni delle uscite dei plugin al momento non mostra le uscite grezze.

Questo componente del tema mostra come aggiungere una colonna GitHub - discourse/discourse-add-category-column

3 Mi Piace