Revision: 46162
Author:   mkroetzsch
Date:     2009-01-24 19:58:27 +0000 (Sat, 24 Jan 2009)

Log Message:
-----------
Avoid additional workload in hooks when Factbox is hidden anyway

Modified Paths:
--------------
    trunk/extensions/SemanticMediaWiki/includes/SMW_Factbox.php

Modified: trunk/extensions/SemanticMediaWiki/includes/SMW_Factbox.php
===================================================================
--- trunk/extensions/SemanticMediaWiki/includes/SMW_Factbox.php 2009-01-24 
19:57:45 UTC (rev 46161)
+++ trunk/extensions/SemanticMediaWiki/includes/SMW_Factbox.php 2009-01-24 
19:58:27 UTC (rev 46162)
@@ -23,17 +23,17 @@
                switch ($showfactbox) {
                        case SMW_FACTBOX_HIDDEN: // show never
                                wfProfileOut("SMWFactbox::printFactbox (SMW)");
-                       return;
+                       return '';
                        case SMW_FACTBOX_SPECIAL: // show only if there are 
special properties
                                if (!$semdata->hasVisibleSpecialProperties()) {
                                        wfProfileOut("SMWFactbox::printFactbox 
(SMW)");
-                                       return;
+                                       return '';
                                }
                        break;
                        case SMW_FACTBOX_NONEMPTY: // show only if non-empty
                                if ( !$semdata->hasVisibleProperties() ) {
                                        wfProfileOut("SMWFactbox::printFactbox 
(SMW)");
-                                       return;
+                                       return '';
                                }
                        break;
                // case SMW_FACTBOX_SHOWN: // just show ...
@@ -94,11 +94,6 @@
         */
        static public function getFactboxTextFromOutput($parseroutput, $title) {
                global $wgRequest, $smwgShowFactboxEdit, $smwgShowFactbox;
-               if (!isset($parseroutput->mSMWData) || 
$parseroutput->mSMWData->stubobject) {
-                       $semdata = smwfGetStore()->getSemanticData($title);
-               } else {
-                       $semdata = $parseroutput->mSMWData;
-               }
                $mws =  
(isset($parseroutput->mSMWMagicWords))?$parseroutput->mSMWMagicWords:array();
                if (in_array('SMW_SHOWFACTBOX',$mws)) {
                        $showfactbox = SMW_FACTBOX_NONEMPTY;
@@ -109,6 +104,15 @@
                } else {
                        $showfactbox = $smwgShowFactbox;
                }
+               if ($showfactbox == SMW_FACTBOX_HIDDEN) { // use shortcut
+                       return '';
+               }
+               // deal with complete dataset only if needed:
+               if (!isset($parseroutput->mSMWData) || 
$parseroutput->mSMWData->stubobject) {
+                       $semdata = smwfGetStore()->getSemanticData($title);
+               } else {
+                       $semdata = $parseroutput->mSMWData;
+               }
                return SMWFactbox::getFactboxText($semdata, $showfactbox);
        }
 
@@ -120,12 +124,16 @@
        static public function onOutputPageParserOutput($outputpage, 
$parseroutput) {
                global $wgTitle, $wgParser;
                $factbox = 
SMWFactbox::getFactboxTextFromOutput($parseroutput,$wgTitle);
-               $popts = new ParserOptions();
-               $po = $wgParser->parse( $factbox, $wgTitle, $popts );
-               $outputpage->mSMWFactboxText = $po->getText();
-               // do not forget to grab the outputs header items
-               SMWOutputs::requireFromParserOutput($po);
-               SMWOutputs::commitToOutputPage($outputpage);
+               if ($factbox != '') {
+                       $popts = new ParserOptions();
+                       $po = $wgParser->parse( $factbox, $wgTitle, $popts );
+                       $outputpage->mSMWFactboxText = $po->getText();
+                       // do not forget to grab the outputs header items
+                       SMWOutputs::requireFromParserOutput($po);
+                       SMWOutputs::commitToOutputPage($outputpage);
+               } else {
+                       $outputpage->mSMWFactboxText = '';
+               }
                return true;
        }
 



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

Reply via email to