https://www.mediawiki.org/wiki/Special:Code/MediaWiki/112785
Revision: 112785
Author: nikerabbit
Date: 2012-03-01 09:27:38 +0000 (Thu, 01 Mar 2012)
Log Message:
-----------
Split the new code into different hook. Also provide reason.
Ping r112576
Modified Paths:
--------------
trunk/extensions/Translate/PageTranslation.i18n.php
trunk/extensions/Translate/TranslateHooks.php
trunk/extensions/Translate/tag/PageTranslationHooks.php
Modified: trunk/extensions/Translate/PageTranslation.i18n.php
===================================================================
--- trunk/extensions/Translate/PageTranslation.i18n.php 2012-03-01 09:26:30 UTC
(rev 112784)
+++ trunk/extensions/Translate/PageTranslation.i18n.php 2012-03-01 09:27:38 UTC
(rev 112785)
@@ -97,7 +97,9 @@
This page is a translation of page [[$1]] and the translation can be updated
using [$2 the translation tool].',
'tpt-unknown-page' => 'This namespace is reserved for content page
translations.
The page you are trying to edit does not seem to correspond any page marked
for translation.',
- 'tpt-translation-restricted' => 'Translation of this message group to
this language has been prevented by translation administrator.',
+ 'tpt-translation-restricted' => 'Translation of this message group to
this language has been prevented by translation administrator.
+
+Reason for limiting: $1',
'tpt-discouraged-language-force' => 'Translation administrator has
limited the languages this message group can be translated to. This language is
not among those languages.
Reason for limiting: $1',
Modified: trunk/extensions/Translate/TranslateHooks.php
===================================================================
--- trunk/extensions/Translate/TranslateHooks.php 2012-03-01 09:26:30 UTC
(rev 112784)
+++ trunk/extensions/Translate/TranslateHooks.php 2012-03-01 09:27:38 UTC
(rev 112785)
@@ -118,6 +118,8 @@
// Prevent editing of unknown pages in Translations
namespace
$wgHooks['getUserPermissionsErrorsExpensive'][] =
'PageTranslationHooks::preventUnknownTranslations';
+ // Prevent editing of translation in restricted
languages
+ $wgHooks['getUserPermissionsErrorsExpensive'][] =
'PageTranslationHooks::preventRestrictedTranslations';
// Prevent editing of translation pages directly
$wgHooks['getUserPermissionsErrorsExpensive'][] =
'PageTranslationHooks::preventDirectEditing';
Modified: trunk/extensions/Translate/tag/PageTranslationHooks.php
===================================================================
--- trunk/extensions/Translate/tag/PageTranslationHooks.php 2012-03-01
09:26:30 UTC (rev 112784)
+++ trunk/extensions/Translate/tag/PageTranslationHooks.php 2012-03-01
09:27:38 UTC (rev 112785)
@@ -370,20 +370,41 @@
$result = array( 'tpt-unknown-page' );
return false;
}
- $priorityLangs = TranslateMetadata::get(
$handle->getGroup()->getId() , 'prioritylangs' );
- $priorityForce = TranslateMetadata::get(
$handle->getGroup()->getId() , 'priorityforce' );
- if ( strlen( $priorityLangs ) > 0 && $priorityForce ) {
- $filter = array_flip( explode ( ',',
$priorityLangs ) );
- if ( count( $filter ) > 0 && !isset(
$filter[$handle->getCode()] ) ) {
- $result = array(
'tpt-translation-restricted' );
- return false;
- }
- }
}
return true;
}
/**
+ * Prevent editing of restricted languages
+ * Hook: getUserPermissionsErrorsExpensive
+ * @since 2012-03-01
+ */
+ public static function preventRestrictedTranslations( Title $title,
User $user, $action, &$result ) {
+ $handle = new MessageHandle( $title );
+ if ( !$handle->isValid() ) {
+ return true;
+ }
+
+ $groupId = $handle->getGroup()->getId();
+ $priorityForce = TranslateMetadata::get( $groupId,
'priorityforce' );
+ if ( !$priorityForce ) {
+ return true;
+ }
+
+ $priorityLangs = TranslateMetadata::get( $groupId,
'prioritylangs' );
+ $priorityReason = TranslateMetadata::get( $groupId,
'priorityreason' );
+ $filter = array_flip( explode( ',', $priorityLangs ) );
+ if ( !isset( $filter[$handle->getCode()] ) ) {
+ $result = array( 'tpt-translation-restricted',
$priorityReason );
+ return false;
+ }
+
+ return true;
+ }
+
+
+
+ /**
* Prevent editing of translation pages directly.
* Hook: getUserPermissionsErrorsExpensive
*/
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs