Yaron Koren has uploaded a new change for review.

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


Change subject: Added more error messages for when parser function params are 
not specified
......................................................................

Added more error messages for when parser function params are not specified

Change-Id: I0139ba4551dd73ca2e9d8e66498eba1aa8214873
---
M ED_ParserFunctions.php
M ExternalData.i18n.php
2 files changed, 29 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ExternalData 
refs/changes/51/98551/1

diff --git a/ED_ParserFunctions.php b/ED_ParserFunctions.php
index bcd788c..fb6d839 100644
--- a/ED_ParserFunctions.php
+++ b/ED_ParserFunctions.php
@@ -132,7 +132,7 @@
                if ( array_key_exists( 'url', $args ) ) {
                        $url = $args['url'];
                } else {
-                       return "No URL specified";
+                       return wfMessage( 'externaldata-no-param-specified', 
'url')->parse();
                }
                $url = str_replace( ' ', '%20', $url ); // do some minor 
URL-encoding
                // if the URL isn't allowed (based on a whitelist), exit
@@ -162,7 +162,7 @@
                                $mappings = EDUtils::paramToArray( 
$args['data'], false, true );
                        }
                } else {
-                       return "No 'data' parameter specified";
+                       return wfMessage( 'externaldata-no-param-specified', 
'data')->parse();
                }
 
                if ( array_key_exists( 'cache seconds', $args) ) {
@@ -210,9 +210,19 @@
                $params = func_get_args();
                array_shift( $params ); // we already know the $parser ...
                $args = EDUtils::parseParams( $params ); // parse params into 
name-value pairs
-               $mappings = EDUtils::paramToArray( $args['data'] ); // parse 
the data arg into mappings
+               if ( array_key_exists( 'data', $args ) ) {
+                       $mappings = EDUtils::paramToArray( $args['data'] ); // 
parse the data arg into mappings
+               } else {
+                       return wfMessage( 'externaldata-no-param-specified', 
'data')->parse();
+               }
 
-               $external_values = EDUtils::getLDAPData( $args['filter'], 
$args['domain'], array_values( $mappings ) );
+               if ( !array_key_exists( 'filter', $args ) ) {
+                       return wfMessage( 'externaldata-no-param-specified', 
'filter')->parse();
+               } elseif ( !array_key_exists( 'domain', $args ) ) {
+                       return wfMessage( 'externaldata-no-param-specified', 
'domain')->parse();
+               } else {
+                       $external_values = EDUtils::getLDAPData( 
$args['filter'], $args['domain'], array_values( $mappings ) );
+               }
 
                // Build $edgValues
                foreach ( $external_values as $i => $row ) {
@@ -248,13 +258,20 @@
                array_shift( $params ); // we already know the $parser ...
                $args = EDUtils::parseParams( $params ); // parse params into 
name-value pairs
                $data = ( array_key_exists( 'data', $args ) ) ? $args['data'] : 
null;
-               $dbID = ( array_key_exists( 'db', $args ) ) ? $args['db'] : 
null;
-               // For backwards-compatibility - 'db' parameter was added
-               // in External Data version 1.3.
-               if ( is_null( $dbID ) ) {
-                       $dbID = ( array_key_exists( 'server', $args ) ) ? 
$args['server'] : null;
+               if ( array_key_exists( 'db', $args ) ) {
+                       $dbID = $args['db'];
+               } elseif ( array_key_exists( 'server', $args ) ) {
+                       // For backwards-compatibility - 'db' parameter was
+                       // added in External Data version 1.3.
+                       $dbID = $args['server'];
+               } else {
+                       return wfMessage( 'externaldata-no-param-specified', 
'db')->parse();
                }
-               $table = ( array_key_exists( 'from', $args ) ) ? $args['from'] 
: null;
+               if ( array_key_exists( 'from', $args ) ) {
+                       $table = $args['from'];
+               } else {
+                       return wfMessage( 'externaldata-no-param-specified', 
'from')->parse();
+               }
                $conds = ( array_key_exists( 'where', $args ) ) ? 
$args['where'] : null;
                $limit = ( array_key_exists( 'limit', $args ) ) ? 
$args['limit'] : null;
                $orderBy = ( array_key_exists( 'order by', $args ) ) ? 
$args['order by'] : null;
diff --git a/ExternalData.i18n.php b/ExternalData.i18n.php
index 9425d71..6d02cc8 100644
--- a/ExternalData.i18n.php
+++ b/ExternalData.i18n.php
@@ -14,6 +14,7 @@
        // user messages
        'getdata' => 'Get data',
        'externaldata-desc' => 'Allows for retrieving structured data from 
external URLs, databases and other sources',
+       'externaldata-no-param-specified' => "Error: no '$1' parameter 
specified.",
        'externaldata-web-invalid-format' => 'Invalid format: "$1"',
        'externaldata-ldap-unable-to-connect' => 'Unable to connect to $1',
        'externaldata-xml-error' => 'XML error: $1 at line $2',
@@ -35,6 +36,7 @@
 $messages['qqq'] = array(
        'getdata' => '{{doc-special|GetData}}',
        'externaldata-desc' => '{{desc|name=External 
Data|url=http://www.mediawiki.org/wiki/Extension:External_Data}}',
+       'externaldata-no-param-specified' => 'The error message if a parameter 
to some parser function is not set.',
        'externaldata-web-invalid-format' => 'The error message if 
#get_web_data is called with an invalid format value.
 
 Parameters:

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0139ba4551dd73ca2e9d8e66498eba1aa8214873
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ExternalData
Gerrit-Branch: master
Gerrit-Owner: Yaron Koren <yaro...@gmail.com>

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

Reply via email to