http://www.mediawiki.org/wiki/Special:Code/MediaWiki/97488
Revision: 97488
Author: jeroendedauw
Date: 2011-09-19 13:34:23 +0000 (Mon, 19 Sep 2011)
Log Message:
-----------
pass format param to sub queries when provided as global param, so format
specific params don't get ignored in SMW 1.6.2 and later
Modified Paths:
--------------
trunk/extensions/SemanticCompoundQueries/SCQ_QueryProcessor.php
Modified: trunk/extensions/SemanticCompoundQueries/SCQ_QueryProcessor.php
===================================================================
--- trunk/extensions/SemanticCompoundQueries/SCQ_QueryProcessor.php
2011-09-19 13:27:42 UTC (rev 97487)
+++ trunk/extensions/SemanticCompoundQueries/SCQ_QueryProcessor.php
2011-09-19 13:34:23 UTC (rev 97488)
@@ -31,16 +31,14 @@
$other_params = array();
$results = array();
+ $queryParams = array();
foreach ( $params as $param ) {
// Very primitive heuristic - if the parameter
// includes a square bracket, then it's a
// sub-query; otherwise it's a regular parameter.
if ( strpos( $param, '[' ) !== false ) {
- $sub_params = self::getSubParams( $param );
- $next_result =
self::getQueryResultFromFunctionParams( $sub_params, SMW_OUTPUT_WIKI );
-
- $results = self::mergeSMWQueryResults(
$results, $next_result->getResults() );
+ $queryParams[] = $param;
} else {
$parts = explode( '=', $param, 2 );
@@ -49,7 +47,22 @@
}
}
}
+
+ foreach ( $queryParams as $param ) {
+ $subQueryParams = self::getSubParams( $param );
+
+ if ( array_key_exists( 'format', $other_params ) &&
!array_key_exists( 'format', $subQueryParams ) ) {
+ $subQueryParams['format'] =
$other_params['format'];
+ }
+
+ $next_result = self::getQueryResultFromFunctionParams(
+ $subQueryParams,
+ SMW_OUTPUT_WIKI
+ );
+ $results = self::mergeSMWQueryResults( $results,
$next_result->getResults() );
+ }
+
$query_result = new SCQQueryResult(
$next_result->getPrintRequests(), new SMWQuery(), $results, smwfGetStore() );
if ( version_compare( SMW_VERSION, '1.6.1', '>' ) ) {
@@ -166,7 +179,7 @@
wfProfileIn( 'SCQQueryProcessor::getQueryResultFromQueryString'
);
if ( version_compare( SMW_VERSION, '1.6.1', '>' ) ) {
- $params = self::getProcessedParams( $params,
$extraprintouts );
+ $params = self::getProcessedParams( $params,
$extraprintouts, false );
}
$query = self::createQuery( $querystring, $params, $context,
null, $extraprintouts );
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs