[Fusionforge-commits] r16058 - branches/wheezy/plugins/mediawiki/mediawiki-skin

Thorsten Glaser mirabilos at fusionforge.org
Mon Aug 6 11:42:21 CEST 2012


Author: mirabilos
Date: 2012-08-06 11:42:21 +0200 (Mon, 06 Aug 2012)
New Revision: 16058

Modified:
   branches/wheezy/plugins/mediawiki/mediawiki-skin/FusionForge.php
   branches/wheezy/plugins/mediawiki/mediawiki-skin/FusionForge.php.patch
Log:
first draft at new skin, mostly from evolvis

styling still missing


Modified: branches/wheezy/plugins/mediawiki/mediawiki-skin/FusionForge.php
===================================================================
--- branches/wheezy/plugins/mediawiki/mediawiki-skin/FusionForge.php	2012-08-06 09:36:11 UTC (rev 16057)
+++ branches/wheezy/plugins/mediawiki/mediawiki-skin/FusionForge.php	2012-08-06 09:42:21 UTC (rev 16058)
@@ -20,33 +20,47 @@
  */
 class SkinFusionForge extends SkinTemplate {
 	/** Using fusionforge. */
-	function initPage( OutputPage $out ) {
-		parent::initPage( $out );
-		$this->skinname  = 'fusionforge';
-		$this->stylename = 'fusionforge';
-		$this->template  = 'FusionForgeTemplate';
+	var $skinname = 'fusionforge', $stylename = 'fusionforge',
+		$template = 'FusionForgeTemplate', $useHeadElement = true;
 
+	function setupTemplate( $classname, $repository = false, $cache_dir = false ) {
+		$tc = new $classname();
+
+		$tc->params = array();
+		if (($tc->project = $project =
+		    group_get_object_by_name($GLOBALS['fusionforgeproject']))) {
+			$tc->params['group'] = $GLOBALS['group_id'] =
+			    $project->getID();
+			$tc->params['toptab'] = 'mediawiki';
+		}
+
+		return $tc;
 	}
 
+	/**
+	 * @param $out OutputPage
+	 */
 	function setupSkinUserCss( OutputPage $out ) {
 		global $wgHandheldStyle;
-
 		parent::setupSkinUserCss( $out );
 
-		// Append to the default screen common & print styles...
-		$out->addStyle( 'monobook/main.css', 'screen' );
-		$out->addStyle( 'fusionforge/fusionforge.css', 'screen' );
+		$out->addModuleStyles( 'skins.monobook' );
+
+		// Ugh. Can't do this properly because $wgHandheldStyle may be a URL
 		if( $wgHandheldStyle ) {
 			// Currently in testing... try 'chick/main.css'
 			$out->addStyle( $wgHandheldStyle, 'handheld' );
 		}
 
-		$out->addStyle( 'monobook/IE50Fixes.css', 'screen', 'lt IE 5.5000' );
-		$out->addStyle( 'monobook/IE55Fixes.css', 'screen', 'IE 5.5000' );
+		// TODO: Migrate all of these
 		$out->addStyle( 'monobook/IE60Fixes.css', 'screen', 'IE 6' );
 		$out->addStyle( 'monobook/IE70Fixes.css', 'screen', 'IE 7' );
 
-		$out->addStyle( 'monobook/rtl.css', 'screen', '', 'rtl' );
+		/* add FusionForge global and per-FF-theme styles */
+		$out->addStyle('/themes/css/mediawiki.css', 'screen');
+		$out->addStyle('/themes/' . $GLOBALS['HTML']->_theme .
+		    '/mediawiki.css', 'screen');
+
 	}
 }
 
@@ -54,8 +68,10 @@
  * @todo document
  * @ingroup Skins
  */
-class FusionForgeTemplate extends QuickTemplate {
-	var $skin;
+class FusionForgeTemplate extends BaseTemplate {
+
+	var $project = false;
+
 	/**
 	 * Template filter callback for FusionForge skin.
 	 * Takes an associative array of data set from a SkinTemplate-based
@@ -65,243 +81,210 @@
 	 * @access private
 	 */
 	function execute() {
-		global $wgRequest, $sysDTDs;
-		$this->skin = $skin = $this->data['skin'];
-		$action = $wgRequest->getText( 'action' );
+		global $wgHtml5;
 
 		// Suppress warnings to prevent notices about missing indexes in $this->data
 		wfSuppressWarnings();
 
-		echo $sysDTDs['transitional']['doctype']; ?>
-<html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
-	foreach($this->data['xhtmlnamespaces'] as $tag => $ns) {
-		?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
-	} ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
-	<head>
-		<meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
-		<?php $this->html('headlinks') ?>
-		<title><?php $this->text('pagetitle') ?></title>
-        	<!-- FUSIONFORGE Stylesheet BEGIN -->
-		<?php if (!forge_get_config('use_frame', 'mediawiki') && !$this->data['printable']){
-		$GLOBALS['HTML']->headerFavIcon();
-		$GLOBALS['HTML']->headerRSS();
-		$GLOBALS['HTML']->headerSearch();
-	} ?>
-		<?php if (!forge_get_config('use_frame', 'mediawiki') && !$this->data['printable']){ $GLOBALS['HTML']->headerCSS(); } ?>
-        	<!-- FUSIONFORGE Stylesheet END -->
-		<?php $this->html('csslinks') ?>
+		$this->html( 'headelement' );
 
-		<!--[if lt IE 7]><script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath') ?>/common/IEFixes.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"></script>
-		<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
+		echo "\n<!-- FUSIONFORGE BodyHeader BEGIN -->\n";
+		$GLOBALS['HTML']->bodyHeader($this->params);
+		echo "<div style=\"font-size:x-small;\">\n";
+		echo "<!-- FUSIONFORGE BodyHeader END -->\n";
 
-		<?php print Skin::makeGlobalVariablesScript( $this->data ); ?>
+?><div id="globalWrapper">
+<div id="column-content"><div id="content">
+	<a id="top"></a>
+	<?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
 
-		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
-		<!-- Head Scripts -->
-<?php $this->html('headscripts') ?>
-<?php	if($this->data['jsvarurl']) { ?>
-		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl') ?>"><!-- site js --></script>
-<?php	} ?>
-<?php	if($this->data['pagecss']) { ?>
-		<style type="text/css"><?php $this->html('pagecss') ?></style>
-<?php	}
-		if($this->data['usercss']) { ?>
-		<style type="text/css"><?php $this->html('usercss') ?></style>
-<?php	}
-		if($this->data['userjs']) { ?>
-		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('userjs' ) ?>"></script>
-<?php	}
-		if($this->data['userjsprev']) { ?>
-		<script type="<?php $this->text('jsmimetype') ?>"><?php $this->html('userjsprev') ?></script>
-<?php	}
-		if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>
-        	<!-- FUSIONFORGE Stylesheet BEGIN -->
-		<?php if (!forge_get_config('use_frame', 'mediawiki') && !$this->data['printable']){ $GLOBALS['HTML']->headerCSS(); } ?>
-        	<!-- FUSIONFORGE Stylesheet END -->
-	</head>
-<body id="mydoc" <?php if($this->data['body_ondblclick']) { ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
-<?php if($this->data['body_onload']) { ?> onload="<?php $this->text('body_onload') ?>"<?php } ?>
- class="mediawiki <?php $this->text('dir') ?> <?php $this->text('pageclass') ?> <?php $this->text('skinnameclass') ?>">
-        <!-- FUSIONFORGE BodyHeader BEGIN -->
-        <?php
-	if (!forge_get_config('use_frame', 'mediawiki') && !$this->data['printable']){
-        	$project=group_get_object_by_name($GLOBALS['fusionforgeproject']);
-        	if ($project) {
-                	$GLOBALS['group_id']=$project->getID();
-                	$params['group']=$GLOBALS['group_id'];
-                	$params['toptab']='mediawiki';
-                	$params['h1']='';
-                	$params['title']='';
-                	$GLOBALS['HTML']->bodyHeader($params);
-        	}
-	}
-        ?>
-        <!-- FUSIONFORGE BodyHeader END -->
-	<div id="globalWrapper">
-		<div id="column-content">
-	<div id="content">
-		<a name="top" id="top"></a>
-		<?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
-		<h1 id="firstHeading" class="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?></h1>
-		<div id="bodyContent">
-			<h3 id="siteSub"><?php $this->msg('tagline') ?></h3>
-			<div id="contentSub"><?php $this->html('subtitle') ?></div>
-			<?php if($this->data['undelete']) { ?><div id="contentSub2"><?php     $this->html('undelete') ?></div><?php } ?>
-			<?php if($this->data['newtalk'] ) { ?><div class="usermessage"><?php $this->html('newtalk')  ?></div><?php } ?>
-			<?php if($this->data['showjumplinks']) { ?><div id="jump-to-nav"><?php $this->msg('jumpto') ?> <a href="#column-one"><?php $this->msg('jumptonavigation') ?></a>, <a href="#searchInput"><?php $this->msg('jumptosearch') ?></a></div><?php } ?>
-			<!-- start content -->
-			<?php $this->html('bodytext') ?>
-			<?php if($this->data['catlinks']) { $this->html('catlinks'); } ?>
-			<!-- end content -->
-			<?php if($this->data['dataAfterContent']) { $this->html ('dataAfterContent'); } ?>
-			<div class="visualClear"></div>
-		</div>
+	<h1 id="firstHeading" class="firstHeading"><span<?php if ($wgHtml5) echo ' dir="auto"'; ?>><?php $this->html('title') ?></span></h1>
+	<div id="bodyContent" class="mw-body">
+		<div id="siteSub"><?php $this->msg('tagline') ?></div>
+		<div id="contentSub"<?php $this->html('userlangattributes') ?>><?php $this->html('subtitle') ?></div>
+<?php if($this->data['undelete']) { ?>
+		<div id="contentSub2"><?php $this->html('undelete') ?></div>
+<?php } ?><?php if($this->data['newtalk'] ) { ?>
+		<div class="usermessage"><?php $this->html('newtalk')  ?></div>
+<?php } ?><?php if($this->data['showjumplinks']) { ?>
+		<div id="jump-to-nav" class="mw-jump"><?php $this->msg('jumpto') ?> <a href="#column-one"><?php $this->msg('jumptonavigation') ?></a>, <a href="#searchInput"><?php $this->msg('jumptosearch') ?></a></div>
+<?php } ?>
+		<!-- start content -->
+<?php $this->html('bodytext') ?>
+		<?php if($this->data['catlinks']) { $this->html('catlinks'); } ?>
+		<!-- end content -->
+		<?php if($this->data['dataAfterContent']) { $this->html ('dataAfterContent'); } ?>
+		<div class="visualClear"></div>
 	</div>
-		</div>
-		<div id="column-one">
-	<div id="p-cactions" class="portlet">
-		<h5><?php $this->msg('views') ?></h5>
-		<div class="pBody">
-			<ul>
-	<?php		foreach($this->data['content_actions'] as $key => $tab) {
-					echo '
-				 <li id="' . Sanitizer::escapeId( "ca-$key" ) . '"';
-					if( $tab['class'] ) {
-						echo ' class="'.htmlspecialchars($tab['class']).'"';
-					}
-					echo'><a href="'.htmlspecialchars($tab['href']).'"';
-					# We don't want to give the watch tab an accesskey if the
-					# page is being edited, because that conflicts with the
-					# accesskey on the watch checkbox.  We also don't want to
-					# give the edit tab an accesskey, because that's fairly su-
-					# perfluous and conflicts with an accesskey (Ctrl-E) often
-					# used for editing in Safari.
-				 	if( in_array( $action, array( 'edit', 'submit' ) )
-				 	&& in_array( $key, array( 'edit', 'watch', 'unwatch' ))) {
-				 		echo $skin->tooltip( "ca-$key" );
-				 	} else {
-				 		echo $skin->tooltipAndAccesskey( "ca-$key" );
-				 	}
-				 	echo '>'.htmlspecialchars($tab['text']).'</a></li>';
-				} ?>
-			</ul>
-		</div>
-	</div>
+</div></div>
+<div id="column-one"<?php $this->html('userlangattributes')  ?>>
+<?php $this->cactions(); ?>
 	<div class="portlet" id="p-personal">
 		<h5><?php $this->msg('personaltools') ?></h5>
 		<div class="pBody">
-			<ul>
-<?php 			foreach($this->data['personal_urls'] as $key => $item) { ?>
-				<li id="<?php echo Sanitizer::escapeId( "pt-$key" ) ?>"<?php
-					if (isset($item['active']) && $item['active']) { ?> class="active"<?php } ?>><a href="<?php
-				echo htmlspecialchars($item['href']) ?>"<?php echo $skin->tooltipAndAccesskey('pt-'.$key) ?><?php
-				if(!empty($item['class'])) { ?> class="<?php
-				echo htmlspecialchars($item['class']) ?>"<?php } ?>><?php
-				echo htmlspecialchars($item['text']) ?></a></li>
-<?php			} ?>
-			</ul>
+<?php
+	$ul_shown = false;
+	foreach ($this->getPersonalTools() as $key => $item) {
+		if (!$ul_shown) {
+?>
+			<ul<?php $this->html('userlangattributes') ?>>
+<?php
+			$ul_shown = true;
+		}
+		echo "\n" . $this->makeListItem($key, $item);
+	}
+	if ($ul_shown) {
+		echo "\n</ul>\n";
+	}
+?>
 		</div>
 	</div>
 	<div class="portlet" id="p-logo">
-		<a style="background-image: url(<?php $this->text('logopath') ?>);" <?php
-			?>href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>"<?php
-			echo $skin->tooltipAndAccesskey('p-logo') ?>></a>
+<?php
+			echo Html::element( 'a', array(
+				'href' => $this->data['nav_urls']['mainpage']['href'],
+				'style' => "background-image: url({$this->data['logopath']});" )
+				+ Linker::tooltipAndAccesskeyAttribs('p-logo') ); ?>
+
 	</div>
-	<script type="<?php $this->text('jsmimetype') ?>"> if (window.isMSIE55) fixalpha(); </script>
 <?php
-		$sidebar = $this->data['sidebar'];
-		if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
-		if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
-		if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
-		foreach ($sidebar as $boxName => $cont) {
-			if ( $boxName == 'SEARCH' ) {
-				$this->searchBox();
-			} elseif ( $boxName == 'TOOLBOX' ) {
-				$this->toolbox();
-			} elseif ( $boxName == 'LANGUAGES' ) {
-				$this->languageBox();
-			} else {
-				$this->customBox( $boxName, $cont );
-			}
-		}
+	$this->renderPortals( $this->data['sidebar'] );
 ?>
-		</div><!-- end of the left (by default at least) column -->
-			<div class="visualClear"></div>
-			<div id="footer">
+</div><!-- end of the left (by default at least) column -->
+<div class="visualClear"></div>
 <?php
-		if($this->data['poweredbyico']) { ?>
-				<div id="f-poweredbyico"><?php $this->html('poweredbyico') ?></div>
-<?php 	}
-		if($this->data['copyrightico']) { ?>
-				<div id="f-copyrightico"><?php $this->html('copyrightico') ?></div>
-<?php	}
+	$validFooterIcons = $this->getFooterIcons( "icononly" );
+	$validFooterLinks = $this->getFooterLinks( "flat" ); // Additional footer links
 
-		// Generate additional footer links
-		$footerlinks = array(
-			'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',
-			'privacy', 'about', 'disclaimer', 'tagline',
-		);
-		$validFooterLinks = array();
-		foreach( $footerlinks as $aLink ) {
-			if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
-				$validFooterLinks[] = $aLink;
-			}
-		}
+	if ( count( $validFooterIcons ) + count( $validFooterLinks ) > 0 ) { ?>
+<div id="footer"<?php $this->html('userlangattributes') ?>>
+<?php
+		$footerEnd = '</div>';
+	} else {
+		$footerEnd = '';
+	}
+	foreach ( $validFooterIcons as $blockName => $footerIcons ) { ?>
+	<div id="f-<?php echo htmlspecialchars($blockName); ?>ico">
+<?php foreach ( $footerIcons as $icon ) { ?>
+		<?php echo $this->getSkin()->makeFooterIcon( $icon ); ?>
+
+<?php }
+?>
+	</div>
+<?php }
+
 		if ( count( $validFooterLinks ) > 0 ) {
-?>			<ul id="f-list">
+?>	<ul id="f-list">
 <?php
-			foreach( $validFooterLinks as $aLink ) {
-				if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
-?>					<li id="<?php echo$aLink?>"><?php $this->html($aLink) ?></li>
-<?php 			}
+			foreach( $validFooterLinks as $aLink ) { ?>
+		<li id="<?php echo $aLink ?>"><?php $this->html($aLink) ?></li>
+<?php
 			}
 ?>
-			</ul>
+	</ul>
 <?php	}
+echo $footerEnd;
 ?>
-		</div>
-</div>
-<?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>
-<?php $this->html('reporttime') ?>
-<?php if ( $this->data['debug'] ): ?>
-<!-- Debug output:
-<?php $this->text( 'debug' ); ?>
 
--->
-<?php endif; ?>
-        <!-- FUSIONFORGE Footer BEGIN -->
-<?php	if (!forge_get_config('use_frame', 'mediawiki') && !$this->data['printable']){
-		$GLOBALS['HTML']->footer($params);
-	} else { ?>
-</body></html>
-<?php	} ?>
+</div>
 <?php
-	wfRestoreWarnings();
+		$this->printTrail();
+		echo "</div>\n";
+		$GLOBALS['HTML']->footer($this->params);
+		wfRestoreWarnings();
 	} // end of execute() method
 
 	/*************************************************************************************************/
+
+	protected function renderPortals( $sidebar ) {
+		if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
+		if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
+		if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
+
+		if (session_loggedin()) {
+			$efbox_log_text = _('Log Out');
+			$efbox_log_link = "/account/logout.php?return_to=" .
+			    urlencode(getStringFromServer('REQUEST_URI'));
+		} else {
+			$efbox_log_text = _('Log In');
+			$efbox_log_link = "/account/login.php?return_to=" .
+			    urlencode(getStringFromServer('REQUEST_URI'));
+		}
+		$efbox_prj_link = "/projects/" .
+		    $this->project->getUnixName() . "/";
+		$this->customBox("FusionForge", array(
+			"project" => array(
+				"id" => "fusionforge_project",
+				"href" => $efbox_prj_link,
+				"text" => _("Project Summary"),
+			    ),
+			"loginout" => array(
+				"id" => "fusionforge_loginout",
+				"href" => $efbox_log_link,
+				"text" => $efbox_log_text,
+			    ),
+		    ));
+
+		foreach( $sidebar as $boxName => $content ) {
+			if ( $content === false )
+				continue;
+
+			if ( $boxName == 'SEARCH' ) {
+				$this->searchBox();
+			} elseif ( $boxName == 'TOOLBOX' ) {
+				$this->toolbox();
+			} elseif ( $boxName == 'LANGUAGES' ) {
+				$this->languageBox();
+			} else {
+				$this->customBox( $boxName, $content );
+			}
+		}
+	}
+
 	function searchBox() {
 		global $wgUseTwoButtonsSearchForm;
 ?>
 	<div id="p-search" class="portlet">
 		<h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
 		<div id="searchBody" class="pBody">
-			<form action="<?php $this->text('wgScript') ?>" id="searchform"><div>
+			<form action="<?php $this->text('wgScript') ?>" id="searchform">
 				<input type='hidden' name="title" value="<?php $this->text('searchtitle') ?>"/>
-				<input id="searchInput" name="search" type="text"<?php echo $this->skin->tooltipAndAccesskey('search');
-					if( isset( $this->data['search'] ) ) {
-						?> value="<?php $this->text('search') ?>"<?php } ?> />
-				<input type='submit' name="go" class="searchButton" id="searchGoButton"	value="<?php $this->msg('searcharticle') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> /><?php if ($wgUseTwoButtonsSearchForm) { ?> 
-				<input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> /><?php } else { ?>
+				<?php echo $this->makeSearchInput(array( "id" => "searchInput" )); ?>
 
-				<div><a href="<?php $this->text('searchaction') ?>" rel="search"><?php $this->msg('powersearch-legend') ?></a></div><?php } ?>
+				<?php echo $this->makeSearchButton("go", array( "id" => "searchGoButton", "class" => "searchButton" ));
+				if ($wgUseTwoButtonsSearchForm): ?> 
+				<?php echo $this->makeSearchButton("fulltext", array( "id" => "mw-searchButton", "class" => "searchButton" ));
+				else: ?>
 
-			</div></form>
+				<div><a href="<?php $this->text('searchaction') ?>" rel="search"><?php $this->msg('powersearch-legend') ?></a></div><?php
+				endif; ?>
+
+			</form>
 		</div>
 	</div>
 <?php
 	}
 
+	/**
+	 * Prints the cactions bar.
+	 * Shared between MonoBook and Modern
+	 */
+	function cactions() {
+?>
+	<div id="p-cactions" class="portlet">
+		<h5><?php $this->msg('views') ?></h5>
+		<div class="pBody">
+			<ul><?php
+				foreach($this->data['content_actions'] as $key => $tab) {
+					echo '
+				' . $this->makeListItem( $key, $tab );
+				} ?>
+
+			</ul>
+		</div>
+	</div>
+<?php
+	}
 	/*************************************************************************************************/
 	function toolbox() {
 ?>
@@ -310,51 +293,13 @@
 		<div class="pBody">
 			<ul>
 <?php
-		if($this->data['notspecialpage']) { ?>
-				<li id="t-whatlinkshere"><a href="<?php
-				echo htmlspecialchars($this->data['nav_urls']['whatlinkshere']['href'])
-				?>"<?php echo $this->skin->tooltipAndAccesskey('t-whatlinkshere') ?>><?php $this->msg('whatlinkshere') ?></a></li>
+		foreach ( $this->getToolbox() as $key => $tbitem ) { ?>
+				<?php echo $this->makeListItem($key, $tbitem); ?>
+
 <?php
-			if( $this->data['nav_urls']['recentchangeslinked'] ) { ?>
-				<li id="t-recentchangeslinked"><a href="<?php
-				echo htmlspecialchars($this->data['nav_urls']['recentchangeslinked']['href'])
-				?>"<?php echo $this->skin->tooltipAndAccesskey('t-recentchangeslinked') ?>><?php $this->msg('recentchangeslinked') ?></a></li>
-<?php 		}
 		}
-		if(isset($this->data['nav_urls']['trackbacklink'])) { ?>
-			<li id="t-trackbacklink"><a href="<?php
-				echo htmlspecialchars($this->data['nav_urls']['trackbacklink']['href'])
-				?>"<?php echo $this->skin->tooltipAndAccesskey('t-trackbacklink') ?>><?php $this->msg('trackbacklink') ?></a></li>
-<?php 	}
-		if($this->data['feeds']) { ?>
-			<li id="feedlinks"><?php foreach($this->data['feeds'] as $key => $feed) {
-					?><a id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>" href="<?php
-					echo htmlspecialchars($feed['href']) ?>" rel="alternate" type="application/<?php echo $key ?>+xml" class="feedlink"<?php echo $this->skin->tooltipAndAccesskey('feed-'.$key) ?>><?php echo htmlspecialchars($feed['text'])?></a> 
-					<?php } ?></li><?php
-		}
-
-		foreach( array('contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
-
-			if($this->data['nav_urls'][$special]) {
-				?><li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
-				?>"<?php echo $this->skin->tooltipAndAccesskey('t-'.$special) ?>><?php $this->msg($special) ?></a></li>
-<?php		}
-		}
-
-		if(!empty($this->data['nav_urls']['print']['href'])) { ?>
-				<li id="t-print"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['print']['href'])
-				?>" rel="alternate"<?php echo $this->skin->tooltipAndAccesskey('t-print') ?>><?php $this->msg('printableversion') ?></a></li><?php
-		}
-
-		if(!empty($this->data['nav_urls']['permalink']['href'])) { ?>
-				<li id="t-permalink"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['permalink']['href'])
-				?>"<?php echo $this->skin->tooltipAndAccesskey('t-permalink') ?>><?php $this->msg('permalink') ?></a></li><?php
-		} elseif ($this->data['nav_urls']['permalink']['href'] === '') { ?>
-				<li id="t-ispermalink"<?php echo $this->skin->tooltip('t-ispermalink') ?>><?php $this->msg('permalink') ?></li><?php
-		}
-
-		wfRunHooks( 'FusionForgeTemplateToolboxEnd', array( &$this ) );
-		wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this ) );
+		wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
+		wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
 ?>
 			</ul>
 		</div>
@@ -367,12 +312,12 @@
 		if( $this->data['language_urls'] ) {
 ?>
 	<div id="p-lang" class="portlet">
-		<h5><?php $this->msg('otherlanguages') ?></h5>
+		<h5<?php $this->html('userlangattributes') ?>><?php $this->msg('otherlanguages') ?></h5>
 		<div class="pBody">
 			<ul>
-<?php		foreach($this->data['language_urls'] as $langlink) { ?>
-				<li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
-				?><a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'] ?></a></li>
+<?php		foreach($this->data['language_urls'] as $key => $langlink) { ?>
+				<?php echo $this->makeListItem($key, $langlink); ?>
+
 <?php		} ?>
 			</ul>
 		</div>
@@ -383,16 +328,21 @@
 
 	/*************************************************************************************************/
 	function customBox( $bar, $cont ) {
+		$portletAttribs = array( 'class' => 'generated-sidebar portlet', 'id' => Sanitizer::escapeId( "p-$bar" ) );
+		$tooltip = Linker::titleAttrib( "p-$bar" );
+		if ( $tooltip !== false ) {
+			$portletAttribs['title'] = $tooltip;
+		}
+		echo '	' . Html::openElement( 'div', $portletAttribs );
 ?>
-	<div class='generated-sidebar portlet' id='<?php echo Sanitizer::escapeId( "p-$bar" ) ?>'<?php echo $this->skin->tooltip('p-'.$bar) ?>>
-		<h5><?php $out = wfMsg( $bar ); if (wfEmptyMsg($bar, $out)) echo $bar; else echo $out; ?></h5>
+
+		<h5><?php $msg = wfMessage( $bar ); echo htmlspecialchars( $msg->exists() ? $msg->text() : $bar ); ?></h5>
 		<div class='pBody'>
 <?php   if ( is_array( $cont ) ) { ?>
 			<ul>
 <?php 			foreach($cont as $key => $val) { ?>
-				<li id="<?php echo Sanitizer::escapeId($val['id']) ?>"<?php
-					if (isset($val['active']) && $val['active']) { ?> class="active" <?php }
-				?>><a href="<?php echo htmlspecialchars($val['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey($val['id']) ?>><?php echo htmlspecialchars($val['text']) ?></a></li>
+				<?php echo $this->makeListItem($key, $val); ?>
+
 <?php			} ?>
 			</ul>
 <?php   } else {
@@ -404,7 +354,4 @@
 	</div>
 <?php
 	}
-
 } // end of class
-
-?>

Modified: branches/wheezy/plugins/mediawiki/mediawiki-skin/FusionForge.php.patch
===================================================================
--- branches/wheezy/plugins/mediawiki/mediawiki-skin/FusionForge.php.patch	2012-08-06 09:36:11 UTC (rev 16057)
+++ branches/wheezy/plugins/mediawiki/mediawiki-skin/FusionForge.php.patch	2012-08-06 09:42:21 UTC (rev 16058)
@@ -1,76 +1,99 @@
---- FusionForge.php.renamed	2010-04-29 23:18:01.000000000 +0200
-+++ FusionForge.php	2010-04-29 23:05:54.000000000 +0200
-@@ -34,18 +34,19 @@
- 		parent::setupSkinUserCss( $out );
+--- FusionForge.php.renamed	2012-08-06 11:35:42.000000000 +0200
++++ FusionForge.php	2012-08-06 11:38:49.000000000 +0200
+@@ -23,6 +23,20 @@
+ 	var $skinname = 'fusionforge', $stylename = 'fusionforge',
+ 		$template = 'FusionForgeTemplate', $useHeadElement = true;
  
- 		// Append to the default screen common & print styles...
--		$out->addStyle( 'fusionforge/main.css', 'screen' );
-+		$out->addStyle( 'monobook/main.css', 'screen' );
-+		$out->addStyle( 'fusionforge/fusionforge.css', 'screen' );
- 		if( $wgHandheldStyle ) {
- 			// Currently in testing... try 'chick/main.css'
- 			$out->addStyle( $wgHandheldStyle, 'handheld' );
- 		}
++	function setupTemplate( $classname, $repository = false, $cache_dir = false ) {
++		$tc = new $classname();
++
++		$tc->params = array();
++		if (($tc->project = $project =
++		    group_get_object_by_name($GLOBALS['fusionforgeproject']))) {
++			$tc->params['group'] = $GLOBALS['group_id'] =
++			    $project->getID();
++			$tc->params['toptab'] = 'mediawiki';
++		}
++
++		return $tc;
++	}
++
+ 	/**
+ 	 * @param $out OutputPage
+ 	 */
+@@ -42,6 +56,11 @@
+ 		$out->addStyle( 'monobook/IE60Fixes.css', 'screen', 'IE 6' );
+ 		$out->addStyle( 'monobook/IE70Fixes.css', 'screen', 'IE 7' );
  
--		$out->addStyle( 'fusionforge/IE50Fixes.css', 'screen', 'lt IE 5.5000' );
--		$out->addStyle( 'fusionforge/IE55Fixes.css', 'screen', 'IE 5.5000' );
--		$out->addStyle( 'fusionforge/IE60Fixes.css', 'screen', 'IE 6' );
--		$out->addStyle( 'fusionforge/IE70Fixes.css', 'screen', 'IE 7' );
-+		$out->addStyle( 'monobook/IE50Fixes.css', 'screen', 'lt IE 5.5000' );
-+		$out->addStyle( 'monobook/IE55Fixes.css', 'screen', 'IE 5.5000' );
-+		$out->addStyle( 'monobook/IE60Fixes.css', 'screen', 'IE 6' );
-+		$out->addStyle( 'monobook/IE70Fixes.css', 'screen', 'IE 7' );
- 
--		$out->addStyle( 'fusionforge/rtl.css', 'screen', '', 'rtl' );
-+		$out->addStyle( 'monobook/rtl.css', 'screen', '', 'rtl' );
++		/* add FusionForge global and per-FF-theme styles */
++		$out->addStyle('/themes/css/mediawiki.css', 'screen');
++		$out->addStyle('/themes/' . $GLOBALS['HTML']->_theme .
++		    '/mediawiki.css', 'screen');
++
  	}
  }
  
-@@ -80,6 +81,10 @@
- 		<meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
- 		<?php $this->html('headlinks') ?>
- 		<title><?php $this->text('pagetitle') ?></title>
-+        	<!-- FUSIONFORGE Stylesheet BEGIN -->
-+		<?php if (!$GLOBALS['sys_use_mwframe']){ $GLOBALS['HTML']->headerLink(); } ?>
-+		<?php if (!$GLOBALS['sys_use_mwframe']){ $GLOBALS['HTML']->headerCSS(); } ?>
-+        	<!-- FUSIONFORGE Stylesheet END -->
- 		<?php $this->html('csslinks') ?>
+@@ -51,6 +70,8 @@
+  */
+ class FusionForgeTemplate extends BaseTemplate {
  
- 		<!--[if lt IE 7]><script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath') ?>/common/IEFixes.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"></script>
-@@ -107,9 +112,22 @@
- <?php	}
- 		if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>
- 	</head>
--<body<?php if($this->data['body_ondblclick']) { ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
-+<body id="mydoc" <?php if($this->data['body_ondblclick']) { ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
- <?php if($this->data['body_onload']) { ?> onload="<?php $this->text('body_onload') ?>"<?php } ?>
-  class="mediawiki <?php $this->text('dir') ?> <?php $this->text('pageclass') ?> <?php $this->text('skinnameclass') ?>">
-+        <!-- FUSIONFORGE BodyHeader BEGIN -->
-+        <?php
-+	if (!$GLOBALS['sys_use_mwframe']){
-+        	$project=group_get_object_by_name($GLOBALS['fusionforgeproject']);
-+        	if ($project) {
-+			$GLOBALS['group_id']=$project->getID();
-+                	$params['group']=$GLOBALS['group_id'];
-+                	$params['toptab']='mediawiki';
-+                	$GLOBALS['HTML']->bodyHeader($params);
-+        	}
-+	}
-+        ?>
-+        <!-- FUSIONFORGE BodyHeader END -->
- 	<div id="globalWrapper">
- 		<div id="column-content">
- 	<div id="content">
-@@ -242,7 +260,12 @@
++	var $project = false;
++
+ 	/**
+ 	 * Template filter callback for FusionForge skin.
+ 	 * Takes an associative array of data set from a SkinTemplate-based
+@@ -66,6 +87,12 @@
+ 		wfSuppressWarnings();
  
- -->
- <?php endif; ?>
-+        <!-- FUSIONFORGE Footer BEGIN -->
-+<?php	if (!$GLOBALS['sys_use_mwframe']){
-+		$GLOBALS['HTML']->footer($params);
-+	} else { ?>
- </body></html>
-+<?php	} ?>
+ 		$this->html( 'headelement' );
++
++		echo "\n<!-- FUSIONFORGE BodyHeader BEGIN -->\n";
++		$GLOBALS['HTML']->bodyHeader($this->params);
++		echo "<div style=\"font-size:x-small;\">\n";
++		echo "<!-- FUSIONFORGE BodyHeader END -->\n";
++
+ ?><div id="globalWrapper">
+ <div id="column-content"><div id="content">
+ 	<a id="top"></a>
+@@ -162,8 +189,8 @@
+ </div>
  <?php
- 	wfRestoreWarnings();
+ 		$this->printTrail();
+-		echo Html::closeElement( 'body' );
+-		echo Html::closeElement( 'html' );
++		echo "</div>\n";
++		$GLOBALS['HTML']->footer($this->params);
+ 		wfRestoreWarnings();
  	} // end of execute() method
+ 
+@@ -174,6 +201,30 @@
+ 		if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
+ 		if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
+ 
++		if (session_loggedin()) {
++			$efbox_log_text = _('Log Out');
++			$efbox_log_link = "/account/logout.php?return_to=" .
++			    urlencode(getStringFromServer('REQUEST_URI'));
++		} else {
++			$efbox_log_text = _('Log In');
++			$efbox_log_link = "/account/login.php?return_to=" .
++			    urlencode(getStringFromServer('REQUEST_URI'));
++		}
++		$efbox_prj_link = "/projects/" .
++		    $this->project->getUnixName() . "/";
++		$this->customBox("FusionForge", array(
++			"project" => array(
++				"id" => "fusionforge_project",
++				"href" => $efbox_prj_link,
++				"text" => _("Project Summary"),
++			    ),
++			"loginout" => array(
++				"id" => "fusionforge_loginout",
++				"href" => $efbox_log_link,
++				"text" => $efbox_log_text,
++			    ),
++		    ));
++
+ 		foreach( $sidebar as $boxName => $content ) {
+ 			if ( $content === false )
+ 				continue;




More information about the Fusionforge-commits mailing list