* (bug 2802) Display more than one character of the sort key.
authorÆvar Arnfjörð Bjarmason <avar@users.mediawiki.org>
Tue, 12 Jul 2005 18:28:13 +0000 (18:28 +0000)
committerÆvar Arnfjörð Bjarmason <avar@users.mediawiki.org>
Tue, 12 Jul 2005 18:28:13 +0000 (18:28 +0000)
RELEASE-NOTES
includes/CategoryPage.php

index 2cd3631..29c980e 100644 (file)
@@ -561,6 +561,7 @@ of MediaWiki:Newpagetext) to &action=edit, if page is new.
 * (bug 2780) Fix thumbnail generation with GD for new image schema
 * (bug 2791) Slovene numeric format
 * (bug 655) Provide empty search form when searching for nothing
+* (bug 2802) Display more than one character of the sort key
 
 === Caveats ===
 
index bb6314f..4d61eda 100644 (file)
@@ -140,9 +140,25 @@ class CategoryPage extends Article {
                        } else {
                                // Page in this category
                                array_push( $articles, $sk->makeSizeLinkObj( $x->page_len, $title, $wgContLang->convert( $title->getPrefixedText() ) ) ) ;
-                               array_push( $articles_start_char, $wgContLang->convert( $wgContLang->firstChar( $x->cl_sortkey ) ) );
+                               array_push( $articles_start_char,$wgContLang->convert( $x->cl_sortkey) );
                        }
                }
+
+               $root_length = 0;
+               
+               for ($i = 0 ; $i < count($articles) - 1; ++$i){
+                       if ($articles_start_char[$i][$root_length] != $articles_start_char[$i + 1][$root_length] ) {
+                               break;
+                       } elseif (count($articles) - 2 == $i) {
+                               $root_length = $root_length + 1;
+                               $i = -1;
+                       }
+               }
+               
+               for ($i = 0 ; $i < count($articles) ; ++$i) {
+                       $articles_start_char[$i] = $wgContLang->truncate($articles_start_char[$i], $root_length + 1);
+               }
+
                $dbr->freeResult( $res );
 
                if( $flip ) {