Nikerabbit has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/223387

Change subject: Turn wgContentTranslationCampaigns into associative array
......................................................................

Turn wgContentTranslationCampaigns into associative array

This change is not backwards compatible and existing configuration
overriding the default value must be updated simultanously with the
code.

Reasons for change is that with extension registration non-associative
arrays do not work as expected.

JavaScript version of the variable is kept as a list for simplicity and
hopefully not too much confusion for using a different format as PHP.

Bug: T105050
Change-Id: I2d77318b2858cb6022c8dbb0a010fd3995f96bda
---
M ContentTranslation.hooks.php
M extension.json
M specials/SpecialContentTranslation.php
3 files changed, 10 insertions(+), 5 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ContentTranslation 
refs/changes/87/223387/1

diff --git a/ContentTranslation.hooks.php b/ContentTranslation.hooks.php
index 1dff85f..2d95b46 100644
--- a/ContentTranslation.hooks.php
+++ b/ContentTranslation.hooks.php
@@ -47,7 +47,7 @@
                if ( !self::isEnabledForUser( $user ) ) {
                        if (
                                !$title->exists() &&
-                               in_array( 'newarticle', 
$wgContentTranslationCampaigns ) &&
+                               $wgContentTranslationCampaigns['newarticle'] &&
                                !$out->getRequest()->getCookie( 
'cx_campaign_newarticle_hide', '' ) &&
                                !$user->isAnon()
                        ) {
@@ -160,7 +160,7 @@
                $vars['wgContentTranslationExperimentalFeatures'] = 
$wgContentTranslationExperimentalFeatures;
                $vars['wgContentTranslationDatabase'] = 
$wgContentTranslationDatabase;
                $vars['wgContentTranslationSiteTemplates'] = 
$wgContentTranslationSiteTemplates;
-               $vars['wgContentTranslationCampaigns'] = 
$wgContentTranslationCampaigns;
+               $vars['wgContentTranslationCampaigns'] = array_keys( 
$wgContentTranslationCampaigns );
                $vars['wgContentTranslationBrowserBlacklist'] = 
$wgContentTranslationBrowserBlacklist;
                $vars['wgContentTranslationDefaultSourceLanguage'] = 
$wgContentTranslationDefaultSourceLanguage;
                $vars['wgContentTranslationTargetNamespace'] = 
$wgContentTranslationTargetNamespace;
@@ -186,7 +186,7 @@
                $user = $out->getUser();
 
                if (
-                       !in_array( 'newarticle', $wgContentTranslationCampaigns 
) ||
+                       !$wgContentTranslationCampaigns['newarticle'] ||
                        $out->getRequest()->getCookie( 
'cx_campaign_newarticle_hide', '' ) ||
                        $newPage->mTitle->exists() ||
                        !$newPage->mTitle->inNamespace( NS_MAIN ) ||
diff --git a/extension.json b/extension.json
index 9c3d7f8..5c2d65f 100644
--- a/extension.json
+++ b/extension.json
@@ -99,7 +99,10 @@
                "ContentTranslationDefaultSourceLanguage": "en",
                "@ContentTranslationTargetNamespace": "Target namespace to 
publish articles. Values can be 'Main' or any valid Namespace without leading 
column.",
                "ContentTranslationTargetNamespace": "Main",
-               "ContentTranslationCampaigns": [ "cxstats", "newarticle" ],
+               "ContentTranslationCampaigns": {
+                       "cxstats": true,
+                       "newarticle": true
+               },
                "@ContentTranslationUseMagnusTool":"Whether the Magnus tool to 
find missing articles to be enabled or not. This is initially made to 
experiment with an article comparison tool at 
http://tools.wmflabs.org/not-in-the-other-language/ See 
https://phabricator.wikimedia.org/T76843";,
                "ContentTranslationUseMagnusTool": true,
                "ContentTranslationBrowserBlacklist": {
diff --git a/specials/SpecialContentTranslation.php 
b/specials/SpecialContentTranslation.php
index dee45d9..465247f 100644
--- a/specials/SpecialContentTranslation.php
+++ b/specials/SpecialContentTranslation.php
@@ -40,7 +40,9 @@
                        // Campigns are only for logged in users.
                        return false;
                }
-               return $campaign !== null && in_array( $campaign, 
$wgContentTranslationCampaigns );
+               return $campaign !== null
+                       && isset( $wgContentTranslationCampaigns[$campaign] )
+                       && $wgContentTranslationCampaigns[$campaign];
        }
 
        /**

-- 
To view, visit https://gerrit.wikimedia.org/r/223387
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2d77318b2858cb6022c8dbb0a010fd3995f96bda
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <niklas.laxst...@gmail.com>

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

Reply via email to