Changer la liste des sujets de la page d'accueil du routeur - de Derniers aux Suivis

Salut à tous !

J’essaie de modifier le routeur par défaut de la liste des sujets d’accueil, mais je n’ai encore trouvé aucun moyen ! J’espère que vous pourrez m’aider.

Je veux passer de « Derniers » à « Suivant » (ce qui correspondrait aux sujets créés par les utilisateurs que je suis).

Méthodes que j’ai essayées :

  • La méthode la plus efficace serait d’ajouter un menu principal « Suivant », mais cela n’a pas fonctionné.
  • Une autre approche consistait à installer Custom Top Navigation Links. Cela m’a permis d’ajouter des liens de navigation dans le contrôle, mais le chemin d’accès « / » (racine) affiche toujours « Derniers ».
  • Une autre méthode consistait à manipuler « discourse/app/routes/app-route-map.js » où sont définis les « filtres ». Mais cela n’a pas fonctionné non plus.
    • this.route("discovery", { path: "/", resetNamespace: true }, function () {

Mon objectif :

  • Modifier la liste des sujets qui s’affiche sur « http://localhost:3000/ » pour passer de « Derniers » à « Suivant ». C’est possible grâce à Discourse Follow. Comme cette route existe déjà, l’accès à « /following » fonctionne, mais je souhaite que cette route soit active sur le chemin « / ».

Est-ce possible !?

J’espère que vous pourrez m’aider !
Meilleures salutations,
Felipe

Ma récente PR pourrait vous être utile.

Ici, j’ai ajouté les Favoris aux vues par défaut possibles :

La partie la plus difficile a été d’ajouter les cas de test ! :slight_smile:

Je considérerais cela comme une PR pour le plugin. La partie délicate est qu’il n’apparaît actuellement que s’il y a quelque chose à afficher… il faudrait donc en tenir compte…

Bonjour Robert ! J’ai modifié les deux fichiers de la PR que vous avez mentionnés.

Cela n’a pas fonctionné. Je pensais que ces modifications permettraient de choisir les paramètres du site “Top menu”. Donc, si “latest” est requis, je mettrais “following” - “latest” dans cet ordre, de sorte que la page d’accueil soit redirigée vers “following”.

J’ai trouvé une solution pendant le développement à partir de :

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

Ainsi, dans mon composant, au début, j’ai ajouté :

setDefaultHomepage("following");

Car dans la console Rails, j’ai trouvé une variable SiteSetting.homepage qui était définie sur “latest”.
Et cela a fonctionné :smiley: !

Voyez-vous des problèmes ?

Je crains de charger “latest” depuis le backend et que l’initialiseur soit chargé côté client.

Cordialement,
Felipe

Non, vous ne pourrez pas modifier directement le fichier Ruby. Ce n’était qu’un indice. Après tout, vous ne soumettrez pas de PR au cœur du projet comme je le faisais dans ce cas. Vous devrez trouver un moyen de modifier cela depuis l’initialiseur du plugin dans plugin.rb, je suppose… cela impliquera une modification du plugin et non du cœur du projet.

Salut !

Dans plugin.rb, comme tu l’as dit, j’ai pu en mettant “following” comme seule option :

UserOption.class_eval do
	def homepage 
		"following"
	end 
end

Haha, c’est une façon de faire, mais en réalité, vous devriez l’ajouter en tant qu’option et toujours permettre à l’utilisateur de le modifier… du moins si vous voulez que cela soit intégré au plugin :wink:

Mais oui, c’est du bon travail, continuez à l’améliorer.

Au fait, jetez aussi un coup d’œil à :