Come aggiungo post di argomenti annidati sotto elementi di elenco di argomenti ospitati su discourse.org? cioè Elenco di argomenti come feed

Ciao a tutti,

Questa settimana abbiamo iniziato il nostro primo sprint per personalizzare il tema di Discourse. Sapevamo che avremmo dovuto modificare un numero considerevole di file, dato che i nostri design sono piuttosto diversi dai temi standard di Discourse.

Il nostro approccio è molto semplice: cercare di ottenere ciò di cui abbiamo bisogno utilizzando solo SASS e, laddove necessario, sovrascrivere i rispettivi file .hbs/.hbr. Sappiamo che quest’ultima opzione introduce un certo rischio di manutenzione aggiuntiva (se gli attributi passati alla vista vengono rinominati o rimossi, i nostri template si romperanno). Abbiamo valutato il rischio che ciò accada rispetto alla necessità di mantenere la nostra infrastruttura e abbiamo concluso che l’hosting su discourse.org offre più valore al nostro cliente no-profit. Intendiamo aggiungere del codice di monitoraggio al sito e predisporre un piano di risposta per quando ciò accadrà; inoltre, pensiamo che, nel caso accadesse, sarebbe molto probabilmente una correzione semplice da apportare.

Veniamo ora al cuore di questo post. Dobbiamo capire come trasformare la visualizzazione dell’elenco degli argomenti in un’esperienza simile a un feed. Cioè, sotto ogni argomento, i post di risposta devono essere renderizzati come commenti.

Ecco un’immagine di ciò che dobbiamo costruire (attualmente mostra solo 1 commento per argomento; in alcuni casi dovremo mostrarne di più):

Dove ci troviamo

@iainbamboo si è immerso nell’analisi per capire:

  1. I dati dei post sono già disponibili nell’elenco degli argomenti e dobbiamo solo modificare il template? → No, non lo sono.
  2. Come possiamo aggiungere i dati dei post di ogni argomento all’elenco, in modo da poterli renderizzare nel template?
    1. È questo l’approccio corretto?
    2. Dobbiamo modificare il codice Ruby per aggiungerlo al modello inviato (eventualmente come plugin), seguendo linee simili a quelle di Discourse Timeline? Se creiamo un plugin, possiamo utilizzarlo su discourse.org?
    3. Possiamo recuperare i dati da Ember accettando il rallentamento delle cariche, poiché verranno effettuate diverse richieste AJAX al server per ottenere i post di ogni argomento (con il rischio di superare i limiti di velocità)?
    4. È possibile farlo senza modificare il codice Ruby?

Dopo aver esaminato a fondo la questione, leggendo le guide per gli sviluppatori di Discourse e analizzando il codice sorgente, abbiamo concluso che abbiamo bisogno di un parere esperto sulla migliore strategia da adottare.

Ed eccoci qui :slight_smile:

Iniziare a farlo nel front-end di un tema ti porterebbe a riscontrare ogni sorta di problemi di prestazioni e limiti di richieste… forse qualcuno più esperto del back-end può intervenire, ma credo che dovrai sicuramente creare un plugin.

8 Mi Piace