Utiliser des chaînes de requête pour filtrer les vues de sujet

:bookmark: Ce guide explique comment utiliser les chaînes de requête pour obtenir des vues personnalisées et filtrées de sujets sur n’importe quel site Discourse. Les chaînes de requête peuvent être utilisées par tous les utilisateurs pour afficher des listes spécifiques de sujets, créer des liens personnalisés vers des listes de sujets uniques et rechercher des sujets répondant à des critères spécifiques.

:person_raising_hand: Niveau d’utilisateur requis : Tous les utilisateurs

Les chaînes de requête sont du texte que vous pouvez ajouter à la fin de la plupart des URL Discourse pour obtenir une vue personnalisée et filtrée des sujets. Elles peuvent être utiles pour afficher des listes spécifiques de sujets, créer des liens personnalisés vers des listes de sujets uniques et rechercher des sujets qui répondent à des critères spécifiques.

Comprendre les chaînes de requête

Une chaîne de requête est ajoutée à la fin d’une URL, en commençant par un point d’interrogation (?), suivi des paramètres et de leurs valeurs. Par exemple :

https://meta.discourse.org/?status=open

Dans cette URL, ?status=open est la chaîne de requête.
La liste des sujets que vous voyez lorsque vous utilisez des chaînes de requête sera toujours limitée aux sujets accessibles par votre compte utilisateur. Aucun paramètre ne doit être activé pour utiliser les chaînes de requête.

Paramètres de chaîne de requête disponibles

Voici les paramètres de chaîne de requête que vous pouvez utiliser sur tous les sites Discourse :

Statut

Utilisez ?status=_ pour afficher les sujets avec un statut spécifique :

  • open : Sujets ouverts uniquement
  • closed : Sujets fermés uniquement
  • archived : Sujets archivés uniquement
  • unlisted : Sujets non listés uniquement
  • deleted : Sujets supprimés uniquement

Recherche

Utilisez ?search=_ pour créer une page complète de résultats de recherche. Remplacez _ par vos termes de recherche.

État

Utilisez ?state=_ pour afficher les sujets avec un état spécifique :

  • muted : Afficher les sujets que vous avez mis en sourdine
  • normal : Afficher les sujets que vous avez définis comme normaux
  • tracking : Afficher les sujets que vous suivez
  • watching : Afficher les sujets que vous surveillez

Ordre croissant

Utilisez ?ascending=true pour afficher les sujets par date dans l’ordre croissant. L’ordre par défaut est décroissant.

Ordre

Utilisez ?order=_ pour afficher les sujets dans l’ordre décroissant selon divers critères :

  • likes : Par nombre de likes
  • op_likes : Par likes sur le message d’origine
  • views : Par vues
  • posts : Par nombre de messages (réponses)
  • activity : Par date de dernière activité (inclut la date bumped_at)
  • posters : Par le nombre de participants
  • category : Par nom de catégorie (Z-A)
  • created : Par date de création du sujet (les sujets les plus récents d’abord)

Filtres de nombre de messages

  • ?max_posts=_ : Renvoie les sujets avec un nombre de messages de _ ou moins
  • ?min_posts=_ : Renvoie les sujets avec un nombre de messages de _ ou plus

IDs de sujet

Utilisez ?topic_ids=_ pour afficher une liste de sujets avec des IDs spécifiques. Accepte une chaîne d’IDs de sujet séparés par des virgules.

Catégorie

Utilisez ?category=_ pour afficher une liste de sujets pour des catégories spécifiques. Accepte une chaîne de nombres d’IDs de catégorie séparés par des virgules.

Tags

Utilisez ?tags=_ pour filtrer les sujets par tags. Par exemple, https://meta.discourse.org/?tags=how-to afficherait tous les sujets avec le tag how-to.

Paramètres spécifiques aux plugins

Certains plugins ajoutent des paramètres de chaîne de requête supplémentaires :

Plugin Solved

Si vous avez le plugin Solved installé :

  • ?solved=yes : Afficher les sujets résolus
  • ?solved=no : Afficher les sujets non résolus

Plugin Assign

Si vous avez le plugin Assign installé :

  • ?assigned=username : Afficher tous les sujets assignés à un utilisateur spécifique
  • ?assigned=* : Afficher tous les sujets assignés à tous les utilisateurs
  • ?assigned=me : Afficher tous les sujets assignés à l’utilisateur actuel
  • ?assigned=nobody : Afficher tous les sujets non assignés

Combinaison de chaînes de requête

Vous pouvez combiner plusieurs chaînes de requête en utilisant le symbole esperluette (&). Lorsque vous utilisez plusieurs chaînes de requête, seul le premier paramètre nécessite le symbole ?. Par exemple :

https://meta.discourse.org/?max_posts=1&status=closed

Cette URL afficherait les sujets fermés avec un seul message.

Utilisation de la page de recherche avancée

Vous pouvez également utiliser la page de recherche avancée pour construire ces URL avec une interface graphique, puis copier l’URL résultante. Notez que certains filtres de recherche peuvent ne pas fonctionner comme paramètres de chaîne de requête en dehors du contexte de recherche.

Ressources supplémentaires

18 « J'aime »

Ne pouvez-vous pas utiliser la page de recherche avancée pour créer ces URL avec l’interface graphique, puis simplement copier l’URL ?

1 « J'aime »

Il semble qu’il s’agisse des mêmes paramètres (il suffit de remplacer : du filtre de recherche par = dans la chaîne de requête), mais certains filtres de recherche ne fonctionnent pas lorsqu’ils sont utilisés comme paramètres de chaîne de requête en dehors de la recherche.

Je pense donc que la liste complète se trouve dans cette documentation. Je serais curieux de voir dans quel fichier Discourse ils sont référencés pour en être sûr, cependant.

Edit : il existe maintenant une route /filter avec beaucoup plus de critères de filtrage :

3 « J'aime »

Si vous avez le plugin Solved, vous pouvez également utiliser :

?solved=yes
?solved=no

3 « J'aime »

Je pense qu’il y en a aussi pour Assign :

Je vais les ajouter. :+1:

3 « J'aime »

À tout hasard, imaginez que vous pourriez également l’utiliser pour des balises ?

Génial comment faire

2 « J'aime »

Oui, vous pouvez ajouter ?tags=_ aux URL de Discourse pour utiliser des chaînes de requête afin de filtrer les balises.

Par exemple, https://meta.discourse.org/?tags=how-to vous dirigera vers toutes les balises how-to sur Meta.

2 « J'aime »

Est-il possible d’avoir un filtre négatif (exclure) à l’aide d’une chaîne de requête ? Actuellement, avec la recherche avancée, cela se fait en préfixant avec un -

-tags: smth mais ce n’est pas possible avec une chaîne de requête.

Il est tout à fait possible en utilisant la nouvelle route /filter.

Par exemple https://meta.discourse.org/filter?q=-tags%3Aofficial%20%20category%3Aplugin

3 « J'aime »

Merci ! Qu’en est-il de la recherche avec plusieurs statuts (OU) ? J’ai essayé différentes méthodes de recherche, mais il semble que ce ne soit pas du tout pris en charge. Par exemple, j’ai des sujets qui sont ouverts, fermés ou archivés, je veux juste exclure les archivés, c’est-à-dire rechercher ouverts OU fermés. Jusqu’à présent, j’ai essayé

  • Recherche avancée : status:open,closed
  • Recherche avancée : status:open status:closed
  • Chaîne de requête : ?status=open,closed

Aucune de ces méthodes n’a fonctionné.