Extension:External Data/Version history

From mediawiki.org

Here is the version history for External Data:

  • 0.1 - January 12, 2009 - initial version
  • 0.2 - January 14, 2009 - support for JSON data added
  • 0.3 - February 3, 2009 - optional database caching added; string replacement in URLs added
  • 0.4 - February 10, 2009 - 'GetData' special page added; #for_external_table function added; 'EDUtils' class added; internationalization added
    • 0.4.1 - February 13, 2009 - support for retrieval of XML table data; handling of XML tag attribute
  • 0.5 - March 2, 2009 - 'CSV with header' format added; 'GetData' changed to use this format; filtering added to #get_external_data; fix for field names containing blanks
    • 0.5.1 - March 16, 2009 - CSV values that contain newlines handled correctly
    • 0.5.2 - March 19, 2009 - security fix for wikis that contain read-protected pages
  • 0.6 - April 2, 2009 - support for JSON table data; data gets reset between one page and another when handling multiple pages
    • 0.6.1 - May 20, 2009 - renamed "ED_Settings.php" to "ExternalData.php"
  • 0.7 - June 19, 2009 - added #get_db_data and #get_ldap_data functions; minor bug fixes
    • 0.7.1 - July 21, 2009 - fix for URLs containing spaces; fix for non-lowercase filtered fields in #get_external_data
  • 0.8 - August 12, 2009 - expiration time added for caching; magic-words handling updated for MediaWiki 1.16; internationalization added for error messages
    • 0.8.1 - August 20, 2009 - backwards compatibility added for magic-words handling; improvements to error-message internationalization
  • 0.9 - September 1, 2009 - $edgAllowExternalDataFrom whitelist variable added for #get_external_data; fix for incorrectly-formatted parameters for #get_external_data
    • 0.9.1 - September 30, 2009 - $edgAllowSSL variable added
    • 0.9.2 - January 8, 2010 - ".urlencode" command added for #for_external_table; fix for JSON tags containing capital letters


  • 1.0 - May 3, 2010 - #store_external_table function added; fixes for parameters that have extra whitespace or don't contain an equals sign; removed still-buggy usage of PHP str_getcsv() function; other bug fixes
    • 1.0.1 - August 27, 2010 - fix for "qualified column names" in #get_db_data
  • 1.1 - September 23, 2010 - support added for GFF data format
  • 1.2 - October 14, 2010 - #get_web_data function added, meant to replace (now-deprecated) #get_external_data function
    • 1.2.1 - December 28, 2010 - handling added for comments in XML
    • 1.2.2 - January 12, 2011 - support added for #store_external_table for PHP 5.3
    • 1.2.3 - February 11, 2011 - handling for HTTPS access in #get_web_data fixed for MW >= 1.17; default for $edgAllowSSL changed to "true"
  • 1.3 - April 25, 2011 - #clear_external_data function added; "limit" and "order by" parameters added to #get_db_data, and "server" parameter renamed to "db"; $edgDBFlags and $edgDBTablePrefix global variables added; fix for commas contained within parentheses and quotes in "data" parameter
    • 1.3.1 - May 20, 2011 - fix for MW <= 1.15; fix for non-Latin characters retrieved by #get_db_data
    • 1.3.2 - September 9, 2011 - fixes for #clear_external_data; fix for databases that have UTF-8 encoding; fix for spaces contained within 'data' and 'filters' parameters
    • 1.3.3 - November 8, 2011 - fix for PHP installations without multi-byte support; fix for database caching
    • 1.3.4 - December 5, 2011 - fix for #get_db_data for MW 1.18
    • 1.3.5 - January 10, 2012 - support removed for MW < 1.16; JSON parsing improved
    • 1.3.6 - March 23, 2012 - handling fixed for values and headers in CSV files containing extra whitespaces; error message added for invalid format in #get_web_data
  • 1.4 - June 22, 2012 - "use xpath" parameter added to #get_web_data; "group by" parameter added to #get_db_data
    • 1.4.1 - July 18, 2012 - "post data" parameter added to #get_web_data; replaced deprecated use of $wgTitle; fix for handling within refreshData script
    • 1.4.2 - November 28, 2012 - added handling for SMWSQLStore3 for #store_external_data; fix for handling multiple values in #get_ldap_data; better support for PHP < 5.2.3; added handling for namespaces in XML; better error checking for incorrectly-formatted CSV; fix for param parsing in CSV; better parsing of arrays of arrays in JSON
    • 1.4.3 - January 2, 2013 - fix for JSON parsing modifications from version 1.4.2
  • 1.5 - January 24, 2013 - added handling for MongoDB in #get_db_data; fixed Special:GetData for MediaWiki >= 1.21; better display of error messages; support removed for MW 1.16
  • 1.6 - March 7, 2013 - #display_external_table added; #store_external_table calls #subobject directly when SMW uses SQLStore3
    • 1.6.1 - May 30, 2013 - fixed #store_external_data for SMW 1.9; fix for ampersands in XML; added "find query" parameter for querying MongoDB; improved coordinate handling for MongoDB; bug fix for "use xpath"
    • 1.6.2 - August 1, 2013 - added 'cache seconds' parameter for #get_web_data; fix for non-UTF-8 encodings for #get_web_data; added 'aggregate' parameter for MongoDB; added handling of "linked" (dot-separated) properties for MongoDB; other improvements for MongoDB
    • 1.6.3 - December 11, 2013 - #get_external_data removed; improved error display for parser functions, especially #get_web_data; fix for displaying array values in JSON; fix for non-Latin characters in various encodings in CSV; fix for bug when XML attributes contain ampersands; fix for uppercase characters in variable names for #display_external_table; more support for 'aggregate' for MongoDB
    • 1.6.4 - February 10, 2014 - added support for caching of MongoDB results with Memcached; $edgExternalValueVerbose variable added; improved SMW 1.9 support; bug fixes for MongoDB handling; other bug fixes
  • 1.7 - July 8, 2014 - #get_soap_data added; i18n messages moved into JSON files; another "byte order mark" fix for CSV
  • 1.8 - August 4, 2014 - #get_file_data added; better display of error messages
    • 1.8.1 - January 19, 2015 - improved handling for #get_soap_data, #get_web_data (especially CSV and XML) and #get_db_data
    • 1.8.2 - July 28, 2015 - 'delimiter' parameter added for #get_web_data and #get_file_data; 'delimiter' parameter (unrelated) added for #display_external_table; '.htmlencode' command added for #for_external_table
    • 1.8.3 - June 14, 2016 - npm support added; fix for $edgDBTablePrefix; fix for blank username for #get_db_data; other small fixes
  • 1.9 - July 18, 2018 - "from" syntax extended and "join on" parameter added to #get_db_data; "json offset" parameter added to #get_web_data; "intro template" and "outro template" parameters added to #display_external_table; handling removed for MW < 1.23; fix for extension.json
    • 1.9.1 - January 16, 2019 - fixed handling for SQLite for MW 1.28+


  • 2.0 - October 16, 2019 - ExternalData.php entry point removed; support removed for MW < 1.28; "text" format added to #get_web_data; 'ExternalDataBeforeWebCall' hook added; handling for MW 1.28+ improved
    • 2.0.1 - January 23, 2020 - Handling added for "\t" within delimiter; improvements to error display; other small fixes
  • 2.1 - June 17, 2020 - "HTML" format added; "use jsonpath" parameter added to #get_web_data and #get_file_data; $edgHTTPOptions global variable added; handling improved for MW 1.33+; other fixes
  • 2.2 - August 27, 2020 - Added Scribunto/Lua functions; allowed use of stale cache in #get_web_data; added "suppress error" parameter to the "accessor" parser functions; enabled MongoDB access for PHP7; improved encoding detection in text functions; code restructuring
  • 2.3 - December 17, 2020 - Added EDParserFunctions::getAllValues() function (for use by Page Forms and others); better error handling; other bug fixes
  • 2.4 - April 19, 2021 - Added "default xmlns prefix" parameter to #get_web_data; code improvements
    • 2.4.1 - June 9, 2021 - Fixed bug accidentally added in version 2.4 that broke usage with Page Forms


  • 3.0 - December 7, 2021 - Added #get_program_data (and related Lua function mw.ext.externalData.getProgramData); added directory walking feature in #get_file_data; added lines cutout feature in #get_web_data and #get_file_data; added prepared SQL statements to #get_db_data; added fallback value to #external_value; added __json and __xml external variables; added INI format; added #get_external_data (and mw.ext.externalData.getExternalData; added new $wgExternalDataSources global array, replacing numerous $edg... settings; converted extension.json to manifest version 2; removed support for MW 1.28
  • 3.1 - March 23, 2022 - Added #format_external_table, for use with Cargo extension; re-added support for MS SQLServer to #get_db_data; added PostgreSQL handling, and improved MySQL handling, for prepared statements in #get_db_data; improved support for MW 1.37+; various bug fixes
  • 3.2 - October 4, 2022 - Added YAML format; added #get_inline_data function; made "data" parameter optional in most cases; allowed auto-detection of header line and delimiter in CSV; delimiter in INI; auto-detection of format; added hidden data sources for #get_external_data; allowed passing data source as "source" or first anonymous parameter; added intuitive parsing of the first anonymous parameter to #for_external_table; created "standalone" mode for display functions (#external_value, #for_external_table, #display_external_table, #format_external_table, #store_external_table) so that they do not need a previous call to #get_…_data; added ability to look into archive files (.zip, .rar, .tar, .tar.gz and .tar.bz2; subject to PHP version); removed support for MW < 1.33; other code improvements
  • 3.3 - November 27, 2023 - Added __delimiter external variable; added options setting with SOAP, enabling using SOAP with authentication; got display functions working with "url" and "text" parameters, not just "source"; allowed for multiple types when using multiple prepared queries; removed support for MW < 1.37; various fixes for SQL handling; fixes for PHP 8 handling; other bug fixes