Tentative to make a skin for wikimedia.org
authorLuc Van Oostenryck <looxix@users.mediawiki.org>
Sun, 1 Aug 2004 20:54:13 +0000 (20:54 +0000)
committerLuc Van Oostenryck <looxix@users.mediawiki.org>
Sun, 1 Aug 2004 20:54:13 +0000 (20:54 +0000)
includes/SkinWikimediaWiki.php [new file with mode: 0644]
templates/xhtml_slim_wikimediawiki.pt [new file with mode: 0644]

diff --git a/includes/SkinWikimediaWiki.php b/includes/SkinWikimediaWiki.php
new file mode 100644 (file)
index 0000000..e332c94
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+# Tentative to make a skin for wikimedia.org
+# $Id$
+
+require_once( 'Skin.php' );
+require_once( 'SkinPHPTal.php' );
+
+$wgExtraSkins['wikimediawiki'] = 'Wikimediawiki';
+
+class SkinWikimediawiki extends SkinMonoBook {
+       function initPage( &$out ) {
+               SkinPHPTal::initPage( $out );
+               $this->skinname = "wikimediawiki";
+               $this->template = "xhtml_slim_wikimediawiki";
+       }
+
+       # build array of common navigation links
+       function buildNavUrls () {
+               global $wgTitle, $wgUser, $wgRequest;
+               global $wgSiteSupportPage;
+
+               $action = $wgRequest->getText( 'action' );
+               $oldid = $wgRequest->getVal( 'oldid' );
+               $diff = $wgRequest->getVal( 'diff' );
+               // XXX: remove htmlspecialchars when tal:attributes works with i18n:attributes
+               $nav_urls = array();
+               $nav_urls['mainpage'] = array('href' => htmlspecialchars( $this->makeI18nUrl('mainpage')));
+               $nav_urls['randompage'] = (wfMsg('randompage') != '-') ? array('href' => htmlspecialchars( $this->makeSpecialUrl('Randompage'))) : false;
+               $nav_urls['recentchanges'] = (wfMsg('recentchanges') != '-') ? array('href' => htmlspecialchars( $this->makeSpecialUrl('Recentchanges'))) : false;
+               $nav_urls['whatlinkshere'] = array('href' => htmlspecialchars( $this->makeSpecialUrl('Whatlinkshere', 'target='.urlencode( $this->thispage ))));
+               $nav_urls['currentevents'] = (wfMsg('currentevents') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('currentevents'))) : false;
+               $nav_urls['portal'] = (wfMsg('portal') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('portal-url'))) : false;
+               $nav_urls['recentchangeslinked'] = array('href' => htmlspecialchars( $this->makeSpecialUrl('Recentchangeslinked', 'target='.urlencode( $this->thispage ))));
+               $nav_urls['bugreports'] = (wfMsg('bugreports') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('bugreportspage'))) : false;
+               $nav_urls['sitesupport'] = array('href' => htmlspecialchars( $wgSiteSupportPage));
+               $nav_urls['help'] = array('href' => htmlspecialchars( $this->makeI18nUrl('helppage')));
+               $nav_urls['upload'] = array('href' => htmlspecialchars( $this->makeSpecialUrl('Upload')));
+               $nav_urls['specialpages'] = array('href' => htmlspecialchars( $this->makeSpecialUrl('Specialpages')));
+
+
+               # Specific for mediawiki.org menu
+               $nav_urls['aboutmediawiki'] = (wfMsg('aboutmediawiki') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('aboutmediawiki-url'))) : false;
+               $nav_urls['projects'] = (wfMsg('projects') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('projects-url'))) : false;
+               $nav_urls['membership'] = (wfMsg('membership') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('membership-url'))) : false;
+               $nav_urls['pressroom'] = (wfMsg('pressroom') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('pressroom-url'))) : false;
+               $nav_urls['software'] = (wfMsg('software') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('software-url'))) : false;
+               $nav_urls['localchapters'] = (wfMsg('localchapters') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('localchapters-url'))) : false;
+               $nav_urls['contactus'] = (wfMsg('contactus') != '-') ? array('href' => htmlspecialchars( $this->makeI18nUrl('contactus-url'))) : false;
+
+               if( $wgTitle->getNamespace() == NS_USER || $wgTitle->getNamespace() == NS_USER_TALK ) {
+                       $id = User::idFromName($wgTitle->getText());
+                       $ip = User::isIP($wgTitle->getText());
+               } else {
+                       $id = 0;
+                       $ip = false;
+               }
+
+               if ( 0 != $wgUser->getID() ) { # show only to signed in users
+                       if($id) {
+                               # can only email non-anons
+                               $nav_urls['emailuser'] = array(
+                                       'href' => htmlspecialchars( $this->makeSpecialUrl('Emailuser', "target=" . $wgTitle->getPartialURL() ) )
+                               );
+                               # only non-anons have contrib list
+                               $nav_urls['contributions'] = array(
+                                       'href' => htmlspecialchars( $this->makeSpecialUrl('Contributions', "target=" . $wgTitle->getPartialURL() ) )
+                               );
+                       }
+               }
+
+
+               return $nav_urls;
+       }
+}
+
+
+?>
diff --git a/templates/xhtml_slim_wikimediawiki.pt b/templates/xhtml_slim_wikimediawiki.pt
new file mode 100644 (file)
index 0000000..a33daeb
--- /dev/null
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="${lang}" lang="${lang}" dir="${dir}">
+  <head>
+    <meta http-equiv="Content-Type" content="${mimetype}; charset=${charset}" />
+    ${headlinks}
+    <title tal:content="pagetitle">Exciting xhtml slimfast</title>
+    <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "${stylepath}/${skinname}/main.css"; /*]]>*/</style>
+    <link rel="stylesheet" type="text/css" media="print" href="${stylepath}/commonPrint.css" />
+    <!--[if IE]><style type="text/css" media="all">@import "${stylepath}/${skinname}/IEFixes.css";</style>
+    <script type="text/javascript" src="${stylepath}/IEFixes.js"></script>
+    <meta http-equiv="imagetoolbar" content="no" /><![endif]-->
+    <script type="text/javascript" tal:attributes="src jsvarurl"></script>
+    <script type="text/javascript" src="${stylepath}/wikibits.js"></script>
+    <style tal:condition="usercss" type="text/css">/*<![CDATA[*/ ${usercss} /*]]>*/</style>
+    <script tal:condition="userjs" type="text/javascript" tal:attributes="src userjs"></script><script 
+      tal:condition="userjsprev" type="text/javascript">/*<![CDATA[*/${userjsprev}/*]]>*/</script>
+  </head>
+  <body tal:attributes="ondblclick body-ondblclick|default; class nsclass|default">
+    <div id="globalWrapper">
+      <div id="column-content">
+       <div id="content">
+         <a name="top" id="contentTop"></a>
+         <div id="siteNotice" tal:condition="sitenotice" tal:content="structure sitenotice"></div>
+         <h1 class="firstHeading" tal:content="title">Leonardo da Vinci</h1>
+         <div id="bodyContent">
+           <h3 id="siteSub" i18n:translate="string:fromwikipedia">From Wikipedia, the free encyclopedia.</h3>
+           <div id="contentSub" tal:content="structure subtitle"></div>
+           <div id="contentSub" tal:condition="undelete" tal:content="structure undelete"></div>
+           <div tal:condition="newtalk" class="usermessage" tal:content="structure newtalk"></div>
+           <!-- start content -->
+           ${bodytext}
+           <div tal:condition="catlinks" id="catlinks" tal:content="structure catlinks"></div>
+           <!-- end content -->
+           <div class="visualClear"></div>
+         </div>
+       </div>
+      </div>
+      <div id="column-one">
+       <div id="p-cactions" class="portlet">
+         <h5>Views</h5>
+         <ul>
+           <li tal:repeat="action content_actions" 
+           tal:attributes="id string:ca-${repeat/action/key}; class action/class|default"><a
+             tal:attributes="href action/href|default"
+             tal:content="action/text">Linktext</a></li>
+         </ul>
+       </div>
+       <div class="portlet" id="p-personal">
+         <h5 i18n:translate="string:personaltools">Personal Tools</h5>
+         <div class="pBody">
+           <ul>
+             <li tal:repeat="item personal_urls" 
+             tal:attributes="id string:pt-${repeat/item/key};"><a href="myuserpage"
+               tal:attributes="href item/href; class item/class|default"
+               tal:content="item/text">Log in</a></li>
+           </ul>
+         </div>
+       </div>
+       <div class="portlet" id="p-logo">
+         <a style="background-image: url(${logopath});" href="${nav_urls/mainpage/href}" i18n:attributes="title string:mainpage"></a>
+       </div>
+       <div class="portlet" id="p-nav">
+         <h5 i18n:translate="string:navigation">Navigation</h5>
+         <div class="pBody">
+           <ul>
+             <li id="n-mainpage"><a href="${nav_urls/mainpage/href}"
+               i18n:translate="string:mainpage">Home</a></li>
+             <li id="n-aboutmediawiki"><a href="${nav_urls/aboutmediawiki/href}"
+               i18n:translate="string:aboutmediawiki">About Mediawiki</a></li>
+             <li id="n-portal" tal:condition="nav_urls/portal/href"><a href="${nav_urls/portal/href}"
+               i18n:translate="string:portal">Community Portal</a></li>
+             <li id="n-currentevents" tal:condition="nav_urls/currentevents/href"><a href="${nav_urls/currentevents/href}"
+               i18n:translate="string:currentevents">Last News</a></li>
+             <li id="n-projects" tal:condition="nav_urls/projects/href"><a href="${nav_urls/projects/href}"
+               i18n:translate="string:projects">Our projects</a></li>
+             <li id="n-recentchanges"tal:condition="nav_urls/recentchanges/href"><a href="${nav_urls/recentchanges/href}"
+               i18n:translate="string:recentchanges">Recent Changes</a></li>
+             <li id="n-randompage" tal:condition="nav_urls/randompage/href"><a href="${nav_urls/randompage/href}"
+               i18n:translate="string:randompage">Random Page</a></li>
+             <li id="n-help" tal:condition="nav_urls/help/href"><a href="${nav_urls/help/href}"
+               i18n:translate="string:help">Help</a></li>
+             <li id="n-sitesupport" tal:condition="nav_urls/sitesupport/href"><a href="${nav_urls/sitesupport/href}"
+               i18n:translate="string:sitesupport">Support us</a></li>
+             <li id="n-membership" tal:condition="nav_urls/membership/href"><a href="${nav_urls/membership/href}"
+               i18n:translate="string:membership">Membership</a></li>
+             <li id="n-pressroom" tal:condition="nav_urls/pressroom/href"><a href="${nav_urls/pressroom/href}"
+               i18n:translate="string:pressroom">Press room</a></li>
+             <li id="n-software" tal:condition="nav_urls/software/href"><a href="${nav_urls/software/href}"
+               i18n:translate="string:software">Our software</a></li>
+             <li id="n-localchapters" tal:condition="nav_urls/localchapters/href"><a href="${nav_urls/localchapters/href}"
+               i18n:translate="string:localchapters">Local chapters</a></li>
+             <li id="n-contactus" tal:condition="nav_urls/contactus/href"><a href="${nav_urls/contactus/href}"
+               i18n:translate="string:contactus">Contact us</a></li>
+           </ul>
+         </div>
+       </div>
+       <div id="p-search" class="portlet">
+         <h5 i18n:translate="string:search">Search</h5>
+         <div class="pBody">
+           <form name="searchform" action="${searchaction}" id="searchform">
+             <input id="searchInput" name="search" type="text"
+             i18n:attributes="accesskey string:accesskey-search | default"/>
+             <input type='submit' name="go" value="Go" class="searchButton" 
+             i18n:attributes="value string:go"/>&nbsp;<input type='submit' name="fulltext"
+             value="Search" class="searchButton"
+             i18n:attributes="value string:search"/>
+           </form>
+         </div>
+       </div>
+       <div class="portlet" id="p-tb">
+         <h5 i18n:translate="string:toolbox">Toolbox</h5>
+         <div class="pBody">
+           <ul>
+             <li id="t-whatlinkshere"><a href="${nav_urls/whatlinkshere/href}"
+               i18n:translate="string:whatlinkshere">What links here</a></li>
+             <li id="t-recentchangeslinked"><a href="${nav_urls/recentchangeslinked/href}"
+               i18n:translate="string:recentchangeslinked">Related Changes</a></li>
+             <li tal:condition="feeds" id="feedlinks">
+             <span i18n:translate="string:feedlinks">Feeds:</span>
+             <span tal:repeat="feed feeds" 
+               tal:attributes="id string:feed-${repeat/feed/key};"><a 
+                 tal:attributes="href feed/href;"
+                 tal:content="feed/text">rss</a>&nbsp;</span>
+             </li>
+             <li id="t-contributions" tal:condition="nav_urls/contributions/href"><a href="${nav_urls/contributions/href}"
+               i18n:translate="string:contributions">Contributions</a></li>
+             <li id="t-emailuser" tal:condition="nav_urls/emailuser/href"><a href="${nav_urls/emailuser/href}"
+               i18n:translate="string:emailuser">Email this user</a></li>
+             <li id="t-upload" tal:condition="loggedin"><a href="${nav_urls/upload/href}"
+               i18n:translate="string:upload">Upload a file</a></li>
+             <li id="t-specialpages"><a href="${nav_urls/specialpages/href}"
+               i18n:translate="string:specialpages">Special Pages</a></li>
+           </ul>
+         </div>
+       </div>
+       <div id="p-lang" class="portlet" tal:condition="language_urls">
+         <h5 i18n:translate="string:otherlanguages">Language</h5>
+         <div class="pBody">
+           <ul>
+             <li tal:repeat="langlink language_urls">
+             <a tal:attributes="href langlink/href"
+               tal:content="structure langlink/text">English</a>
+             </li>
+           </ul>
+         </div>
+       </div>
+      </div><!-- end of the left (by default at least) column -->
+      <div class="visualClear"></div>
+      <div id="footer">
+       <div id="f-poweredbyico" tal:condition="poweredbyico">${poweredbyico}</div>
+       <div id="f-copyrightico" tal:condition="copyrightico">${copyrightico}</div>
+       <ul id="f-list">
+         <li id="f-lastmod" tal:condition="lastmod">${lastmod}</li>
+         <li id="f-viewcount" tal:condition="viewcount">${viewcount}</li>
+         <li id="f-credits" tal:condition="credits">${credits}</li>
+         <li id="f-copyright" tal:condition="copyright">${copyright}</li>
+         <li id="f-about" tal:condition="about">${about}</li>
+         <li id="f-disclaimer" tal:condition="disclaimer">${disclaimer}</li>
+       </ul>
+      </div>
+    </div>
+    ${reporttime}
+  </body>
+</html>