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

Reply via email to