Extension talk:External Data/Archive 2017 to 2018

Is the usage of SQL group by possible?
I would consider "group by" extremly useful since it would be possible to create statistics for database content really easily. --WolfgangFahl (talk) 12:11, 10 January 2017 (UTC)
 * 1) Is the usage of SQL "group by" possible?
 * 2) if yes how?
 * 3) if no as it was pointed out in Extension_talk:External_Data/Archive_2013 where would a CR be posted?


 * No, it's still not possible, though I can see how it would be useful. What's a CR? Yaron Koren (talk) 14:35, 10 January 2017 (UTC)

How to pass header value to request?
With some API we need to pass in the headers some value (for example: https://docs.gitlab.com/ee/api/README.html#authentication) I tried url=--header "PRIVATE-TOKEN: xxxxxxxxxxxxxx" https://myserver/api/v1/list/all or url=https://myserver/api/v1/list/all,array('PRIVATE-TOKEN'=>'xxxxxxxxxxxxxxxx') But not chance. How can we achieve this? if this is possible, can we have an example of how?


 * The #get_web_data function only works with RESTful APIs; #get_soap_data might work in this case. Yaron Koren (talk) 15:52, 17 February 2017 (UTC)

Dash character in data
Hello

We found when displaying csv file data with a) cells that contain just a dash character, or b) cells that contain text and start with a dash character that any attempt to render this data into a table will cause rows to break at that cell. This is presumably because the parser inserts | for a column break and then the - from the string, resulting in |- which is a special string which means 'new row'.

To resolve this I edited the function GetCSVData in the file ED_Utils.php. In the foreach loop just before the return statement, I added a check for the dash character which replaces it with a dash wrapped in tag. This resolves the issue. Note that this issue likely still exists when other parsers like get_db_data are used, since I only resolved it in the GetCSVData function. foreach ( $table as $line ) { for ( $i = 0; $i < $num_columns; $i++ ) { // This check is needed in case it's an // uneven CSV file (see above). if ( array_key_exists( $i, $line ) ) { $row_val = trim( $line[$i] ); } else { $row_val = ''; }				//NEW - check for dash values if ($row_val == '-') {					$row_val = ' - '; }				else if (substr($row_val,0,1) == '-') {					$row_val = ' - '. substr($row_val,1); }				//NEW - end check for dash values if ( $has_header ) { $column = strtolower( trim( $header_vals[$i] ) ); } else { // start with an index of 1 instead of 0 $column = $i + 1; }				if ( array_key_exists( $column, $values ) ) { $values[$column][] = $row_val; } else { $values[$column] = array( $row_val ); }			}		} }}