http://www.mediawiki.org/wiki/Special:Code/MediaWiki/67373

Revision: 67373
Author:   liangent
Date:     2010-06-05 02:12:09 +0000 (Sat, 05 Jun 2010)

Log Message:
-----------
Add preference to allow users to set their default sortkey for view

Modified Paths:
--------------
    trunk/extensions/CategoryMultisort/CategoryMultisort.hooks.php
    trunk/extensions/CategoryMultisort/CategoryMultisort.i18n.php
    trunk/extensions/CategoryMultisort/CategoryMultisort.php

Modified: trunk/extensions/CategoryMultisort/CategoryMultisort.hooks.php
===================================================================
--- trunk/extensions/CategoryMultisort/CategoryMultisort.hooks.php      
2010-06-05 02:12:01 UTC (rev 67372)
+++ trunk/extensions/CategoryMultisort/CategoryMultisort.hooks.php      
2010-06-05 02:12:09 UTC (rev 67373)
@@ -17,6 +17,7 @@
                        'ParserBeforeTidy',
                        'LinksUpdate',
                        'CategoryPageView',
+                       'GetPreferences',
                ) as $hook ) {
                        $wgHooks[$hook][] = $this;
                }
@@ -218,16 +219,20 @@
        }
        
        function onCategoryPageView( $categoryArticle ) {
-               global $wgRequest, $wgOut, $wgUser, 
$wgCategoryMultisortSortkeyNames;
+               global $wgRequest, $wgOut, $wgUser, 
$wgCategoryMultisortSortkeyNames, $wgUser;
                
                wfLoadExtensionMessages( 'CategoryMultisort' );
                
                $title = $categoryArticle->getTitle();
-               $skn = $wgRequest->getText( 'sortkey' );
                
                if ( $title->getNamespace() != NS_CATEGORY ) {
                        return true;
                } else {
+                       $skn = $wgRequest->getVal( 'sortkey' );
+                       if ( !isset( $skn ) ) {
+                               $skn = $wgUser->getOption( 
'categorymultisort-sortkey' );
+                       }
+                       
                        $wgOut->addHTML( 
$this->onCategoryPageView_buildSortkeySelectForm( $skn ) );
                        
                        if ( !$skn || !array_key_exists( $skn, 
$wgCategoryMultisortSortkeyNames ) ) {
@@ -257,7 +262,6 @@
                                array_merge( array( 'value' => '' ), ( $current 
== '' ? array( 'selected' ) : array() ) ),
                                wfMsgNoTrans( 
'categorymultisort-defaultsortkey-name' )
                        );
-                       
                        foreach ( $wgCategoryMultisortSortkeyNames as $skn => 
$sks ) {
                                $html .= Html::element( 'option',
                                        array_merge( array( 'value' => $skn ), 
( $current == $skn ? array( 'selected' ) : array() ) ),
@@ -290,6 +294,28 @@
                return $html;
        }
        
+       function onGetPreferences( $user, &$preferences ) {
+               global $wgCategoryMultisortSortkeyNames;
+               
+               wfLoadExtensionMessages( 'CategoryMultisort' );
+               
+               $options = array(
+                       wfMsgNoTrans( 'categorymultisort-defaultsortkey-name' ) 
=> '',
+               );
+               foreach ( $wgCategoryMultisortSortkeyNames as $skn => $sks ) {
+                       $options[wfMsgNoTrans( 
"categorymultisort-sortkey-name-$skn" )] = $skn;
+               }
+               
+               $preferences['categorymultisort-sortkey'] = array(
+                       'type' => 'select',
+                       'section' => 'misc/category',
+                       'options' => $options,
+                       'label-message' => 'categorymultisort-default-sortkey',
+               );
+               
+               return true;
+       }
+       
        function parseMultisortArgs( $args ) {
                $arr = array();
                

Modified: trunk/extensions/CategoryMultisort/CategoryMultisort.i18n.php
===================================================================
--- trunk/extensions/CategoryMultisort/CategoryMultisort.i18n.php       
2010-06-05 02:12:01 UTC (rev 67372)
+++ trunk/extensions/CategoryMultisort/CategoryMultisort.i18n.php       
2010-06-05 02:12:09 UTC (rev 67373)
@@ -11,4 +11,6 @@
        'categorymultisort-defaultsortkey-name' => 'Default',
        'categorymultisort-sortkey' => 'Sortkey: ',
        'categorymultisort-go' => 'Go',
+       'categorymultisort-default-sortkey' => 'Default sortkey:',
+       'prefs-category' => 'Category',
 );

Modified: trunk/extensions/CategoryMultisort/CategoryMultisort.php
===================================================================
--- trunk/extensions/CategoryMultisort/CategoryMultisort.php    2010-06-05 
02:12:01 UTC (rev 67372)
+++ trunk/extensions/CategoryMultisort/CategoryMultisort.php    2010-06-05 
02:12:09 UTC (rev 67373)
@@ -18,4 +18,6 @@
 
 new CategoryMultisortHooks();
 
+$wgDefaultUserOptions['categorymultisort-sortkey'] = '';
+
 $wgCategoryMultisortSortkeyNames = array();



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to