PmWikiFr / 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

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 :

(:pagelist group=PmWiki :)
(:pagelist group=-PmWiki :)
(:pagelist group=PmWiki* :)
(:pagelist group=PmWiki*,-PmWikiZh* :)
(:pagelist name=-HomePage :)
(: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.

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:

Check out these custom PagelistTemplateSamples?.

Custom formats added by cookbook scripts:

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?):
(:pagelist link=PmWiki.DocumentationIndex:)
(:pagelist link={$FullName} :)
(:pagelist group=Main link=Main.HomePage:)
(:pagelist link=Category.Skins:)
could there be a (:pagelist link=Groupname:), somehow?

count= parameter

Le paramètre "count=" permet de restreindre le nombre de pages dans la liste générée au n premières, n étant le nombre spécifié.
Exemple: affiche le "top 20" des plus grandes pages du ''cookbook':

(: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.
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?


Comment exclure plusieurs groupes à la fois

Ceci est possible à partir de pmwiki 2.1.beta21 en se servant de ce syntaxe:

   (: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


Category: Searching Traduction de Cookbook:PageListsExplained


Page originale sur PmWikiFr.PagelistsExplained - Backlinks
Dernières modifications:
PmWikiFr.PagelistsExplained: December 23, 2021, at 12:48 AM