MediaWiki REL1_31
Collation.php
Go to the documentation of this file.
1<?php
27abstract class Collation {
28 private static $instance;
29
34 public static function singleton() {
35 if ( !self::$instance ) {
37 self::$instance = self::factory( $wgCategoryCollation );
38 }
39 return self::$instance;
40 }
41
48 public static function factory( $collationName ) {
49 global $wgContLang;
50
51 switch ( $collationName ) {
52 case 'uppercase':
53 return new UppercaseCollation;
54 case 'numeric':
56 case 'identity':
57 return new IdentityCollation;
58 case 'uca-default':
59 return new IcuCollation( 'root' );
60 case 'uca-default-u-kn':
61 return new IcuCollation( 'root-u-kn' );
62 case 'xx-uca-ckb':
63 return new CollationCkb;
64 case 'xx-uca-et':
65 return new CollationEt;
66 case 'xx-uca-fa':
67 return new CollationFa;
68 case 'uppercase-ab':
69 return new AbkhazUppercaseCollation;
70 case 'uppercase-ba':
72 case 'uppercase-se':
74 default:
75 $match = [];
76 if ( preg_match( '/^uca-([A-Za-z@=-]+)$/', $collationName, $match ) ) {
77 return new IcuCollation( $match[1] );
78 }
79
80 # Provide a mechanism for extensions to hook in.
81 $collationObject = null;
82 Hooks::run( 'Collation::factory', [ $collationName, &$collationObject ] );
83
84 if ( $collationObject instanceof Collation ) {
85 return $collationObject;
86 }
87
88 // If all else fails...
89 throw new MWException( __METHOD__ . ": unknown collation type \"$collationName\"" );
90 }
91 }
92
106 abstract function getSortKey( $string );
107
133 abstract function getFirstLetter( $string );
134
135}
$wgCategoryCollation
Specify how category names should be sorted, when listed on a category page.
Workaround for the lack of support of Sorani Kurdish / Central Kurdish language ('ckb') in ICU.
Workaround for incorrect collation of Estonian language ('et') in ICU (T56168).
Temporary workaround for incorrect collation of Persian language ('fa') in ICU 52 (bug T139110).
static singleton()
Definition Collation.php:34
getSortKey( $string)
Given a string, convert it to a (hopefully short) key that can be used for efficient sorting.
getFirstLetter( $string)
Given a string, return the logical "first letter" to be used for grouping on category pages and so on...
static $instance
Definition Collation.php:28
static factory( $collationName)
Definition Collation.php:48
Collation class that's essentially a no-op.
MediaWiki exception.
Temporary workaround for incorrect collation of Northern Sami language ('se') in Wikimedia servers (s...
Collation that orders text with numbers "naturally", so that 'Foo 1' < 'Foo 2' < 'Foo 12'.
this class mediates it Skin Encapsulates a look and feel for the wiki All of the functions that render HTML and make choices about how to render it are here and are called from various other places when and is meant to be subclassed with other skins that may override some of its functions The User object contains a reference to a and so rather than having a global skin object we just rely on the global User and get the skin with $wgUser and also has some character encoding functions and other locale stuff The current user interface language is instantiated as and the local content language as $wgContLang
Definition design.txt:57