Utilisation des chaînes de requête pour filtrer les vues de sujets

:bookmark: Ce guide explique comment utiliser les chaînes de requête pour obtenir des vues de sujets filtrées personnalisées 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 précis.

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

Les chaînes de requête sont des textes 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 répondant à des critères précis.

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 (?), suivie de 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 lors de l’utilisation de chaînes de requête reste limitée aux sujets accessibles par votre compte utilisateur. Aucun paramètre n’a besoin d’ê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 : Uniquement les sujets ouverts
  • closed : Uniquement les sujets fermés
  • archived : Uniquement les sujets archivés
  • listed : Uniquement les sujets listés (visibles)
  • unlisted : Uniquement les sujets non listés
  • deleted : Uniquement les sujets supprimés
  • public : Uniquement les sujets dans des catégories publiques (non restreintes en lecture)

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
  • watching_first_post : Afficher les sujets dans des catégories ou avec des tags pour lesquels vous surveillez le premier message

Ordre croissant

Utilisez ?ascending=true pour afficher les sujets par date dans l’ordre croissant. La valeur par défaut est l’ordre 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 original
  • views : Par nombre de vues
  • posts : Par nombre de messages (réponses)
  • activity : Par date de dernière activité (inclut la date bumped_at)
  • posters : Par nombre de participants
  • category : Par nom de catégorie (Z-A)
  • created : Par date de création du sujet (sujets les plus récents en premier)

Filtres par nombre de messages

  • ?max_posts=_ : Retourne les sujets avec un nombre de messages inférieur ou égal à _
  • ?min_posts=_ : Retourne les sujets avec un nombre de messages supérieur ou égal à _

Filtres par âge

  • ?before=_ : Retourne les sujets créés il y a plus de _ jours
  • ?bumped_before=_ : Retourne les sujets déplacés pour la dernière fois il y a plus de _ jours

ID de sujet

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

Catégorie

Utilisez ?category=_ pour afficher une liste de sujets pour des catégories spécifiques. Accepte une chaîne délimitée par des virgules de numéros d’ID de catégorie.

Utilisez ?no_subcategories=true pour exclure les sujets des sous-catégories lors du filtrage par catégorie.

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.

Utilisez ?match_all_tags=true combiné avec ?tags=_ pour exiger que les sujets aient tous les tags spécifiés (plutôt que n’importe lequel d’entre eux).

Utilisez ?no_tags=true pour afficher uniquement les sujets qui n’ont aucun tag.

Utilisez ?exclude_tag=_ pour exclure les sujets avec un tag spécifique.

Filtre J’aime

Utilisez ?f=liked pour afficher uniquement les sujets où l’utilisateur actuel a liké un message.

Paramètres spécifiques aux plugins

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

Plugin Résolu

Si vous avez installé le plugin Résolu :

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

Plugin Assignation

Si vous avez installé le plugin Assignation :

  • ?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

Combiner les chaînes de requête

Vous pouvez combiner plusieurs chaînes de requête en utilisant le symbole esperluette (&). Lors de l’utilisation de 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é.