From: jrobson Date: Thu, 7 Nov 2013 21:23:47 +0000 (-0800) Subject: Create prepareQuickTemplate function X-Git-Tag: 1.31.0-rc.0~18210 X-Git-Url: https://git.cyclocoop.org/%7B%7B%20url_for%28?a=commitdiff_plain;h=f5a0c2327ed65dea68fdca4443e401b75607cdd3;p=lhc%2Fweb%2Fwiklou.git Create prepareQuickTemplate function Skins should be able to easily add to templates their own variables. This helps with this. This helps drastically reduce to the code in the mobile skin and ensure it benefits from changes in core See: I43fc26bf334753b189e20921f142bade7658ac31 Change-Id: I0a9a7f10ea6a2e9c90c2a83e7c5f7fa56fa0fb93 --- diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php index 1e7ce13d92..f25545d264 100644 --- a/includes/SkinTemplate.php +++ b/includes/SkinTemplate.php @@ -217,15 +217,6 @@ class SkinTemplate extends Skin { * @param $out OutputPage */ function outputPage( OutputPage $out = null ) { - global $wgContLang; - global $wgScript, $wgStylePath; - global $wgMimeType, $wgJsMimeType; - global $wgXhtmlNamespaces, $wgHtml5Version; - global $wgDisableCounters, $wgSitename, $wgLogo; - global $wgMaxCredits, $wgShowCreditsIfMax; - global $wgPageShowWatchingUsers; - global $wgArticlePath, $wgScriptPath, $wgServer; - wfProfileIn( __METHOD__ ); Profiler::instance()->setTemplated( true ); @@ -237,14 +228,41 @@ class SkinTemplate extends Skin { } $out = $this->getOutput(); - $request = $this->getRequest(); $user = $this->getUser(); - $title = $this->getTitle(); wfProfileIn( __METHOD__ . '-init' ); $this->initPage( $out ); wfProfileOut( __METHOD__ . '-init' ); + $tpl = $this->prepareQuickTemplate( $out ); + // execute template + wfProfileIn( __METHOD__ . '-execute' ); + $res = $tpl->execute(); + wfProfileOut( __METHOD__ . '-execute' ); + + // result may be an error + $this->printOrError( $res ); + if ( $oldContext ) { + $this->setContext( $oldContext ); + } + } + + /** + * initialize various variables and generate the template + * + * @since 1.23 + * @param $out OutputPage + * @return QuickTemplate the template to be executed by outputPage + */ + protected function prepareQuickTemplate( OutputPage $out = null ) { + global $wgContLang, $wgScript, $wgStylePath, + $wgMimeType, $wgJsMimeType, $wgXhtmlNamespaces, $wgHtml5Version, + $wgDisableCounters, $wgSitename, $wgLogo, $wgMaxCredits, + $wgShowCreditsIfMax, $wgPageShowWatchingUsers, $wgArticlePath, + $wgScriptPath, $wgServer; + + $title = $this->getTitle(); + $request = $this->getRequest(); $tpl = $this->setupTemplateForOutput(); wfProfileIn( __METHOD__ . '-stuff-head' ); @@ -523,18 +541,8 @@ class SkinTemplate extends Skin { $tpl->set( 'dataAfterContent', $this->afterContentHook() ); wfProfileOut( __METHOD__ . '-stuff5' ); - // execute template - wfProfileIn( __METHOD__ . '-execute' ); - $res = $tpl->execute(); - wfProfileOut( __METHOD__ . '-execute' ); - - // result may be an error - $this->printOrError( $res ); - - if ( $oldContext ) { - $this->setContext( $oldContext ); - } wfProfileOut( __METHOD__ ); + return $tpl; } /**