MediaWiki  REL1_20
Skin Class Reference

The main skin class that provide methods and properties for all other skins. More...

Inheritance diagram for Skin:
Collaboration diagram for Skin:

List of all members.

Public Member Functions

 __call ($fname, $args)
 Use PHP's magic __call handler to intercept legacy calls to the linker for backwards compatibility.
 aboutLink ()
 Gets the link to the wiki's about page.
 addToBodyAttributes ($out, &$bodyAttrs)
 This will be called by OutputPage::headElement when it is creating the "<body>" tag, skins can override it if they have a need to add in any body attributes or classes of their own.
 addToSidebar (&$bar, $message)
 Add content from a sidebar system message Currently only used for MediaWiki:Sidebar (but may be used by Extensions)
 addToSidebarPlain (&$bar, $text)
 Add content from plain text.
 bottomScripts ()
 This gets called shortly before the "</body>" tag.
 buildSidebar ()
 Build an array that represents the sidebar(s), the navigation bar among them.
 commonPrintStylesheet ()
 Should we load mediawiki.legacy.wikiprintable? Skins that have their own print stylesheet should override this and return false.
 disclaimerLink ()
 Gets the link to the wiki's general disclaimers page.
 doEditSectionLink (Title $nt, $section, $tooltip=null, $lang=false)
 Create a section edit link.
 drawCategoryBrowser ($tree)
 Render the array as a serie of links.
 editUrlOptions ()
 Return URL options for the 'edit page' link.
 escapeSearchLink ()
 footerLink ($desc, $page)
 getCategories ()
 getCategoryLinks ()
 getCommonStylePath ($name)
 Return a fully resolved style path url to images or styles stored in the common folder.
 getCopyright ($type= 'detect')
 getCopyrightIcon ()
 getLogo ()
 URL to the logo.
 getNamespaceNotice ()
 Get a notice based on page's namespace.
 getNewtalks ()
 Gets new talk page messages for the current user.
 getPageClasses ($title)
 TODO: document.
 getPoweredBy ()
 Gets the powered by MediaWiki icon.
 getRelevantTitle ()
 Return the "relevant" title.
 getRelevantUser ()
 Return the "relevant" user.
 getRevisionId ()
 Get the current revision ID.
 getSearchLink ()
 getSiteNotice ()
 Get the site notice.
 getSkinName ()
 getSkinStylePath ($name)
 Return a fully resolved style path url to images or styles stored in the curent skins's folder.
 getUndeleteLink ()
 initPage (OutputPage $out)
 isRevisionCurrent ()
 Whether the revision displayed is the latest revision of the page.
 logoText ($align= '')
 mainPageLink ()
 Gets the link to the wiki's main page.
 makeFooterIcon ($icon, $withImage= 'withImage')
 Renders a $wgFooterIcons icon acording to the method's arguments.
 outputPage (OutputPage $out=null)
 Outputs the HTML generated by other functions.
 preloadExistence ()
 Preload the existence of three commonly-requested pages in a single query.
 printSource ()
 Text with the permalink to the source page, usually shown on the footer of a printed page.
 privacyLink ()
 Gets the link to the wiki's privacy policy page.
 setRelevantTitle ($t)
 Set the "relevant" title.
 setRelevantUser ($u)
 Set the "relevant" user.
 setupSkinUserCss (OutputPage $out)
 Add skin specific stylesheets Calling this method with an $out of anything but the same OutputPage inside ->getOutput() is deprecated.
 showEmailUser ($id)
 showIPinHeader ()
 Returns true if the IP should be shown in the header.
 subPageSubtitle ()

Static Public Member Functions

static checkTitle (&$title, $name)
 make sure we have some title to operate on
static getDynamicStylesheetQuery ()
 Get the query to generate a dynamic stylesheet.
static getSkinNameMessages ()
 Fetch the skinname messages for available skins.
static getSkinNames ()
 Fetch the set of available skins.
static getUsableSkins ()
 Fetch the list of usable skins in regards to $wgSkipSkins.
static makeGlobalVariablesScript ($unused)
 Make a "<script>" tag containing global variables.
static makeI18nUrl ($name, $urlaction= '')
static makeInternalOrExternalUrl ($name)
 If url string starts with http, consider as external URL, else internal.
static makeKnownUrlDetails ($name, $urlaction= '')
 Make URL details where the article exists (or at least it's convenient to think so)
static makeMainPageUrl ($urlaction= '')
static makeNSUrl ($name, $urlaction= '', $namespace=NS_MAIN)
 this can be passed the NS number as defined in Language.php
static makeSpecialUrl ($name, $urlaction= '', $proto=null)
 Make a URL for a Special Page using the given query and protocol.
static makeSpecialUrlSubpage ($name, $subpage, $urlaction= '')
static makeUrl ($name, $urlaction= '')
static makeUrlDetails ($name, $urlaction= '')
 these return an array with the 'href' and boolean 'exists'
static makeVariablesScript ($data)
static & newFromKey ($key)
 Factory method for loading a skin of a given type.
static normalizeKey ($key)
 Normalize a skin preference value to a form that can be loaded.

Protected Member Functions

 afterContentHook ()
 This runs a hook to allow extensions placing their stuff after content and article metadata (e.g.
 generateDebugHTML ()
 Generate debug data HTML for displaying at the bottom of the main content area.
 lastModified ()
 Get the timestamp of the latest revision, formatted in user language.

Protected Attributes

 $mRelevantTitle = null
 $mRelevantUser = null
 $skinname = 'standard'

Private Member Functions

 getCachedNotice ($name)
 Get a cached notice.

Detailed Description

The main skin class that provide methods and properties for all other skins.

This base class is also the "Standard" skin.

See docs/skin.txt for more information.

Definition at line 35 of file Skin.php.


Member Function Documentation

Skin::__call ( fname,
args 
)

Use PHP's magic __call handler to intercept legacy calls to the linker for backwards compatibility.

Parameters:
$fnameString Name of called method
$argsArray Arguments to the method
Returns:
mixed

Definition at line 1541 of file Skin.php.

References $fname.

Gets the link to the wiki's about page.

Returns:
String HTML

Definition at line 925 of file Skin.php.

References footerLink().

Referenced by SkinTemplate\outputPage().

Skin::addToBodyAttributes ( out,
&$  bodyAttrs 
)

This will be called by OutputPage::headElement when it is creating the "<body>" tag, skins can override it if they have a need to add in any body attributes or classes of their own.

Parameters:
$outOutputPage
$bodyAttrsArray

Reimplemented in SkinVector.

Definition at line 405 of file Skin.php.

Skin::addToSidebar ( &$  bar,
message 
)

Add content from a sidebar system message Currently only used for MediaWiki:Sidebar (but may be used by Extensions)

This is just a wrapper around addToSidebarPlain() for backwards compatibility

Parameters:
$bararray
$messageString

Definition at line 1173 of file Skin.php.

References addToSidebarPlain(), and wfMessage().

Referenced by buildSidebar().

Skin::addToSidebarPlain ( &$  bar,
text 
)

Add content from plain text.

Since:
1.17
Parameters:
$bararray
$textstring
Returns:
Array

Definition at line 1184 of file Skin.php.

References $lines, $title, Sanitizer\escapeId(), ContextSource\getTitle(), ContextSource\msg(), Title\newFromText(), MessageCache\singleton(), wfMatchesDomainList(), and wfUrlProtocols().

Referenced by addToSidebar().

Skin::afterContentHook ( ) [protected]

This runs a hook to allow extensions placing their stuff after content and article metadata (e.g.

categories). Note: This function has nothing to do with afterContent().

This hook is placed here in order to allow using the same hook for all skins, both the SkinTemplate based ones and the older ones, which directly use this class to get their data.

The output of this function gets processed in SkinTemplate::outputPage() for the SkinTemplate based skins, all other skins should directly echo it.

Returns:
String, empty by default, if not changed by any hook function.

Definition at line 544 of file Skin.php.

References wfDebug(), and wfRunHooks().

Referenced by SkinTemplate\outputPage().

This gets called shortly before the "</body>" tag.

Returns:
String HTML-wrapped JS code to be put before "</body>"

Definition at line 579 of file Skin.php.

References ContextSource\getOutput(), and wfRunHooks().

Referenced by SkinTemplate\outputPage().

Build an array that represents the sidebar(s), the navigation bar among them.

Returns:
array

Definition at line 1139 of file Skin.php.

References $wgMemc, addToSidebar(), ContextSource\getLanguage(), wfMemcKey(), wfProfileIn(), wfProfileOut(), and wfRunHooks().

Referenced by SkinTemplate\outputPage().

static Skin::checkTitle ( &$  title,
name 
) [static]

make sure we have some title to operate on

Parameters:
$titleTitle
$namestring

Definition at line 1125 of file Skin.php.

References $title, and Title\newFromText().

Referenced by SkinTemplate\makeArticleUrlDetails(), makeI18nUrl(), makeKnownUrlDetails(), makeMainPageUrl(), makeNSUrl(), SkinTemplate\makeTalkUrlDetails(), makeUrl(), and makeUrlDetails().

Should we load mediawiki.legacy.wikiprintable? Skins that have their own print stylesheet should override this and return false.

(This is an ugly hack to get Monobook to play nicely with OutputPage::headElement().)

Returns:
bool

Reimplemented in SkinTemplate, and SkinLegacy.

Definition at line 1276 of file Skin.php.

Gets the link to the wiki's general disclaimers page.

Returns:
String HTML

Definition at line 933 of file Skin.php.

References footerLink().

Referenced by SkinTemplate\outputPage().

Skin::doEditSectionLink ( Title nt,
section,
tooltip = null,
lang = false 
)

Create a section edit link.

This supersedes editSectionLink() and editSectionLinkForOther().

Parameters:
$ntTitle The title being linked to (may not be the same as $wgTitle, if the section is included from a template)
$sectionstring The designation of the section being pointed to, to be included in the link, like "&section=$section"
$tooltipstring The tooltip to use for the link: will be escaped and wrapped in the 'editsectionhint' message
$langstring Language code
Returns:
string HTML to use for edit link

Definition at line 1484 of file Skin.php.

References $result, $section, Sanitizer\decodeCharReferences(), Linker\link(), wfGetLangObj(), wfMessage(), and wfRunHooks().

Render the array as a serie of links.

Parameters:
$treeArray: categories tree returned by Title::getParentCategoryTree
Returns:
String separated by >, terminate with "\n"

Definition at line 488 of file Skin.php.

References Linker\link(), and Title\newFromText().

Referenced by getCategoryLinks().

Return URL options for the 'edit page' link.

This may include an 'oldid' specifier, if the current page view is such.

Returns:
array
Access:
private

Definition at line 944 of file Skin.php.

References $options, getRevisionId(), and isRevisionCurrent().

Returns:
string

Definition at line 708 of file Skin.php.

References getSearchLink().

Referenced by SkinTemplate\outputPage().

Skin::footerLink ( desc,
page 
)
Parameters:
$desc
$page
Returns:
string

Definition at line 895 of file Skin.php.

References $page, $title, Linker\linkKnown(), ContextSource\msg(), and Title\newFromText().

Referenced by aboutLink(), disclaimerLink(), and privacyLink().

Skin::generateDebugHTML ( ) [protected]

Generate debug data HTML for displaying at the bottom of the main content area.

Returns:
String HTML containing debug data, if enabled (otherwise empty).

Definition at line 570 of file Skin.php.

References MWDebug\getHTMLDebugLog().

Referenced by SkinTemplate\outputPage().

Skin::getCachedNotice ( name) [private]

Get a cached notice.

Parameters:
$nameString: message name, or 'default' for $wgSiteNotice
Returns:
String: HTML fragment

Definition at line 1372 of file Skin.php.

References $parserMemc, $wgContLang, ContextSource\getOutput(), ContextSource\msg(), Html\rawElement(), wfMemcKey(), wfProfileIn(), and wfProfileOut().

Referenced by getNamespaceNotice(), and getSiteNotice().

Return a fully resolved style path url to images or styles stored in the common folder.

This method returns a url resolved using the configured skin style path and includes the style version inside of the url.

Parameters:
$nameString: The name or path of a skin resource file
Returns:
String The fully resolved style path url including styleversion

Definition at line 975 of file Skin.php.

Returns:
null|string

Definition at line 765 of file Skin.php.

References $out, and $url.

Referenced by SkinTemplate\outputPage().

static Skin::getDynamicStylesheetQuery ( ) [static]

Get the query to generate a dynamic stylesheet.

Returns:
array

Definition at line 348 of file Skin.php.

URL to the logo.

Returns:
String

Definition at line 413 of file Skin.php.

Referenced by logoText().

Get a notice based on page's namespace.

Returns:
String: HTML fragment

Definition at line 1426 of file Skin.php.

References getCachedNotice(), ContextSource\getTitle(), wfProfileIn(), and wfProfileOut().

Gets new talk page messages for the current user.

Returns:
MediaWiki message or if no new talk page messages, nothing

Definition at line 1284 of file Skin.php.

References $out, Xml\element(), ContextSource\getOutput(), ContextSource\getUser(), Linker\linkKnown(), ContextSource\msg(), Revision\newFromTitle(), IDBAccessObject\READ_NORMAL, and wfWikiID().

Referenced by SkinTemplate\outputPage().

Skin::getPageClasses ( title)

TODO: document.

Parameters:
$titleTitle
Returns:
String

Definition at line 375 of file Skin.php.

References $title, Sanitizer\escapeClass(), and SpecialPageFactory\resolveAlias().

Referenced by SkinTemplate\outputPage().

Gets the powered by MediaWiki icon.

Returns:
string

Definition at line 795 of file Skin.php.

References $url, and wfRunHooks().

Referenced by SkinTemplate\outputPage().

Return the "relevant" title.

A "relevant" title is not necessarily the actual title of the page. Special pages like Special:MovePage use set the page they are acting on as their "relevant" title, this allows the skin system to display things such as content tabs which belong to to that page instead of displaying a basic special page tab which has almost no meaning.

Returns:
Title

Definition at line 264 of file Skin.php.

References ContextSource\getTitle().

Referenced by SkinTemplate\buildContentNavigationUrls(), and getRelevantUser().

Return the "relevant" user.

A "relevant" user is similar to a relevant title. Special pages like Special:Contributions mark the user which they are relevant to so that things like the toolbox can display the information they usually are only able to display on a user's userpage and talkpage.

Returns:
User

Definition at line 288 of file Skin.php.

References $title, $user, getRelevantTitle(), User\isIP(), and User\newFromName().

Referenced by SkinTemplate\buildNavUrls().

Get the current revision ID.

Returns:
Integer

Definition at line 231 of file Skin.php.

References ContextSource\getOutput().

Referenced by SkinTemplate\buildNavUrls(), editUrlOptions(), isRevisionCurrent(), lastModified(), and printSource().

Returns:
String

Definition at line 700 of file Skin.php.

References $searchPage, and SpecialPage\getTitleFor().

Referenced by escapeSearchLink().

Get the site notice.

Returns:
String: HTML fragment

Definition at line 1446 of file Skin.php.

References getCachedNotice(), ContextSource\getUser(), wfProfileIn(), wfProfileOut(), and wfRunHooks().

Referenced by SkinTemplate\outputPage().

Returns:
string skin name

Definition at line 188 of file Skin.php.

Referenced by SkinTemplate\outputPage().

static Skin::getSkinNameMessages ( ) [static]

Fetch the skinname messages for available skins.

Returns:
array of strings

Definition at line 80 of file Skin.php.

References $messages.

static Skin::getSkinNames ( ) [static]

Fetch the set of available skins.

Returns:
array associative array of strings

Definition at line 44 of file Skin.php.

References $file, $matches, wfProfileIn(), and wfProfileOut().

Referenced by ResourceLoaderContext\__construct(), ApiQuerySiteinfo\appendSkins(), ResourceLoaderStartUpModule\getConfig(), getUsableSkins(), newFromKey(), and normalizeKey().

Return a fully resolved style path url to images or styles stored in the curent skins's folder.

This method returns a url resolved using the configured skin style path and includes the style version inside of the url.

Parameters:
$nameString: The name or path of a skin resource file
Returns:
String The fully resolved style path url including styleversion

Definition at line 987 of file Skin.php.

static Skin::getUsableSkins ( ) [static]

Fetch the list of usable skins in regards to $wgSkipSkins.

Useful for Special:Preferences and other places where you only want to show skins users _can_ use.

Returns:
array of strings

Definition at line 94 of file Skin.php.

References getSkinNames().

Referenced by Preferences\generateSkinOptions().

Parameters:
$outOutputPage

Reimplemented in SkinVector.

Definition at line 195 of file Skin.php.

References preloadExistence(), wfProfileIn(), and wfProfileOut().

Referenced by SkinTemplate\outputPage().

Whether the revision displayed is the latest revision of the page.

Returns:
Boolean

Definition at line 240 of file Skin.php.

References getRevisionId(), and ContextSource\getTitle().

Referenced by SkinTemplate\buildContentNavigationUrls(), editUrlOptions(), getCopyright(), and SkinTemplate\outputPage().

Skin::lastModified ( ) [protected]

Get the timestamp of the latest revision, formatted in user language.

Returns:
String

Definition at line 809 of file Skin.php.

References $s, $t, ContextSource\getLanguage(), ContextSource\getOutput(), getRevisionId(), Revision\getTimestampFromId(), ContextSource\getTitle(), ContextSource\getUser(), ContextSource\msg(), and wfGetLB().

Referenced by SkinTemplate\outputPage().

Skin::logoText ( align = '')
Parameters:
$alignstring
Returns:
string

Definition at line 836 of file Skin.php.

References $s, $url, getLogo(), ContextSource\msg(), and Title\newMainPage().

Referenced by SkinTemplate\outputPage().

Gets the link to the wiki's main page.

Returns:
string

Definition at line 881 of file Skin.php.

References $s, Linker\linkKnown(), ContextSource\msg(), and Title\newMainPage().

Skin::makeFooterIcon ( icon,
withImage = 'withImage' 
)

Renders a $wgFooterIcons icon acording to the method's arguments.

Parameters:
$iconArray: The icon to build the html for, see $wgFooterIcons for the format of this array
$withImageBool|String: Whether to use the icon's image or output a text-only footericon
Returns:
String HTML

Definition at line 859 of file Skin.php.

References $url, Html\element(), and Html\rawElement().

static Skin::makeGlobalVariablesScript ( unused) [static]

Make a "<script>" tag containing global variables.

Deprecated:
in 1.19
Parameters:
$unused
Returns:
string HTML fragment

Definition at line 335 of file Skin.php.

References $wgOut, makeVariablesScript(), and wfDeprecated().

static Skin::makeI18nUrl ( name,
urlaction = '' 
) [static]
Parameters:
$namestring
$urlactionstring
Returns:
String

Definition at line 1041 of file Skin.php.

References $title, checkTitle(), Title\newFromText(), and wfMessage().

static Skin::makeInternalOrExternalUrl ( name) [static]

If url string starts with http, consider as external URL, else internal.

Parameters:
$nameString
Returns:
String URL

Definition at line 1065 of file Skin.php.

References makeUrl(), and wfUrlProtocols().

static Skin::makeKnownUrlDetails ( name,
urlaction = '' 
) [static]

Make URL details where the article exists (or at least it's convenient to think so)

Parameters:
$nameString Article name
$urlactionString
Returns:
Array

Definition at line 1109 of file Skin.php.

References $title, checkTitle(), and Title\newFromText().

Referenced by SkinTemplate\outputPage().

static Skin::makeMainPageUrl ( urlaction = '') [static]
Parameters:
$urlactionstring
Returns:
String

Definition at line 998 of file Skin.php.

References $title, checkTitle(), and Title\newMainPage().

static Skin::makeNSUrl ( name,
urlaction = '',
namespace = NS_MAIN 
) [static]

this can be passed the NS number as defined in Language.php

Parameters:
$name
$urlactionstring
$namespaceint
Returns:
String

Definition at line 1080 of file Skin.php.

References $title, checkTitle(), and Title\makeTitleSafe().

static Skin::makeSpecialUrl ( name,
urlaction = '',
proto = null 
) [static]

Make a URL for a Special Page using the given query and protocol.

If $proto is set to null, make a local URL. Otherwise, make a full URL with the protocol specified.

Parameters:
$namestring Name of the Special page
$urlactionstring Query to append
$protoProtocol to use or null for a local URL
Returns:
String

Definition at line 1016 of file Skin.php.

References $title, and SpecialPage\getSafeTitleFor().

Referenced by SkinTemplate\buildPersonalUrls().

static Skin::makeSpecialUrlSubpage ( name,
subpage,
urlaction = '' 
) [static]
Parameters:
$namestring
$subpagestring
$urlactionstring
Returns:
String

Definition at line 1031 of file Skin.php.

References $title, and SpecialPage\getSafeTitleFor().

Referenced by SkinTemplate\buildPersonalUrls().

static Skin::makeUrl ( name,
urlaction = '' 
) [static]
Parameters:
$namestring
$urlactionstring
Returns:
String

Definition at line 1052 of file Skin.php.

References $title, checkTitle(), and Title\newFromText().

Referenced by makeInternalOrExternalUrl().

static Skin::makeUrlDetails ( name,
urlaction = '' 
) [static]

these return an array with the 'href' and boolean 'exists'

Parameters:
$name
$urlactionstring
Returns:
array

Definition at line 1093 of file Skin.php.

References $title, checkTitle(), and Title\newFromText().

Referenced by SkinTemplate\outputPage().

static Skin::makeVariablesScript ( data) [static]
Parameters:
$dataarray
Returns:
string

Definition at line 318 of file Skin.php.

References Html\inlineScript(), ResourceLoader\makeConfigSetScript(), and ResourceLoader\makeLoaderConditionalScript().

Referenced by makeGlobalVariablesScript().

static& Skin::newFromKey ( key) [static]

Factory method for loading a skin of a given type.

Parameters:
$keyString: 'monobook', 'standard', etc.
Returns:
Skin

Definition at line 154 of file Skin.php.

References MWInit\classExists(), getSkinNames(), normalizeKey(), and wfDebug().

static Skin::normalizeKey ( key) [static]

Normalize a skin preference value to a form that can be loaded.

If a skin can't be found, it will fall back to the configured default (or the old 'Classic' skin if that's broken).

Parameters:
$keyString: 'monobook', 'standard', etc.
Returns:
string

Definition at line 113 of file Skin.php.

References $fallback, and getSkinNames().

Referenced by newFromKey().

Skin::outputPage ( OutputPage out = null) [abstract]

Outputs the HTML generated by other functions.

Parameters:
$outOutputPage

Reimplemented in SkinTemplate.

Preload the existence of three commonly-requested pages in a single query.

Definition at line 206 of file Skin.php.

References $lb, $user, ContextSource\getTitle(), and ContextSource\getUser().

Referenced by initPage().

Text with the permalink to the source page, usually shown on the footer of a printed page.

Returns:
string HTML text with an URL

Definition at line 595 of file Skin.php.

References $url, getRevisionId(), ContextSource\getTitle(), ContextSource\msg(), and wfExpandIRI().

Referenced by SkinTemplate\outputPage().

Gets the link to the wiki's privacy policy page.

Returns:
String HTML

Definition at line 917 of file Skin.php.

References footerLink().

Referenced by SkinTemplate\outputPage().

Set the "relevant" title.

See also:
self::getRelevantTitle()
Parameters:
$tTitle object to use

Definition at line 250 of file Skin.php.

References $t.

Set the "relevant" user.

See also:
self::getRelevantUser()
Parameters:
$uUser object to use

Definition at line 276 of file Skin.php.

Skin::setupSkinUserCss ( OutputPage out) [abstract]

Add skin specific stylesheets Calling this method with an $out of anything but the same OutputPage inside ->getOutput() is deprecated.

The $out arg is kept for compatibility purposes with skins.

Parameters:
$outOutputPage
Todo:
delete

Reimplemented in SkinTemplate, SkinVector, SkinMonoBook, SkinSimple, SkinCologneBlue, SkinModern, SkinChick, SkinNostalgia, SkinLegacy, and SkinStandard.

Parameters:
$idUser|int
Returns:
bool

Definition at line 958 of file Skin.php.

References ContextSource\getUser(), and User\newFromId().

Referenced by SkinTemplate\buildNavUrls().

Returns true if the IP should be shown in the header.

Returns:
Bool

Definition at line 692 of file Skin.php.

Referenced by SkinTemplate\buildPersonalUrls(), and SkinTemplate\outputPage().


Member Data Documentation

Skin::$mRelevantTitle = null [protected]

Definition at line 37 of file Skin.php.

Skin::$mRelevantUser = null [protected]

Definition at line 38 of file Skin.php.

Skin::$skinname = 'standard' [protected]

The documentation for this class was generated from the following file: