Ho apportato modifiche all’applicazione discourse in cui voglio mostrare argomenti in base al numero di risposte, ho creato una query rails ma non riesco a trovare la parte della vista, dove devo mostrarla e aggiungere questo scope.
Se vuoi cambiare il modo in cui Discourse si comporta, dovrai consultare Sviluppare plugin per Discourse - Parte 1 - Creare un plugin di base o forse Guida per principianti allo sviluppo di temi per Discourse.
Non voglio creare un nuovo plugin, voglio solo cambiare le query di categoria e argomento dal backend e mostrarle nella vista, ma non riesco a capire dove vengono mostrati i collegamenti all’elenco degli argomenti.
C’è un’impostazione di categoria che potrebbe funzionare per questo:
Se è necessario modificare il codice, è necessario apportare le modifiche in un plugin. Apportare modifiche al codice principale causerà problemi in futuro.
Va bene Simon, grazie
Penso che mi aiuterà
Voglio ordinare questi link sul lato destro degli argomenti per una particolare categoria in base al numero più alto di argomenti, sarà necessario apportare modifiche sul lato backend, giusto?
Non credo che sia necessario modificare il codice per questo, ma potrebbe essere necessario eseguire un comando dalla console rails del tuo sito per visualizzare gli argomenti nel nuovo ordine sulla homepage del tuo sito.
Quando selezioni “Categorie con argomenti in primo piano” per l’impostazione del sito Stile della pagina della categoria desktop, l’ordine in cui vengono visualizzati gli argomenti in primo piano dovrebbe essere impostato dal valore dell’impostazione “Ordina elenco argomenti” di ciascuna categoria. Sfortunatamente, se apporti una modifica all’impostazione “Ordina elenco argomenti” di una categoria, tale modifica non viene immediatamente visualizzata sulla homepage del sito. Non sono sicuro di dove Discourse memorizzi nella cache gli argomenti in primo piano visualizzati nella home o quale azione venga utilizzata da Discourse per invalidare la cache.
Dai test sul mio sito, vedo che la cache può essere invalidata eseguendo quanto segue dalla console rails:
# Assegna la categoria per cui vuoi correggere i risultati a una variabile, ad esempio:
c = Category.find(42)
# Quindi esegui
CategoryFeaturedTopic.feature_topics_for(c)
Dopo aver eseguito questo, gli argomenti dovrebbero essere visualizzati sulla homepage nell’ordine selezionato per l’impostazione “Ordina elenco argomenti” della categoria. Non credo che l’esecuzione di quel comando possa causare problemi, ma fai sempre attenzione quando esegui comandi dalla console rails.
Sono sicuro che esista un modo più semplice per farlo. Forse devi solo aspettare fino a 24 ore affinché Discourse invalidi la cache del vecchio elenco di argomenti in primo piano. Non vedo dove nel codice venga invalidata la cache. Il codice pertinente sembra essere qui: discourse/app/models/category_featured_topic.rb at main · discourse/discourse · GitHub.
Ho eseguito quella query, ma il problema principale è dove vengono visualizzati questi argomenti in primo piano sulla home page, in quale file .html è presente il codice per mostrare questi dati nell’interfaccia utente.
Ho già creato le query per i dati che devo ordinare, ma il problema è dove inserire la query in quale modello.

