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