http://www.mediawiki.org/wiki/Special:Code/MediaWiki/89457
Revision: 89457
Author: nikerabbit
Date: 2011-06-04 09:29:36 +0000 (Sat, 04 Jun 2011)
Log Message:
-----------
Hack for making Special:MyLanguage links red if target doesn't exists
Modified Paths:
--------------
trunk/extensions/Translate/Translate.php
trunk/extensions/Translate/specials/SpecialMyLanguage.php
Modified: trunk/extensions/Translate/Translate.php
===================================================================
--- trunk/extensions/Translate/Translate.php 2011-06-04 09:22:24 UTC (rev
89456)
+++ trunk/extensions/Translate/Translate.php 2011-06-04 09:29:36 UTC (rev
89457)
@@ -116,6 +116,8 @@
$wgHooks['SpecialSearchProfileForm'][] =
'TranslateEditAddons::searchProfileForm';
$wgHooks['SpecialSearchSetupEngine'][] =
'TranslateEditAddons::searchProfileSetupEngine';
+$wgHooks['LinkBegin'][] = 'SpecialMyLanguage::linkfix';
+
// New rights
$wgAvailableRights[] = 'translate';
$wgAvailableRights[] = 'translate-import';
Modified: trunk/extensions/Translate/specials/SpecialMyLanguage.php
===================================================================
--- trunk/extensions/Translate/specials/SpecialMyLanguage.php 2011-06-04
09:22:24 UTC (rev 89456)
+++ trunk/extensions/Translate/specials/SpecialMyLanguage.php 2011-06-04
09:29:36 UTC (rev 89457)
@@ -50,4 +50,26 @@
$wgOut->redirect( $title->getLocalURL() );
}
+
+ /**
+ * Make Special:MyLanguage links red if the target page doesn't exists.
+ * A bit hacky because the core code is not so flexible.
+ */
+ public static function linkfix( $dummy, $target, &$html,
&$customAttribs, &$query, &$options, &$ret ) {
+ if ( $target->getNamespace() == NS_SPECIAL ) {
+ list( $name, $subpage ) = SpecialPage::resolveAlias(
$target->getDBkey() );
+ if ( $name === 'MyLanguage' ) {
+ $realTarget = Title::newFromText( $subpage );
+ if ( !$realTarget->exists() ) {
+ $options[] = 'broken';
+ $index = array_search( 'known',
$options, true );
+ if ( $index !== false ) unset(
$options[$index] );
+
+ $index = array_search( 'noclasses',
$options, true );
+ if ( $index !== false ) unset(
$options[$index] );
+ }
+ }
+ }
+ return true;
+ }
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs