Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:wikitools:syntaxe:pagequery [2015/07/16 14:51] – Poursuite de la traduction Lynefr:wikitools:syntaxe:pagequery [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Index et recherche de pages ======+====== Index et recherches de pages ======
  
 <WRAP center round todo 60%> <WRAP center round todo 60%>
Ligne 6: Ligne 6:
  
  
-La gestion des index et recherche de pages se fait grâce au plugin [[doku>plugin:pagequery|pagequery]] : il s'agit d'un outil de navigation polyvalent pour créer des pages d'index, faire des recherches ou des filtres sur du texte ou des noms de page, et afficher les résultats en colonnes, regroupéstriés. Il propose même des info-bulles pour prévisualiser le contenu.+La gestion des index et des recherches de pages se fait grâce au plugin [[doku>plugin:pagequery|pagequery]] : il s'agit d'un outil de navigation polyvalent pour créer des pages d'index, faire des recherches ou des filtres sur du texte ou des noms de page, et afficher les résultats, regroupés et/ou triés, en colonnes. Il propose même des info-bulles pour prévisualiser le contenu.
  
-Comme pagequery a fait un usage éhonté des excellentes fonctions disponibles dans DokuWiki (en particulier [[doku>search]]), il n'y a pas de nouvelle syntaxe à apprendre. Mais il apporte un petit quelque chose dans l'arrangement des puissantes options de tri et de regroupement.+Comme pagequery a fait un usage éhonté des excellentes fonctions disponibles dans DokuWiki (en particulier [[doku>search]]), il n'y a pas de nouvelle syntaxe à apprendre. Mais il apporte un petit quelque chose en plus dans l'arrangement des puissantes options de tri et de regroupement.
  
 Quelques utilisations possibles : Quelques utilisations possibles :
Ligne 18: Ligne 18:
  
 ===== Syntaxe et utilisation ===== ===== Syntaxe et utilisation =====
-Insérer la mention pageguery dans le texte de la page là où vous voulez que la page apparaisse. Vous pouvez avoir différentes listes ''pagequery'' dans la même page((Ça fonctionne très bien avec le [[doku>plugin:columns|plugin columns]])).+Insérer la mention pageguery dans le texte de la page là où vous voulez que la liste apparaisse. Vous pouvez avoir différentes listes ''pagequery'' dans la même page((Ça fonctionne très bien avec le [[doku>plugin:columns|plugin columns]])).
  
-Il peut s'agir de la version simple :+Il peut s'agir d'une version simple :
   {{pagequery>}}   {{pagequery>}}
      
-Ou, plus compliqué :+Ou, plus compliquée :
   {{pagequery>[query];fulltext;sort=key:direction,key2:direction;group;limit=10;cols=2;spelldate;proper}}   {{pagequery>[query];fulltext;sort=key:direction,key2:direction;group;limit=10;cols=2;spelldate;proper}}
      
-Ou alors à l'ancienne, et vraiment __trop__ compliqué... :+Ou alors à l'ancienne, et vraiment __trop__ compliquée... :
   {{pagequery>[query];fulltext;sort=key:direction,key2:direction;group;limit=100;cols=6;spelldate;proper;snippet=5;border=inside;hidestart;case;natsort}}   {{pagequery>[query];fulltext;sort=key:direction,key2:direction;group;limit=100;cols=6;spelldate;proper;snippet=5;border=inside;hidestart;case;natsort}}
      
-**Remarque :** la syntaxe peut être affichée sur plusieurs lignes pour améliorer la lisibilité. Les espaces sont tout simplement ignorés. Par exemple :+**Remarque :** la syntaxe peut être affichée sur plusieurs lignes pour améliorer la lisibilité. Les espaces sont alors tout simplement ignorés. Par exemple :
 <code> <code>
 {{pagequery>query; {{pagequery>query;
Ligne 52: Ligne 52:
  
 ^Option  ^Description  ^Exemples de syntaxe  ^Valeur par défaut ^ ^Option  ^Description  ^Exemples de syntaxe  ^Valeur par défaut ^
-^query  |Place l'expression de recherche immédiatement après le ''>'', par exemple %%{{ pagequery>help;... }}%% \\ Par défaut, il cherche seulement dans les noms de pages (ou les identifiants). Pour faire une recherche dans le contenu des pages du wiki, utiliser l'option ''fulltext'' ci-dessous |* \\ help \\ test |  //toutes les pages// +^query  |Place l'expression de recherche immédiatement après le ''>'', par exemple %%{{ pagequery>help;... }}%% \\ Par défaut, il cherche seulement dans les noms de pages (ou les identifiants). Pour faire une recherche dans le contenu des pages du wiki, utiliser l'option ''fulltext'' ci-dessous|* \\ help \\ test |  //toutes les pages// 
-|       |Vous pouvez utiliser des //expressions régulières//((on dit aussi regex ; faites une recherche Google pour de l'aide sur les expressions régulières si ça vous intéresse d'utiliser cette puissante fonctionnalité)) dans les recherches de nom de page. Pour voir toutes les pages, utiliser * ou .* , ou laissez le simplement à blanc.((tant que vous ne filtrez pas par espaces de nom : voir la note suivante !)) |''^p.+'' \\ [mots commençants par ''p'' |  |+|       |Vous pouvez utiliser des //expressions régulières//((On dit aussi "regex". Faites une recherche Google pour en savoir plus sur les expressions régulières si ça vous intéresse d'utiliser cette puissante fonctionnalité)) dans les recherches de nom de page. Pour voir toutes les pages, utilisez * ou .* , ou laissez simplement à blanc((Tant que vous ne filtrez pas par espaces de nom : voir la note suivante !))|''^p.+'' \\ [mots commençants par ''p'' |  |
 |       |//**Note :** ''*'' en lui-même est juste une commodité. Dans n'importe quelle autre regex, il vous faudra suivre les règles de la regex.//  ||| |       |//**Note :** ''*'' en lui-même est juste une commodité. Dans n'importe quelle autre regex, il vous faudra suivre les règles de la regex.//  |||
-|namespaces  |La recherche sur les noms de page accepte les mêmes options d'espaces de noms que [[doku>:search|la recherche dans le texte]], c'est-à-dire : ''^ ou -ns:'' signifie exclure, ''@ ou ns:'' signifie inclure |''^:work @:home:games *''  |  //rien// +|namespaces  |La recherche sur les noms de page accepte les mêmes options d'espaces de noms que [[doku>:search|la recherche dans le texte]], c'est-à-dire : ''^ ou -ns:'' signifie exclure, ''@ ou ns:'' signifie inclure|''^:work @:home:games *''  |  //rien// 
-|       |Les [[doku>:namespaces|espaces de noms]] relatifs (.) et parent (..) sont aussi compatibles((utilisez la syntaxe présentée dans la page des espaces de nom.))  ||| +|       |Les [[doku>:namespaces|espaces de noms]] relatifs (.) et parent (..) sont aussi compatibles((Utilisez la syntaxe présentée dans la page des espaces de nom.)) ||| 
-|       |//**Note :** si vous utilisez l'option namespace, il vous faudra également fournir une requête de nom de page (au minimum ''*''), parce que, par exemple, la fonction regex ne peut pas distinguer ''^work'' (espace de nom) et ''^work'' (noms de pages commençant par "work") //  ||| +|       |//**Note :** si vous utilisez l'option namespace, il vous faudra également fournir une requête de nom de page (au minimum ''*''), parce que, par exemple, la fonction regex ne peut pas distinguer ''^work'' (espace de nom) et ''^work'' (noms de pages commençant par "work")//  ||| 
-^fulltext  |Utilise une recherche sur tout le texte, ce qui autorise toutes les options de recherche DokuWiki. Cette option vous permet de faire tout un tas de recherches compliquées : reportez vous à la page [[doku>:search]] pour plus de détails |''fulltext''  |  |+^fulltext  |Utilise une recherche sur tout le texte, ce qui autorise toutes les options de recherche DokuWiki. Cette option vous permet de faire tout un tas de recherches compliquées : reportez vous à la page [[doku>:search]] pour plus de détails|''fulltext''  |  |
 ^fullregex  |Vous permet de faire une recherche sur l'identifiant complet de la page (c'est-à-dire y compris son espace de nom) à l'aide d'expressions régulières. C'est un mode //brut// pour utilisateurs avancés... mais ça ne fonctionne que sur les identifiants de page. |''fullregex''  |  | ^fullregex  |Vous permet de faire une recherche sur l'identifiant complet de la page (c'est-à-dire y compris son espace de nom) à l'aide d'expressions régulières. C'est un mode //brut// pour utilisateurs avancés... mais ça ne fonctionne que sur les identifiants de page. |''fullregex''  |  |
-^sort  |Clés à utiliser pour le tri, par ordre d'application dans le tri. Chaque clé peut être suivie par un ordre de tri préféré''sort=key:direction,key2:direction''  |''sort=a:asc,name:asc'' \\ ''sort=cyear,cmonth,name''  |  //rien//  |+^sort  |Clés à utiliser pour le tri, par ordre d'application dans le tri. Chaque clé peut être suivie par un ordre de tri préféré ''sort=key:direction,key2:direction''  |''sort=a:asc,name:asc'' \\ ''sort=cyear,cmonth,name''  |  //rien//  |
 |**Clés** de tri :     |||| |**Clés** de tri :     ||||
-|a, ab, abc         |Par 1ère lettre, 2 premières lettres ou 3 premières lettres |''sort=a'' \\ ''sort=ab''  | |+|a, ab, abc         |Sur la 1ère, les 2 premières ou les 3 premières lettres|''sort=a'' \\ ''sort=ab''  | |
 |name, pagename     |Par nom de page((sans espace de nom)) //[non groupé]//  |''sort=name''  |  | |name, pagename     |Par nom de page((sans espace de nom)) //[non groupé]//  |''sort=name''  |  |
 |title, heading     |Par titre de page (ou première ligne d'en-tête) //[non groupé]//  |''sort=title:desc''  |  | |title, heading     |Par titre de page (ou première ligne d'en-tête) //[non groupé]//  |''sort=title:desc''  |  |
Ligne 68: Ligne 68:
 |ns                 |Par espace de nom (sans nom de page) |''sort=ns''  |  | |ns                 |Par espace de nom (sans nom de page) |''sort=ns''  |  |
 |mdate, cdate       |Par date de création/modification (complète) //[non groupé]//|''sort=mdate''  |  | |mdate, cdate       |Par date de création/modification (complète) //[non groupé]//|''sort=mdate''  |  |
-|m[year][month][day]|Par [année][mois][jour] de [m]odification; toutes les combinaisons sont acceptées |''sort=myearmonthday'' \\ ''sort=mmonthday''  |  |+|m[year][month][day]|Par [année][mois][jour] de [m]odification ; toutes les combinaisons sont acceptées |''sort=myearmonthday'' \\ ''sort=mmonthday''  |  |
 |c[year][month][day]|Par [année][mois][jour] de [c]réation; toutes les combinaisons sont acceptées |''sort=cyearmonthday''  |  | |c[year][month][day]|Par [année][mois][jour] de [c]réation; toutes les combinaisons sont acceptées |''sort=cyearmonthday''  |  |
 |creator            |Par auteur de page |''sort=creator''  |  | |creator            |Par auteur de page |''sort=creator''  |  |
Ligne 86: Ligne 86:
 |        |Seulement jusqu'à une date donnée |''filter=mdate:%%->%%24.12.2012''  || |        |Seulement jusqu'à une date donnée |''filter=mdate:%%->%%24.12.2012''  ||
 |        |Seulement les trois derniers mois |''filter=mdate:3 months ago%%->%%''  || |        |Seulement les trois derniers mois |''filter=mdate:3 months ago%%->%%''  ||
-^group   |Affiche un en-tête de groupe pour chaque changement dans la clé de tri.((Pour une explication plus détailler des regroupements, voir la note après ce tableau)) |''group''  |  //non groupé// +^group   |Affiche un en-tête de groupe pour chaque changement dans la clé de tri.((Pour une explication plus détaillée des regroupements, voir la note après ce tableau)) |''group''  |  //non groupé// 
-|        |Par exemple, si vous avez trié par [myear] (c'est-à-dire année de modification) alors l'entête du groupe sera \\ inséré à chaque fois que l'année change (2010...2009...2008...etc...)  |||+|        |Par exemple, si vous avez trié par [myear] (c'est-à-dire année de modification) alors l'en-tête du groupe sera inséré à chaque fois que l'année change \\ (2010...2009...2008...etc...)  |||
 |        |Les espaces de noms sont groupés par tous les sous-espaces de noms jusqu'à la limite ''maxns''((voir ci-dessous)) ||| |        |Les espaces de noms sont groupés par tous les sous-espaces de noms jusqu'à la limite ''maxns''((voir ci-dessous)) |||
 |        |Note : les clés qui sont toutes uniques ne peuvent pas être groupées (c'est-à-dire les noms, les identifiants de page, la date de modification (mdate) ou de création(cdate) ) ||| |        |Note : les clés qui sont toutes uniques ne peuvent pas être groupées (c'est-à-dire les noms, les identifiants de page, la date de modification (mdate) ou de création(cdate) ) |||
Ligne 171: Ligne 171:
  
   {{pagequery>@namespace;fulltext;sort=a,name;group}}           [version texte entier]   {{pagequery>@namespace;fulltext;sort=a,name;group}}           [version texte entier]
 +  
 Ou : Ou :
 +
   {{pagequery>@namespace *;sort=a,name;group;proper;cols=2}}    [version nom de page : permet l'utilisation de regex]   {{pagequery>@namespace *;sort=a,name;group;proper;cols=2}}    [version nom de page : permet l'utilisation de regex]
  
 Ceci ramènera les résultats uniquement dans @namespace, et la liste sera triée alphabétiquement sur la //première lettre// ('sort=a'), puis alphabétiquement ('sort=name') à l'intérieur de chaque lettre. L'option //group// ne groupera que sur la première lettre (on ne peut pas grouper par nom, puisque chacun est unique). Ceci ramènera les résultats uniquement dans @namespace, et la liste sera triée alphabétiquement sur la //première lettre// ('sort=a'), puis alphabétiquement ('sort=name') à l'intérieur de chaque lettre. L'option //group// ne groupera que sur la première lettre (on ne peut pas grouper par nom, puisque chacun est unique).
  
-   * Pour voir le résultat sur 3 colonnes et avoir les liens en "Casse de phrase"" sans soulignement :+   * Pour voir le résultat sur 3 colonnes et avoir les liens en "Casse de phrase" sans soulignement :
  
   {{pagequery>@namespace *;sort=a,name;group;cols=3;proper}}   {{pagequery>@namespace *;sort=a,name;group;cols=3;proper}}
-   + 
-   * Grouper par //année// puis //mois de création//, et ensuite par //nom//, sur 2 colonnes, en affichant le vrai nom du mois, plus les liens en "Case de phrase" sans soulignement, et pour couronner le tout : une bordure autour des colonnes du tableau :+   * Grouper par //année// puis //mois de création//, et ensuite par //nom//, sur 2 colonnes, en affichant le vrai nom du mois, plus les liens en "Casse de phrase" sans soulignement, et pour couronner le tout : une bordure autour des colonnes du tableau :
  
   {{pagequery>@namespace *;sort=cyear,cmonth,name;group;spelldate;proper;cols=2;border}}   {{pagequery>@namespace *;sort=cyear,cmonth,name;group;spelldate;proper;cols=2;border}}
-  +
    * La même chose, mais en ne ramenant maintenant que les pages avec le mot "help" (NOTE : ''fulltext'' signifie qu'on cherche dans le contenu de la page, et pas seulement dans son nom) :    * La même chose, mais en ne ramenant maintenant que les pages avec le mot "help" (NOTE : ''fulltext'' signifie qu'on cherche dans le contenu de la page, et pas seulement dans son nom) :
  
   {{pagequery>@namespace help;fulltext;sort=cyear,cmonth,name;group;spelldate;proper;cols=2}}   {{pagequery>@namespace help;fulltext;sort=cyear,cmonth,name;group;spelldate;proper;cols=2}}
-  +
    * Chercher toutes les pages de l'espace de nom "brouillon", en ne ramenant que les fichiers dont le nom commence par un nombre, et triés par nom :    * Chercher toutes les pages de l'espace de nom "brouillon", en ne ramenant que les fichiers dont le nom commence par un nombre, et triés par nom :
  
   {{pagequery>@brouillon [0-9]+.*;sort=name}}   {{pagequery>@brouillon [0-9]+.*;sort=name}}
-   + 
-   * Et si c'est dans l'espace de nom "happy:go:lucky", en triant par année puis date de création, dans la jolie casse, sur 2 colonnes, et en affichant le //titre/ de la page plutôt que le //nom// :+   * Et si c'est dans l'espace de nom "happy:go:lucky", en triant par année puis date de création, dans la jolie casse, sur 2 colonnes, et en affichant le //titre// de la page plutôt que le //nom// :
  
   {{pagequery>@happy:go:lucky *;sort=cyear,cdate;group;proper;display={title};cols=2}}   {{pagequery>@happy:go:lucky *;sort=cyear,cdate;group;proper;display={title};cols=2}}
-  + 
  
  
 {{tag>Wiki Syntaxe}} {{tag>Wiki Syntaxe}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/wikitools/syntaxe/pagequery.1437051076.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact