Cambia l'elenco argomenti della home router - da Ultimi a Seguiti

Ciao a tutti!

Sto cercando di cambiare il router predefinito della lista degli argomenti della home page, ma non ho ancora trovato un modo! Spero possiate aiutarmi.

Sto cercando di passare da “Ultime” a “Seguiti” (ovvero gli argomenti creati dagli utenti che seguo).

Metodi che ho provato:

  • Il modo più efficiente sarebbe stato aggiungere un menu superiore “Seguiti”, ma non ha funzionato.
  • Un altro metodo è stato installare Custom Top Navigation Links. Mi ha permesso di aggiungere collegamenti di navigazione nel controllo, ma il percorso di rotta “/” (radice) mostra ancora “Ultime”.
  • Un altro tentativo è stato manipolare “discourse/app/routes/app-route-map.js” dove sono definiti i “filtri”, ma anche questo non ha funzionato.
    • this.route("discovery", { path: "/", resetNamespace: true }, function () {

Il mio obiettivo:

  • Cambiare l’elenco degli argomenti che appare su “http://localhost:3000/” da “Ultime” a “Seguiti”, cosa resa possibile grazie a Discourse Follow. Poiché questa rotta esiste già, se accedo a “/following” funziona, ma vorrei che questa rotta venisse eseguita sul percorso “/”.

È possibile!?

Spero possiate aiutarmi!
Cordiali saluti,
Felipe

Il mio recente PR potrebbe esserti d’aiuto.

Qui ho aggiunto i Segnalibri alle visualizzazioni predefinite possibili:

La parte più difficile è stata aggiungere i casi di test! :slight_smile:

Considererei questo come un PR per il plugin. La parte delicata è che attualmente appare solo se c’è qualcosa da mostrare… quindi dovresti tenere conto di questo…

Ciao Robert! Ho modificato entrambi i file dalla PR che hai menzionato.

Non ha funzionato. Pensavo che con queste modifiche sarebbe stato possibile scegliere le impostazioni del sito “Top menu”. Quindi, se è richiesto “latest”, inserirei “following” - “latest” in sequenza; in questo modo la home verrebbe reindirizzata a “following”.

Ho trovato un modo durante lo sviluppo utilizzando:

import { setDefaultHomepage } from 'discourse/lib/utilities';

Quindi, nel mio componente, all’inizio ho inserito:

setDefaultHomepage("following");

Perché nella Rails Console ho trovato una variabile SiteSetting.homepage che era impostata su “latest”.
E ha funzionato :smiley:!

Vedi qualche problema?

Ho paura di caricare “latest” dal backend e di avere l’inizializzatore caricato sul lato client.

Cordiali saluti,
Felipe

No, non sarai in grado di modificare direttamente il file Ruby. Era solo un indizio. Dopo tutto, non invierai una PR al core come ho fatto io in quel caso. Dovrai trovare un modo per apportare quella modifica dall’inizializzatore del plugin in plugin.rb, sospetto… si tratterà di una modifica al plugin e non al core.

Ehi!

In plugin.rb, come hai detto, sono riuscito impostando “following” come unica opzione:

UserOption.class_eval do
	def homepage 
		"following"
	end 
end

Haha, beh, è un modo per farlo, ma in realtà dovresti aggiungerlo come opzione e dare sempre all’utente la possibilità di modificarlo… almeno se vuoi che venga integrato nel plugin :wink:

Comunque sì, ottimo lavoro, continua a evolverlo.

A proposito, dai anche un’occhiata a: