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