From 8172d54c366535a5663d6536798f472e90d6a2e5 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Sun, 11 Apr 2004 01:25:00 +0000 Subject: [PATCH] Skin updates: * Add 'pagetitle' message to customize the HTML page title format (eg, "$1 - Wikipedia Encyclopedia") * Some XHTML fixes to Nostalgia skin, prefs * Removing the unfinished Smarty skins, renamed Standard to Classic * Remove "gnunote" message in favor of general "copyright" msg, which is filled with the link & name in $wgRightsPage/$wgRightsURL and $wgRightsText * Support a copyright-related icon as $wgRightsIcon (includes sample gnu-fdl.png) * Show "Powered by MediaWiki" icon in footer (poweredby_mediawiki_88x31.png by Dan Carlson) --- images/gnu-fdl.png | Bin 0 -> 1748 bytes images/gnu-fdl.xcf | Bin 0 -> 5578 bytes images/poweredby_mediawiki_88x31.png | Bin 0 -> 3341 bytes includes/OutputPage.php | 5 +- includes/Skin.php | 76 +++++++-- includes/SkinNostalgia.php | 16 +- includes/SkinPHPTal.php | 4 +- includes/SkinSmarty.php | 220 --------------------------- includes/SpecialPreferences.php | 2 +- includes/User.php | 4 + languages/Language.php | 9 +- languages/LanguageEo.php | 11 +- stylesheets/monobook/main.css | 13 +- stylesheets/montparnasse.css | 212 -------------------------- stylesheets/paddington.css | 187 ----------------------- templates/montparnasse.tpl | 112 -------------- templates/paddington.tpl | 125 --------------- templates/xhtml_slim.pt | 4 +- 18 files changed, 110 insertions(+), 890 deletions(-) create mode 100644 images/gnu-fdl.png create mode 100644 images/gnu-fdl.xcf create mode 100644 images/poweredby_mediawiki_88x31.png delete mode 100644 includes/SkinSmarty.php delete mode 100644 stylesheets/montparnasse.css delete mode 100644 stylesheets/paddington.css delete mode 100644 templates/montparnasse.tpl delete mode 100644 templates/paddington.tpl diff --git a/images/gnu-fdl.png b/images/gnu-fdl.png new file mode 100644 index 0000000000000000000000000000000000000000..1371aba886e5fbefc5b9ea6749a893ba440729e1 GIT binary patch literal 1748 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 Ov^1&;{5a22>c0S5=7k3U literal 0 HcmV?d00001 diff --git a/images/poweredby_mediawiki_88x31.png b/images/poweredby_mediawiki_88x31.png new file mode 100644 index 0000000000000000000000000000000000000000..f9175eb10c376a1cabd3d9ddfb4ee9ecc99660c7 GIT binary patch literal 3341 zcmV+o4f67dP)WdJfSIWI6Y z;q!~j0000WbVXQnQ*UN;cVTj608L?Ia&K*AWNBd_Mrm?ocW-iQb0AGvyOAm+000bR zNkl(>vkPy}w|yZV3;^g)17joez|b*~Y7v1$9WRlUs@dwW^km`KH-rn$koc1Ra zJ)!7rz8FHN%@<23dUq(5v1Hy3#+B|+YHL?8Ga+L{2yN{Ow)tY2h2!}bmO0mdGLW$k z#+AXiat*IC003(F^5wa?xd@?1OiIaGBBgLFjSw1*De>4arR^65WS|^u>=w;lGo>O~ zB1YUGirw64U^~sYv-s7#$s3K?N20g$Ccz-aNHi_0x~%AC6FauqU|iYK5kLrag_1mt z!)bMIZ+Nmx{O6B*9-UFJ?A=ohlbjE?oW3p3_QJ073{CAkA1bi%>yGs&6yvQEzUdxo zcPO>BbNExEeyA_XGgNC|Vy%6V<|(-!o)4KA>c85D5JHn(mTL3d-LDBy3Y?uihlHrZ}rAQKVG{VPXGb{gz(~uoLBFzKJJS>I-{Vu z*3%VCVvHNhv)3QWX!hNJW5{5p~9v|CI|@2naK zjJBTiPB?xD0l*LDl{D43tvu6Q<6gC|XVt!*`a(NGXi<6gt_z_b%q#h%KiXXDo?T?O z@^p2M2mqO-2%+)D<{J0E9_d@PuV>8v4F4l7r&sOksdkBtq?1kxXNiCXB4e#Q3et zk+jlN1lo-;<~f|>5D^NDPs262)=evBj9C^{x(e;)n5@0Hurf2;v|>hq-MneVjC>n! z;pp{EQ+=b-iwi4#F)8EZoFd1V5daG9W&l`H>B?|s_yNGm(bX>Ty>@?0*1j{V=mxu_ zD?$(gs%Bt}5yf_TXKwrb@J}9NiydutU>rGmD$Wd?6O{m9Ft9<8O)$rV;?fZlPD={1 zxJpl4xc8-X{NFucoq;g`sG3g5gnDE%v2%(Y`_segXc-alT-4AYX_^z$uuys)W17`=8T+j`{mqL(+E?;m_< z&3iBXuGJt{H$K~rb${*U|LpdSAcWRzJ^D8rb|8dCVyOpT-}?Idtt-}Sd;du1Zx5br zUj3e?>tn0_;q5&&fBV+wB+JXfT&^V-7t9{a%kS4ANK&#r3*05N-ia&;O2u5ZY=}fk zS$KofG^8Wk%}UP>`e#h5m$O|>f9ga;H3oEa@LXWg^fCZw>kXcd=p5oS12D##ZuEx} z98J0HX8fs+1K|XXkwUmM$^llmcUrN@WTq&L5%Pr-1dz+Zu?$`2aY%%2?;k1mI6H?^ zmm)gGxF;CDII4cPtiU0f%G~xtyo;$FUz$Z==LWPDZys43Z{glzOwn~fpbF?Ml0u*Ke2c^#(3?H6C3w;WeIFr zQ7xh<@LWnEEC&E+-Of`R4|Y2RQ)#xqQRMq~Pp`_eAHNt{a$DJjKrAk6!_h>Sf0U>RkAcE? zL1ivS!Ok=N2}wQG7hF>7c8WXzyt=Jz$Em(wti0oU3u|B5dh&xm^zLi#Tes)zig}eU zeRHISJUa?P#g+Isyq4p+Fd>WXu=wDo#Jv7PNhc8l=g8DC0K^PINB-GkAT zHm5xIM@{t@A%yYI-fv5*1Ov$yx$URC^D6WHv1twfm<8d&lrIBcMk6F9Qf&j^H(-Z0RSt{fT2$ajf^C#pZhwd zurClR@;Dk7)FhKVXUmI-z$vz# zAAVx-ZRMV1*=yDTL}#*^)YK7T1kIM^%1B!xeL{3DN~ha3o@JQ1tbLZI{(+=7 zv-b6z?IFNo<{uD4f6mR-Jyo{p`4)`vlF9CDN-J{N{gHS>sgmJ< zyRH<9mX?;r#>UV3JqAM?1w>&=40xYLhMZIMrj+W51m4KXS+2-2!8TJK{T(ALX3aCM zLGmTX?%lhue?x`YEC5KzvNv((l;U|5Z8nKj$@sTq!_yP)E#+CK>qnZQeTACH&&7@2 zSz360PTd2UXNux-3l;!?(^;LdF!(Efi+k%j|1xd~aTzxn8vpM>1Hks}+i$iTHy{5C X6iSsH`Y^H_00000NkvXXu0mjfiZ)`~ literal 0 HcmV?d00001 diff --git a/includes/OutputPage.php b/includes/OutputPage.php index a1a96aad18..d32792a129 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -597,7 +597,7 @@ class OutputPage { $ret .= "\n"; if ( "" == $this->mHTMLtitle ) { - $this->mHTMLtitle = $this->mPagetitle; + $this->mHTMLtitle = wfMsg( "pagetitle", $this->mPagetitle ); } if( $xml ) { $xmlbits = "xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\""; @@ -606,8 +606,9 @@ class OutputPage { } $rtl = $wgLang->isRTL() ? " dir='RTL'" : ""; $ret .= "\n"; - $ret .= "\n{$this->mHTMLtitle}\n"; + $ret .= "\n" . htmlspecialchars( $this->mHTMLtitle ) . "\n"; array_push( $this->mMetatags, array( "http:Content-type", "$wgMimeType; charset={$wgOutputEncoding}" ) ); + $ret .= $this->getHeadLinks(); global $wgStyleSheetPath; if( $this->isPrintable() ) { diff --git a/includes/Skin.php b/includes/Skin.php index b1cab1e39b..806ef1591d 100644 --- a/includes/Skin.php +++ b/includes/Skin.php @@ -527,7 +527,7 @@ class Skin { { global $wgOut, $wgTitle, $wgUser; - $s = "

" . $wgOut->getPageTitle() . "

"; + $s = "

" . htmlspecialchars( $wgOut->getPageTitle() ) . "

"; if($wgUser->getOption("editsectiononrightclick") && $wgTitle->userCanEdit()) { $s=$this->editSectionScript(0,$s);} return $s; } @@ -713,8 +713,47 @@ class Skin { } } $s .= $this->lastModified(); - $s .= " " . wfMsg( "gnunote" ); - return $s; + return $s . " " . $this->getCopyright(); + } + + function getCopyright() { + global $wgRightsPage, $wgRightsUrl, $wgRightsText; + $out = ""; + if( $wgRightsPage ) { + $link = $this->makeKnownLink( $wgRightsPage, $wgRightsText ); + } elseif( $wgRightsUrl ) { + $link = $this->makeExternalLink( $wgRightsUrl, $wgRightsText ); + } else { + # Give up now + return $out; + } + $out .= wfMsg( "copyright", $link ); + return $out; + } + + function getCopyrightIcon() { + global $wgRightsPage, $wgRightsUrl, $wgRightsText, $wgRightsIcon; + $out = ""; + if( $wgRightsIcon ) { + $icon = htmlspecialchars( $wgRightsIcon ); + if( $wgRightsUrl ) { + $url = htmlspecialchars( $wgRightsUrl ); + $out .= ""; + } + $text = htmlspecialchars( $wgRightsText ); + $out .= "$text"; + if( $wgRightsUrl ) { + $out .= ""; + } + } + return $out; + } + + function getPoweredBy() { + global $wgUploadPath; + $url = htmlspecialchars( "$wgUploadPath/poweredby_mediawiki_88x31.png" ); + $img = "MediaWiki"; + return $img; } function lastModified() @@ -924,7 +963,7 @@ class Skin { $spp = $wgLang->specialPage( "Specialpages" ); $s = "
\n"; + "action=\"" . htmlspecialchars( "{$wgServer}{$wgRedirectScript}" ) . "\">\n"; $s .= "\n"; - $s .= "\n"; + $s .= "\n"; $s .= "
\n"; return $s; } @@ -1384,14 +1423,18 @@ class Skin { if ( "" == $link ) { $u = ""; - if ( "" == $text ) { $text = $nt->getFragment(); } + if ( "" == $text ) { + $text = htmlspecialchars( $nt->getFragment() ); + } } else { $u = $nt->escapeLocalURL( $query ); } if ( "" != $nt->getFragment() ) { - $u .= "#" . wfEscapeHTML( $nt->getFragment() ); + $u .= "#" . htmlspecialchars( $nt->getFragment() ); + } + if ( "" == $text ) { + $text = htmlspecialchars( $nt->getPrefixedText() ); } - if ( "" == $text ) { $text = $nt->getPrefixedText(); } $style = $this->getInternalLinkAttributesObj( $nt, $text ); $inside = ""; @@ -1421,7 +1464,9 @@ class Skin { } $u = $nt->escapeLocalURL( $q ); - if ( "" == $text ) { $text = $nt->getPrefixedText(); } + if ( "" == $text ) { + $text = htmlspecialchars( $nt->getPrefixedText() ); + } $style = $this->getInternalLinkAttributesObj( $nt, $text, "yes" ); $inside = ""; @@ -1450,7 +1495,9 @@ class Skin { $u = $nt->escapeLocalURL( $query ); - if ( "" == $text ) { $text = $nt->getPrefixedText(); } + if ( "" == $text ) { + $text = htmlspecialchars( $nt->getPrefixedText() ); + } $style = $this->getInternalLinkAttributesObj( $nt, $text, "stub" ); $inside = ""; @@ -1764,6 +1811,15 @@ class Skin { return $this->makeKnownLink( $wgLang->specialPage( $pn ), wfMsg( $key ) ); } + + function makeExternalLink( $url, $text, $escape = true ) { + $style = $this->getExternalLinkAttributes( $url, $text ); + $url = htmlspecialchars( $url ); + if( $escape ) { + $text = htmlspecialchars( $text ); + } + return "$text"; + } # Called by history lists and recent changes # diff --git a/includes/SkinNostalgia.php b/includes/SkinNostalgia.php index 557c88f112..3d990ee670 100644 --- a/includes/SkinNostalgia.php +++ b/includes/SkinNostalgia.php @@ -21,15 +21,15 @@ class SkinNostalgia extends Skin { $s .= $this->logoText( "right" ); $s .= $this->pageTitle(); - $s .= $this->pageSubtitle() . "\n

"; + $s .= $this->pageSubtitle() . "\n"; - $s .= $this->topLinks() . "\n
"; + $s .= $this->topLinks() . "\n
"; $s .= $this->pageTitleLinks(); $ol = $this->otherLanguages(); - if($ol) $s .= "
" . $ol; + if($ol) $s .= "
" . $ol; - $s .= "


\n\n"; + $s .= "

\n\n"; $s .= "\n
"; return $s; @@ -61,13 +61,13 @@ class SkinNostalgia extends Skin { { global $wgUser, $wgOut; - $s = "\n

\n"; + $s = "\n
\n"; - $s .= "\n