Come sostituire/sovrascrivere il template della homepage

Vorrei configurare diverse homepage personalizzate per utenti loggati e non loggati. Sebbene sappia che questo può essere implementato utilizzando JavaScript, sono interessato a sapere se può essere ottenuto anche tramite un componente o plugin di Discourse.

Ho trovato il componente User-specific Discourse home page, che consente di creare una nuova route e aggiungere un template, ma preferirei non utilizzare quell’approccio.

Se ci sono suggerimenti alternativi o best practice consigliate, apprezzerei molto la vostra guida.

Un componente di discourse è scritto in JavaScript :wink:

C’è il supporto per una home page personalizzata per gli sviluppatori e potresti differenziare tra questi tipi di utenti.

Grazie per la tua risposta. Ho provato l’approccio menzionato nel repository di GitHub aggiungendo \"custom-homepage\": true al file about.json del mio tema, ma non sembra funzionare. Potresti confermare se questo è il metodo corretto?

Suggerisco di aprire un argomento in Dev

Se stai lottando, considera di assumere uno sviluppatore esperto di Discourse in Marketplace

È il metodo corretto, hai seguito tutti i passaggi? dopo aver aggiunto

  "modifiers": {
    "custom_homepage": "true"
  }

e abilitato il tuo tema, vedi questa come la tua homepage?

Sì, ho seguito i passaggi indicati nella discussione. Nello specifico, ho prima aggiunto \"custom-homepage\": \"true\" nei modificatori, e poi ho creato un componente in javascripts/discourse/connectors/custom-homepage/home.gjs.

vedi ancora la homepage predefinita? o vedi una homepage vuota? ci sono errori nella console?

Sì, vedo la mia homepage predefinita e nessun errore nella console

Potrebbe essere necessario modificare questa impostazione:

image

nelle preferenze

Ora ho capito, devo impostare la Home Page predefinita su predefinita, poi ha funzionato.

Grazie per la tua risposta

Grazie per la tua risposta, ha funzionato, dovevo solo impostare l’impostazione della Home Page predefinita su predefinita.