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