Commit | Line | Data |
---|---|---|
64a19c3d ML |
1 | <?php |
2 | /** | |
3 | * See docs/skin.txt | |
4 | * | |
5 | * @todo document | |
6 | * @file | |
7 | * @ingroup Skins | |
8 | */ | |
9 | ||
10 | if( !defined( 'MEDIAWIKI' ) ) | |
11 | die( -1 ); | |
12 | ||
13 | /** | |
14 | * @todo document | |
15 | * @ingroup Skins | |
16 | */ | |
17 | class SkinCologneBlue extends Skin { | |
18 | ||
19 | function getStylesheet() { | |
20 | return 'common/cologneblue.css'; | |
21 | } | |
22 | function getSkinName() { | |
23 | return "cologneblue"; | |
24 | } | |
25 | ||
26 | function doBeforeContent() { | |
27 | ||
28 | $s = ""; | |
29 | $qb = $this->qbSetting(); | |
30 | $mainPageObj = Title::newMainPage(); | |
31 | ||
32 | $s .= "\n<div id='content'>\n<div id='topbar'>" . | |
33 | "<table width='100%' border='0' cellspacing='0' cellpadding='8'><tr>"; | |
34 | ||
35 | $s .= "<td class='top' align='left' valign='middle' nowrap='nowrap'>"; | |
36 | $s .= "<a href=\"" . $mainPageObj->escapeLocalURL() . "\">"; | |
37 | $s .= "<span id='sitetitle'>" . wfMsg( "sitetitle" ) . "</span></a>"; | |
38 | ||
39 | $s .= "</td><td class='top' align='right' valign='bottom' width='100%'>"; | |
40 | $s .= $this->sysLinks(); | |
41 | $s .= "</td></tr><tr><td valign='top'>"; | |
42 | ||
43 | $s .= "<font size='-1'><span id='sitesub'>"; | |
44 | $s .= htmlspecialchars( wfMsg( "sitesubtitle" ) ) . "</span></font>"; | |
45 | $s .= "</td><td align='right'>" ; | |
46 | ||
47 | $s .= "<font size='-1'><span id='langlinks'>" ; | |
48 | $s .= str_replace ( "<br />" , "" , $this->otherLanguages() ); | |
49 | $cat = $this->getCategoryLinks(); | |
50 | if( $cat ) $s .= "<br />$cat\n"; | |
51 | $s .= "<br />" . $this->pageTitleLinks(); | |
52 | $s .= "</span></font>"; | |
53 | ||
54 | $s .= "</td></tr></table>\n"; | |
55 | ||
56 | $s .= "\n</div>\n<div id='article'>"; | |
57 | ||
58 | $notice = wfGetSiteNotice(); | |
59 | if( $notice ) { | |
60 | $s .= "\n<div id='siteNotice'>$notice</div>\n"; | |
61 | } | |
62 | $s .= $this->pageTitle(); | |
63 | $s .= $this->pageSubtitle() . "\n"; | |
64 | return $s; | |
65 | } | |
66 | ||
67 | function doAfterContent() | |
68 | { | |
69 | global $wgOut; | |
70 | ||
71 | $s = "\n</div><br clear='all' />\n"; | |
72 | ||
73 | $s .= "\n<div id='footer'>"; | |
74 | $s .= "<table width='98%' border='0' cellspacing='0'><tr>"; | |
75 | ||
76 | $qb = $this->qbSetting(); | |
77 | if ( 1 == $qb || 3 == $qb ) { # Left | |
78 | $s .= $this->getQuickbarCompensator(); | |
79 | } | |
80 | $s .= "<td class='bottom' align='center' valign='top'>"; | |
81 | ||
82 | $s .= $this->bottomLinks(); | |
83 | $s .= "\n<br />" . $this->makeKnownLinkObj( Title::newMainPage() ) . " | " | |
84 | . $this->aboutLink() . " | " | |
85 | . $this->searchForm( wfMsg( "qbfind" ) ); | |
86 | ||
87 | $s .= "\n<br />" . $this->pageStats(); | |
88 | ||
89 | $s .= "</td>"; | |
90 | if ( 2 == $qb ) { # Right | |
91 | $s .= $this->getQuickbarCompensator(); | |
92 | } | |
93 | $s .= "</tr></table>\n</div>\n</div>\n"; | |
94 | ||
95 | if ( 0 != $qb ) { $s .= $this->quickBar(); } | |
96 | return $s; | |
97 | } | |
98 | ||
99 | function reallyGenerateUserStylesheet() { | |
100 | $s = parent::reallyGenerateUserStylesheet(); | |
101 | $qb = $this->qbSetting(); | |
102 | ||
103 | if ( 2 == $qb ) { # Right | |
104 | $s .= "#quickbar { position: absolute; right: 4px; }\n" . | |
105 | "#article { margin-left: 4px; margin-right: 148px; }\n"; | |
106 | } else if ( 1 == $qb ) { | |
107 | $s .= "#quickbar { position: absolute; left: 4px; }\n" . | |
108 | "#article { margin-left: 148px; margin-right: 4px; }\n"; | |
109 | } else if ( 3 == $qb ) { # Floating left | |
110 | $s .= "#quickbar { position:absolute; left:4px } \n" . | |
111 | "#topbar { margin-left: 148px }\n" . | |
112 | "#article { margin-left:148px; margin-right: 4px; } \n" . | |
113 | "body>#quickbar { position:fixed; left:4px; top:4px; overflow:auto ;bottom:4px;} \n"; # Hides from IE | |
114 | } else if ( 4 == $qb ) { # Floating right | |
115 | $s .= "#quickbar { position: fixed; right: 4px; } \n" . | |
116 | "#topbar { margin-right: 148px }\n" . | |
117 | "#article { margin-right: 148px; margin-left: 4px; } \n" . | |
118 | "body>#quickbar { position: fixed; right: 4px; top: 4px; overflow: auto ;bottom:4px;} \n"; # Hides from IE | |
119 | } | |
120 | return $s; | |
121 | } | |
122 | ||
123 | function sysLinks() { | |
124 | global $wgUser, $wgContLang, $wgTitle; | |
125 | $li = $wgContLang->specialPage("Userlogin"); | |
126 | $lo = $wgContLang->specialPage("Userlogout"); | |
127 | ||
128 | $rt = $wgTitle->getPrefixedURL(); | |
129 | if ( 0 == strcasecmp( urlencode( $lo ), $rt ) ) { | |
130 | $q = ""; | |
131 | } else { | |
132 | $q = "returnto={$rt}"; | |
133 | } | |
134 | ||
135 | $s = "" . | |
136 | $this->mainPageLink() | |
137 | . " | " . | |
138 | $this->makeKnownLink( wfMsgForContent( "aboutpage" ), wfMsg( "about" ) ) | |
139 | . " | " . | |
140 | $this->makeKnownLink( wfMsgForContent( "helppage" ), wfMsg( "help" ) ) | |
141 | . " | " . | |
142 | $this->makeKnownLink( wfMsgForContent( "faqpage" ), wfMsg("faq") ) | |
143 | . " | " . | |
144 | $this->specialLink( "specialpages" ); | |
145 | ||
146 | /* show links to different language variants */ | |
147 | $s .= $this->variantLinks(); | |
148 | $s .= $this->extensionTabLinks(); | |
149 | ||
150 | $s .= " | "; | |
151 | if ( $wgUser->isLoggedIn() ) { | |
152 | $s .= $this->makeKnownLink( $lo, wfMsg( "logout" ), $q ); | |
153 | } else { | |
154 | $s .= $this->makeKnownLink( $li, wfMsg( "login" ), $q ); | |
155 | } | |
156 | ||
157 | return $s; | |
158 | } | |
159 | ||
160 | /** | |
161 | * Compute the sidebar | |
162 | * @access private | |
163 | */ | |
164 | function quickBar() | |
165 | { | |
166 | global $wgOut, $wgTitle, $wgUser, $wgLang, $wgContLang, $wgEnableUploads; | |
167 | ||
168 | $tns=$wgTitle->getNamespace(); | |
169 | ||
170 | $s = "\n<div id='quickbar'>"; | |
171 | ||
172 | $sep = "<br />"; | |
173 | $s .= $this->menuHead( "qbfind" ); | |
174 | $s .= $this->searchForm(); | |
175 | ||
176 | $s .= $this->menuHead( "qbbrowse" ); | |
177 | ||
178 | # Use the first heading from the Monobook sidebar as the "browse" section | |
179 | $bar = $this->buildSidebar(); | |
180 | unset( $bar['SEARCH'] ); | |
181 | unset( $bar['LANGUAGES'] ); | |
182 | unset( $bar['TOOLBOX'] ); | |
183 | $browseLinks = reset( $bar ); | |
184 | ||
185 | foreach ( $browseLinks as $link ) { | |
186 | if ( $link['text'] != '-' ) { | |
187 | $s .= "<a href=\"{$link['href']}\">" . | |
188 | htmlspecialchars( $link['text'] ) . '</a>' . $sep; | |
189 | } | |
190 | } | |
191 | ||
192 | if ( $wgOut->isArticle() ) { | |
193 | $s .= $this->menuHead( "qbedit" ); | |
194 | $s .= "<strong>" . $this->editThisPage() . "</strong>"; | |
195 | ||
196 | $s .= $sep . $this->makeKnownLink( wfMsgForContent( "edithelppage" ), wfMsg( "edithelp" ) ); | |
197 | ||
198 | if( $wgUser->isLoggedIn() ) { | |
199 | $s .= $sep . $this->moveThisPage(); | |
200 | } | |
201 | if ( $wgUser->isAllowed('delete') ) { | |
202 | $dtp = $this->deleteThisPage(); | |
203 | if ( "" != $dtp ) { | |
204 | $s .= $sep . $dtp; | |
205 | } | |
206 | } | |
207 | if ( $wgUser->isAllowed('protect') ) { | |
208 | $ptp = $this->protectThisPage(); | |
209 | if ( "" != $ptp ) { | |
210 | $s .= $sep . $ptp; | |
211 | } | |
212 | } | |
213 | $s .= $sep; | |
214 | ||
215 | $s .= $this->menuHead( "qbpageoptions" ); | |
216 | $s .= $this->talkLink() | |
217 | . $sep . $this->commentLink() | |
218 | . $sep . $this->printableLink(); | |
219 | if ( $wgUser->isLoggedIn() ) { | |
220 | $s .= $sep . $this->watchThisPage(); | |
221 | } | |
222 | ||
223 | $s .= $sep; | |
224 | ||
225 | $s .= $this->menuHead("qbpageinfo") | |
226 | . $this->historyLink() | |
227 | . $sep . $this->whatLinksHere() | |
228 | . $sep . $this->watchPageLinksLink(); | |
229 | ||
230 | if( $tns == NS_USER || $tns == NS_USER_TALK ) { | |
231 | $id=User::idFromName($wgTitle->getText()); | |
232 | if ($id != 0) { | |
233 | $s .= $sep . $this->userContribsLink(); | |
234 | if( $this->showEmailUser( $id ) ) { | |
235 | $s .= $sep . $this->emailUserLink(); | |
236 | } | |
237 | } | |
238 | } | |
239 | $s .= $sep; | |
240 | } | |
241 | ||
242 | $s .= $this->menuHead( "qbmyoptions" ); | |
243 | if ( $wgUser->isLoggedIn() ) { | |
244 | $name = $wgUser->getName(); | |
245 | $tl = $this->makeKnownLinkObj( $wgUser->getTalkPage(), | |
246 | wfMsg( 'mytalk' ) ); | |
247 | if ( $wgUser->getNewtalk() ) { | |
248 | $tl .= " *"; | |
249 | } | |
250 | ||
251 | $s .= $this->makeKnownLinkObj( $wgUser->getUserPage(), | |
252 | wfMsg( "mypage" ) ) | |
253 | . $sep . $tl | |
254 | . $sep . $this->specialLink( "watchlist" ) | |
255 | . $sep . $this->makeKnownLinkObj( SpecialPage::getSafeTitleFor( "Contributions", $wgUser->getName() ), | |
256 | wfMsg( "mycontris" ) ) | |
257 | . $sep . $this->specialLink( "preferences" ) | |
258 | . $sep . $this->specialLink( "userlogout" ); | |
259 | } else { | |
260 | $s .= $this->specialLink( "userlogin" ); | |
261 | } | |
262 | ||
263 | $s .= $this->menuHead( "qbspecialpages" ) | |
264 | . $this->specialLink( "newpages" ) | |
265 | . $sep . $this->specialLink( "imagelist" ) | |
266 | . $sep . $this->specialLink( "statistics" ); | |
267 | if ( $wgUser->isLoggedIn() && $wgEnableUploads ) { | |
268 | $s .= $sep . $this->specialLink( "upload" ); | |
269 | } | |
270 | global $wgSiteSupportPage; | |
271 | if( $wgSiteSupportPage) { | |
272 | $s .= $sep."<a href=\"".htmlspecialchars($wgSiteSupportPage)."\" class =\"internal\">" | |
273 | .wfMsg( "sitesupport" )."</a>"; | |
274 | } | |
275 | ||
276 | $s .= $sep . $this->makeKnownLinkObj( | |
277 | SpecialPage::getTitleFor( 'Specialpages' ), | |
278 | wfMsg( 'moredotdotdot' ) ); | |
279 | ||
280 | $s .= $sep . "\n</div>\n"; | |
281 | return $s; | |
282 | } | |
283 | ||
284 | function menuHead( $key ) | |
285 | { | |
286 | $s = "\n<h6>" . wfMsg( $key ) . "</h6>"; | |
287 | return $s; | |
288 | } | |
289 | ||
290 | function searchForm( $label = "" ) | |
291 | { | |
292 | global $wgRequest; | |
293 | ||
294 | $search = $wgRequest->getText( 'search' ); | |
295 | $action = $this->escapeSearchLink(); | |
296 | $s = "<form id=\"searchform{$this->searchboxes}\" method=\"get\" class=\"inline\" action=\"$action\">"; | |
297 | if ( "" != $label ) { $s .= "{$label}: "; } | |
298 | ||
299 | $s .= "<input type='text' id=\"searchInput{$this->searchboxes}\" class=\"mw-searchInput\" name=\"search\" size=\"14\" value=\"" | |
300 | . htmlspecialchars(substr($search,0,256)) . "\" /><br />" | |
301 | . "<input type='submit' id=\"searchGoButton{$this->searchboxes}\" class=\"searchButton\" name=\"go\" value=\"" . htmlspecialchars( wfMsg( "searcharticle" ) ) . "\" />" | |
302 | . "<input type='submit' id=\"mw-searchButton{$this->searchboxes}\" class=\"searchButton\" name=\"fulltext\" value=\"" . htmlspecialchars( wfMsg( "search" ) ) . "\" /></form>"; | |
303 | ||
304 | // Ensure unique id's for search boxes made after the first | |
305 | $this->searchboxes = $this->searchboxes == '' ? 2 : $this->searchboxes + 1; | |
306 | ||
307 | return $s; | |
308 | } | |
309 | } | |
310 | ||
311 |