Extension:SubpageSortkey

From Linux Web Expert

Revision as of 07:32, 13 January 2023 by imported>Phil.o (→‎Installation: Added new loading method for the extension. Apparently this page has not been updated for a while.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

MediaWiki extensions manual
Subpage Sortkey
Release status: stable
Description change the default sortkey to have something to do with the subpages
Author(s) Brian Wolff (bawolfftalk)
Latest version 0.2.0
MediaWiki 1.18
License GNU General Public License 2.0 or later
Download
  • $wgSubpageSortkeyByNamespace
  • $wgSubpageSortkeyDefault
  • $wgSubpageSortkeyIfNoSubpageUseFullName
Quarterly downloads Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').
Public wikis using Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').
Translate the SubpageSortkey extension if it is available at translatewiki.net
Issues Open tasks · Report a bug

What can this extension do?

This extension changes the default sortkey from the full page name, to something involving the subpage structure of the page name. For example it can be configured to make Foo/bar/baz sort under bar/baz or baz/Foo or baz, etc.

Usage

This has a config option ($wgSubpageSortkeyDefault) which contains a bunch of comma separated numbers and ranges to determine what parts of the page title will be used for the default sortkey. 0 represents the base page name, 1 represents the first subpage, etc. Negative numbers count backwards; -1 is the last subpage-part of the title. ranges are denoted with .. - aka 2..4 is the same as 2,3,4. The second number in the range is optional, and negative ranges are slightly weird (second number is not inclusive). This is easiest explained in examples:

  • $wgSubpageSortkeyDefault = '1,0,2'; will sort the page 0/1/2/3/4 under 1/0/2
  • $wgSubpageSortkeyDefault = '2,0..3'; will sort the page 0/1/2/3/4 under 2/0/1/2/3
  • $wgSubpageSortkeyDefault = '-1,0'; will sort the page 0/1/2/3/4 under 4/0
  • $wgSubpageSortkeyDefault = '1..'; will sort the page 0/1/2/3/4 under 1/2/3/4
  • $wgSubpageSortkeyDefault = '-4..-1'; will sort the page 0/1/2/3/4 under 1/2/3 (not under 1/2/3/4)
  • $wgSubpageSortkeyDefault = '-4..'; will sort the page 0/1/2/3/4 under 1/2/3/4

You can also customize the default sortkey per namespace with $wgSubpageSortkeyByNamespace. Example: $wgSubpageSortkeyByNamespace[NS_TALK] = '-1';

$wgSubpageSortkeyIfNoSubpageUseFullName can be used to control what happens if the subpage sorting comes up with an empty string (aka $wgSubpageSortkeyByNamespace = '2'; on a page with no subpages) Setting it to true (default) means it will use the page's title as the sortkey. Setting to false means it will use the empty string.

File:OOjs UI icon notice-destructive.svg <translate> Warning:</translate> You need to run the updateCollation.php maintenance script with the --force option every time you change this extensions configuration (or if you remove the extension)

Other details

$wgSubpageSortkeyIfNoSubpageUseFullName can be used to control what happens if the subpage sorting comes up with an empty string (aka $wgSubpageSortkeyByNamespace = '2'; on a page with no subpages) Setting it to true (default) means it will use the page's title as the sortkey. Setting to false means it will use the empty string.

The full page name (minus the namespace name) will be used as a tie-breaker in sorting. You can still use {{DEFAULTSORT:foo}} to override this extension.

This extension will only operate on namespaces with subpages enabled See Manual:$wgNamespacesWithSubpages for details on how to enable subpages in a namespace

Download instructions

Installation

To install this extension, add the following to LocalSettings.php :

require_once("$IP/extensions/SubpageSortkey/SubpageSortkey.php");
$wgSubpageSortkeyDefault = '-1';
$wgSubpageSortkeyByNamespace[NS_TALK] = '2..4';

And then run the maintenance script updateCollation.php --force (important!)

As of MW 1.39, it seems that this extension must be loaded with

wfLoadExtension( 'SubpageSortkey' );

See also