Comment lister les pages

Traduction à compléter.

Question

Comment utiliser la directive (:pagelist:)?

Réponse

PmWiki possède deux directives destinées à générer des listes de pages -- (:pagelist:) et (:searchresults:). La différence essentielle entre les deux est que 'searchresults': génère les textes "Les résultats de la recherche pour ..." et "### pages trouvées parmi ### " encadrant le résultat -- à part ça, ce sont des directives similaires.

Syntaxe de base

  • (:pagelist:) sans arguments affiche une liste à puce de toutes les pages, avec les liens, ordonnées par ordre alphabétique et par groupes.
  • (:pagelist group=abc fmt=def list=ghi order=jkl argument1 argument2 etc:) affiche une liste de page en fonction des paramètres fournis. Les paramètres sont optionnels.

Paramètres

Tout argument fourni avec (:pagelist:) qui n'est pas de la forme 'clé=valeur' est traité comme du texte qui doit (ou ne doit pas) figurer dans le texte de la page. Ainsi

    (:pagelist trail=PmWiki.IndexDocumentation list=normal pomme -caramel:)

liste toutes les pages "normales" du trail IndexDocumentation qui contiennent le mot "pomme" mais pas le mot "caramel".

group= paramètre

Le paramètre "group=" limite les résultats aux pages appartenant à un groupe donné.

name= paramètre (nouveauté de pmwiki 2.1.beta21)

Le paramètre "name=" limite les résultats à certaines pages avec un nom spécifique. Utiliser des caractères spéciaux de remplacement avec des noms partiels.

Utiliser des caractères de remplacement dans les noms (nouveauté de pmwiki 2.1.beta21)

Les caractères de remplacement peuvent être utilisés avec les paramètres group et name.
Ce sont le caractère * représentant n'importe quelle séquence de caractères, le caractère ? représente un caractère unique. Le signe - ou le point d'exclamation ! sont utilisés pour indiquer une négation.

Exemples d'utilisation de caratères de remplacement :

  • Toutes les pages d'un groupe PmWiki:
(:pagelist group=PmWiki :)
  • Toutes les pages sauf celles d'un groupe PmWiki:
(:pagelist group=-PmWiki :)
  • Toutes les pages de n'importe quel groupe commençant par "PmWiki":
(:pagelist group=PmWiki* :)
  • Toutes les pages de n'importe quel groupe commençant par "PmWiki", mais pas "PmWikiZh":
(:pagelist group=PmWiki*,-PmWikiZh* :)
  • Toutes les pages sauf celles nommées "HomePage":
(:pagelist name=-HomePage :)
  • Toutes les pages du groupe PmCal dont le nom commence par "2005":
(:pagelist name=PmCal.2005* :)

Les jokers fonctionnent aussi avec les balises de condition, ce qui nous donne:

(:if name PmCal.2005* :)
    (:if group PmWiki* :)
    (:if name Profiles.*,-Profiles.Profiles :)

trail= paramètre

Le paramètre "trail=" renvoie la liste des pages affichées dans un WikiTrail.

list= paramètre

L'option "list=" pertmet à la recherche d'inclure/exclure des pages qui sont définies par l'administrateur dans des ensembles précisés dans le fichier config.php. PmWiki prédéfini "list=normal", qui exclut les choses telles que AllRecentChanges, RecentChanges, GroupHeader, GroupFooter, GroupAttributes, etc., de l'affichage des résultats. Les administrateurs du Wiki peuvent définir leurs propres listes via le tableau $SearchPatterns (voir en anglais) Cookbook.SearchResults?).

fmt= paramètre

Le paramètre "fmt=" détermine comment la liste résultante doit être affichée.

paramètres fmt prédéfinis:

PmWiki prédéfinit "fmt=simple", "fmt=bygroup", "fmt=title", et "fmt=group". Sans paramètre fmt= la valeur par défaut est par groupe.

  • fmt=bygroup est la valeur par défaut et produit une liste de pages triée par groupes.
  • fmt=simple donne une liste de noms de pages de la forme Groupe.Nom.
  • fmt=title donne une liste de titres de page. Par défaut order=title ce qui trie les pages par titre.
  • fmt=group donne une liste de groupes, sans noms de pages.

PageLists Templates

Depuis la version 2.1.beta15, PmWiki utilise les templates pour ses formats prédéfinis de pagelist, lesquels sont stocké dans Site.PageListTemplates, et peuvent être édité là. D'autres formats personnalisés peuvent être ajoutés, à cette page ou à n'importe quel autre, ou défini dans config.php ou un script cookbook. Il y a plusieurs façons d'indiquer quel template pagelist à utiliser:

  • fmt=#custom utilise le format personnalisé de Site.PageListTemplates depuis la section #custom.
  • fmt=MyTemplatePage#custom utilise le format personnalisé de la page MyTemplatePage depuis sa section #custom.
  • fmt=custom utilise le format personnalisé qui est défini dans un script cookbook de custom.

Check out these custom PagelistTemplateSamples?.

Custom formats added by cookbook scripts:

  • fmt=dictindex is added by Cookbook.DictIndex?. It gives an pagelist broken into alphabetical sections.
  • fmt=forum is added by Cookbook.SimpleForum?. It gives a 3-column table with page title, modified date and author.

Cookbook recipes can add more output formatting options by creating new format template sections, or via the $FPLFunctions array as a custom function. Several that are planned are also "fmt=publish" to displays the contents of each page in the list, "fmt=include" to include portions of a page's text, "fmt=category" to display pages in a form suitable for category listings, and "fmt=menu" to display the list as an expandable or dropdown menu.

link= parameter

The "link=" parameter provides a list of pages that have a link to SomeGroup.SomePage specified. Some examples for this (see also Backlinks?, FastBacklinks?):
  • To display a list of all pages that have a page link to PmWiki.DocumentationIndex:
(:pagelist link=PmWiki.DocumentationIndex:)
  • To display a list of all pages that link to the current page:
(:pagelist link={$FullName} :)
  • To display a list of all pages in group Main that have a page link to Main.HomePage:
(:pagelist group=Main link=Main.HomePage:)
  • To display a list of all pages in the "Skins" category.
(:pagelist link=Category.Skins:)
could there be a (:pagelist link=Groupname:), somehow?

count= parameter

The "count=" parameter restricts the pagelist to only the first of a number of pages specified.
Example: display the "top twenty" biggest cookbook pages:

(:pagelist group=Cookbook order=-size count=20 :)

order= parameter

The "order=" parameter allows the pagelist to be sorted in different ways than the default alphabetical order.
  • order=name Alphabetical listing (A to Z), this is PmWiki's default.
  • order=-name Reverse alphabetical listing (Z to A).
  • order=title Pagelist sorted alphabetically (A to Z) by titles rather than names.
  • order=-title Reverse alphabetical (Z to A) listing by titles rather than names.
  • order=ctime Pagelist sorted by creation time (most recently created pages last).
  • order=-ctime Pagelist in reverse order by creation time (most recently created pages first).
  • order=time Pagelist sorted by modification time (most recently changed pages last).
  • order=-time Pagelist in reverse order by modification time (most recently changed pages first).
  • order=size Pagelist sorted by page size (not file size), smallest pages first.
  • order=-size Pagelist sorted by page size, biggest pages first.
  • order=random Pagelist sorted randomly
Note: fmt=trail results in an unordered pagelist, i.e. the trail order is preserved in the pagelist. So PmWiki's alphabetical default order does not apply in this case.
Note: ctime is added to pages only from pmwiki 2.1.beta15 onwards, pages created by earlier versions don't carry a ctime attribute and can't be sorted that way.

Examples

Example 1: Display all pages of the current group, except this page, by time of modification, most recent first:

(:pagelist group={$Group} order=-time list=normal -{$FullName}:)

Example 2: Displays a list of all pages with links to Pm's profiles page (i.e., pages containing Pm?. What's more, the pages are listed in reverse order by modification time (most recently changed pages first):

(:pagelist link=Profiles.Pm order=-time fmt=simple:)
Note that the link= and order= options are "expensive" in that they require a fair amount of page scanning in order to obtain their results. On the other hand, link= and order= are less expensive than doing full text searches, and in future versions of PmWiki they may end up being optimized even further.

Comments/Questions

A through AZ B through BZ C through CZ titles listing

I will have a large wiki with lots of play titles. I would like to be able to have separate pagelists containing section A titles, section B titles, section C titles, etc. instead of one large alphabetical listing of titles. Is this possible with pagelist? PL 20060218

You can use wildcards for this:
      !!!A section: 
      (:pagelist group=Plays list=normal name=A* :)
      !!!B section:
      (:pagelist group=Plays list=normal name=B* :)
      !!!C section:
      (:pagelist group=Plays list=normal name=C* :)
      etc.
      !!!X Y Z section
      (:pagelist group=Plays list=normal name=X*,Y*,Z* :) 

~HansB?

Searching for page names only (not content)

In a large wiki, pages are often named systematically, so I sometimes need to get a list of pages with specific name parts (the Linux ls *name* thing). I couldn't find a way to configure it (list=xxx allows so but only for predefined patterns), so I added the following code to pagelist.php (beta36) near line 111 next to the 'group' option:

  if ($opt['named']) array_unshift($pats,"/({$opt['named']})/i");

Then with

  (:pagelist named=ReleaseNotes list=normal:)

I get (very quick) a list of all pages containing "ReleaseNotes" in their name. Wouldn't that be worth adding to the mainline code? tpahl?


Listing all groups except one

(:pagelist group= -PmWiki:) will list from all groups execpt PmWiki. See Directives#pagelist?

Question

(:pagelist group=Recipes list=normal apple pie:) lists all pages with apple AND pie in them, how do I get a list of all pages with apple OR pie?

Answer

I would suggest use two pagelist directives:
(:pagelist group=Recipes list=normal apple :)
(:pagelist group=Recipes list=normal pie:)
DirkBlaas?
This unfortunately list all pages that have both apple and pie on them twice.

(:pagelist group=Recipes list=normal -apple -pie:) lists all pages without apple OR pie, how do I get a list of all pages without apple AND pie in them?


How to exclude more than one group

This is possible from pmwiki 2.1.beta21 onwards using this syntax:

   (:pagelist group=-xxx,-yyy,-zzz :)

(HansB gave me this hint - Thanks!)

Does this apply to the name parameter too, eg

 (:pagelist group=TrampingReports order=-name list=normal name=-2005*,-HomePage,-Template:)

Voir aussi

Contributeurs

  • Radu
  • joachim Durchholz
  • HansB?

Category: Searching Traduction de Cookbook:PageListsExplained


. Page originale sur PmWikiFr.PagelistsExplained - Backlinks
Dernières modifications:
PmWikiFr.PagelistsExplained: 2006-07

Última modificación de la página el 2006-07
Powered by PmWiki