http://www.mediawiki.org/wiki/Special:Code/MediaWiki/97417

Revision: 97417
Author:   jeroendedauw
Date:     2011-09-18 13:58:44 +0000 (Sun, 18 Sep 2011)
Log Message:
-----------
up rel notes and attempt to fix bug

Modified Paths:
--------------
    trunk/extensions/SemanticMediaWiki/RELEASE-NOTES
    trunk/extensions/SemanticMediaWiki/includes/api/ApiSMWQuery.php
    
trunk/extensions/SemanticMediaWiki/includes/queryprinters/SMW_QueryPrinter.php
    trunk/extensions/SemanticMediaWiki/includes/storage/SMW_QueryResult.php

Modified: trunk/extensions/SemanticMediaWiki/RELEASE-NOTES
===================================================================
--- trunk/extensions/SemanticMediaWiki/RELEASE-NOTES    2011-09-18 13:01:37 UTC 
(rev 97416)
+++ trunk/extensions/SemanticMediaWiki/RELEASE-NOTES    2011-09-18 13:58:44 UTC 
(rev 97417)
@@ -9,6 +9,7 @@
 * Added definitions for missing params (sort, order, searchlabel) to the base 
query printer.
 * Added validation and manipulation of the format paremeter using Validator.
 * Added class parameter to the table format which allows setting the css 
class. 
+* Added alpha version of native SMW Ask API with moudles ask and askargs. 
 
 == SMW 1.6.1 ==
 

Modified: trunk/extensions/SemanticMediaWiki/includes/api/ApiSMWQuery.php
===================================================================
--- trunk/extensions/SemanticMediaWiki/includes/api/ApiSMWQuery.php     
2011-09-18 13:01:37 UTC (rev 97416)
+++ trunk/extensions/SemanticMediaWiki/includes/api/ApiSMWQuery.php     
2011-09-18 13:58:44 UTC (rev 97417)
@@ -61,12 +61,22 @@
                $result->setIndexedTagName( $serialized['results'], 'result' );
                $result->setIndexedTagName( $serialized['printrequests'], 
'printrequest' );
                
-               $result->addValue( 'query', null, $serialized );
+               foreach ( $serialized['results'] as $subjectName => $subject ) {
+                       if ( is_array( $subject ) && array_key_exists( 
'printeouts', $subject ) ) {
+                               foreach ( $subject['printeouts'] as $property 
=> $values ) {
+                                       if ( is_array( $values ) ) {
+                                               $result->setIndexedTagName( 
$serialized['results'][$subjectName]['printeouts'][$property], 'value' );
+                                       }
+                               }
+                       }
+               }
                
+               $result->addValue( null, 'query', $serialized );
+               
                if ( $queryResult->hasFurtherResults() ) {
                        // TODO: obtain continuation data from store
                        $result->disableSizeCheck();
-                       $result->addValue( 'query-continue', null, 0 );
+                       $result->addValue( null, 'query-continue', 0 );
                        $result->enableSizeCheck();
                }
        }

Modified: 
trunk/extensions/SemanticMediaWiki/includes/queryprinters/SMW_QueryPrinter.php
===================================================================
--- 
trunk/extensions/SemanticMediaWiki/includes/queryprinters/SMW_QueryPrinter.php  
    2011-09-18 13:01:37 UTC (rev 97416)
+++ 
trunk/extensions/SemanticMediaWiki/includes/queryprinters/SMW_QueryPrinter.php  
    2011-09-18 13:58:44 UTC (rev 97417)
@@ -190,7 +190,7 @@
                                return $result;
                        }
                }
-
+               
                // Get output from printer:
                $result = $this->getResultText( $results, $outputmode );
 

Modified: 
trunk/extensions/SemanticMediaWiki/includes/storage/SMW_QueryResult.php
===================================================================
--- trunk/extensions/SemanticMediaWiki/includes/storage/SMW_QueryResult.php     
2011-09-18 13:01:37 UTC (rev 97416)
+++ trunk/extensions/SemanticMediaWiki/includes/storage/SMW_QueryResult.php     
2011-09-18 13:58:44 UTC (rev 97417)
@@ -71,6 +71,11 @@
         * @param boolean $furtherRes
         */
        public function __construct( array $printRequests, SMWQuery $query, 
array $results, SMWStore $store, $furtherRes = false ) {
+               // FIXME: this is a evil hack treating the symptom of something 
going wrong closer to the store
+//             if ( count( $results ) > 0 && $results[0]->getInterwiki() === 
SMW_SQL2_SMWBORDERIW ) {
+//                     unset( $results[0] );
+//             }
+               
                $this->mResults = $results;
                reset( $this->mResults );
                $this->mPrintRequests = $printRequests;
@@ -266,15 +271,22 @@
                }
                
                foreach ( $this->mResults as /* SMWDIWikiPage */ $diWikiPage ) {
-                       $result = array();
+                       $result = array( 'printeouts' => array() );
                        
                        foreach ( $this->mPrintRequests as /* SMWPrintRequest 
*/ $printRequest ) {
                                $resultAarray = new SMWResultArray( 
$diWikiPage, $printRequest, $this->mStore );
                                
-                               $result[$printRequest->getLabel()] = array_map(
-                                       array( __class__, 
'getDataItemSerialization' ),
-                                       $resultAarray->getContent()
-                               );
+                               if ( $printRequest->getMode() === 
SMWPrintRequest::PRINT_THIS ) {
+                                       $dataItems = 
$resultAarray->getContent();
+                                       $result += 
$this->getDataItemSerialization( array_shift( $dataItems ) );
+                               }
+                               else {
+                                       
$result['printeouts'][$printRequest->getLabel()] = array_map(
+                                               array( __class__, 
'getDataItemSerialization' ),
+                                               $resultAarray->getContent()
+                                       );
+                               }
+
                        }
                        
                        $results[$diWikiPage->getTitle()->getFullText()] = 
$result;


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to