MediaWiki REL1_39
|
The main skin class which provides methods and properties for all other skins. More...
Public Member Functions | |
__construct ( $options=null) | |
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 ( $triggerWarnings=true) | |
This gets called shortly before the "</body>" tag. | |
buildSidebar () | |
Build an array that represents the sidebar(s), the navigation bar among them. | |
doEditSectionLink (Title $nt, $section, $sectionTitle, Language $lang) | |
Create a section edit link. | |
editUrlOptions () | |
Return URL options for the 'edit page' link. | |
footerLink ( $desc, $page) | |
Given a pair of message keys for link and text label, return an HTML link for use in the footer. | |
getAfterPortlet (string $name) | |
Allows extensions to hook into known portlets and add stuff to them. | |
getCategories () | |
getCategoryLinks () | |
getCopyright ( $type='detect') | |
getDefaultModules () | |
Defines the ResourceLoader modules that should be added to the skin It is recommended that skins wishing to override call parent::getDefaultModules() and substitute out any modules they wish to change by using a key to look them up. | |
getHtmlElementAttributes () | |
Return values for <html> element. | |
getLanguages () | |
Generates array of language links for the current page. | |
getNewtalks () | |
Gets new talk page messages for the current user and returns an appropriate alert message (or an empty string if there are no messages) | |
getOptions () | |
Returns skin options Recommended to use SkinFactory::getSkinOptions instead. | |
getPageClasses ( $title) | |
TODO: document. | |
getPersonalToolsForMakeListItem ( $urls, $applyClassesToListItems=false) | |
Create an array of personal tools items from the data in the quicktemplate stored by SkinTemplate. | |
getRelevantTitle () | |
Return the "relevant" title. | |
getRelevantUser () | |
Return the "relevant" user. | |
getSearchPageTitle () | |
getSiteFooterLinks () | |
Gets the link to the wiki's privacy policy, about page, and disclaimer page. | |
getSiteNotice () | |
getSkinName () | |
getTemplateData () | |
Subclasses may extend this method to add additional template data. | |
getUndeleteLink () | |
initPage (OutputPage $out) | |
isResponsive () | |
Indicates if this skin is responsive. | |
logoText ( $align='') | |
makeFooterIcon ( $icon, $withImage='withImage') | |
Renders a $wgFooterIcons icon according to the method's arguments. | |
makeLink ( $key, $item, $linkOptions=[]) | |
Makes a link, usually used by makeListItem to generate a link for an item in a list used in navigation lists, portlets, portals, sidebars, etc... | |
makeListItem ( $key, $item, $options=[]) | |
Generates a list item for a navigation, portlet, portal, sidebar... list. | |
makeSearchButton ( $mode, $attrs=[]) | |
makeSearchInput ( $attrs=[]) | |
makeToolbox ( $navUrls, $feedUrls) | |
Create an array of common toolbox items from the data in the quicktemplate stored by SkinTemplate. | |
mapInterwikiToLanguage ( $code) | |
Allows correcting the language of interlanguage links which, mostly due to legacy reasons, do not always match the standards compliant language tag. | |
outputPage () | |
Outputs the HTML generated by other functions. | |
prepareSubtitle () | |
Prepare the subtitle of the page for output in the skin if one has been set. | |
printSource () | |
Text with the permalink to the source page, usually shown on the footer of a printed page. | |
setRelevantTitle ( $t) | |
setRelevantUser (?UserIdentity $u) | |
setSearchPageTitle (Title $title) | |
showEmailUser ( $id) | |
supportsMenu (string $menu) | |
Does the skin support the named menu? | |
Public Member Functions inherited from ContextSource | |
canUseWikiPage () | |
Check whether a WikiPage object can be get with getWikiPage(). | |
exportSession () | |
Export the resolved user IP, HTTP headers, user ID, and session ID. | |
getActionName () | |
Get the action name for the current web request. | |
getAuthority () | |
getConfig () | |
getContext () | |
Get the base IContextSource object. | |
getCsrfTokenSet () | |
Get a repository to obtain and match CSRF tokens. | |
getLanguage () | |
getOutput () | |
getRequest () | |
getSkin () | |
getStats () | |
getTiming () | |
getTitle () | |
getUser () | |
getWikiPage () | |
Get the WikiPage object. | |
msg ( $key,... $params) | |
Get a Message object with context set Parameters are the same as wfMessage() | |
setContext (IContextSource $context) | |
Static Public Member Functions | |
static | getPortletLinkOptions (RL\Context $context) |
Returns skin options for portlet links, used by addPortletLink. | |
static | getVersion () |
Get the current major version of Skin. | |
static | makeInternalOrExternalUrl ( $name) |
If url string starts with http, consider as external URL, else internal. | |
static | makeMainPageUrl ( $urlaction='') |
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 | 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. | |
buildFeedUrls () | |
Build data structure representing syndication links. | |
buildNavUrls () | |
Build array of common navigation links. | |
getAction () | |
getComponent (string $name) | |
getFooterLinks () | |
Get template representation of the footer containing site footer links as well as standard footer links. | |
getIndicatorsData ( $indicators) | |
Return an array of indicator data. | |
getJsConfigVars () | |
Returns array of config variables that should be added only to this skin for use in JavaScript. | |
lastModified () | |
Get the timestamp of the latest revision, formatted in user language. | |
prepareUndeleteLink () | |
Prepare undelete link for output in page. | |
prepareUserLanguageAttributes () | |
Prepare user language attribute links. | |
wrapHTML ( $title, $html) | |
Wrap the body text with language information and identifiable element. | |
Static Protected Member Functions | |
static | makeKnownUrlDetails ( $name, $urlaction='') |
Make URL details where the article exists (or at least it's convenient to think so) | |
static | makeUrlDetails ( $name, $urlaction='') |
these return an array with the 'href' and boolean 'exists' | |
Protected Attributes | |
$mRelevantTitle = null | |
array | $options = [] |
Skin options passed into constructor. | |
string null | $skinname = null |
const | VERSION_MAJOR = 1 |
The current major version of the skin specification. | |
The main skin class which provides methods and properties for all other skins.
See docs/Skin.md for more information.
Skin::__construct | ( | $options = null | ) |
string | array | null | $options | Options for the skin can be an array (since 1.35). When a string is passed, it's the skinname. When an array is passed:
|
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
array | &$bar | |
string | $message |
Skin::addToSidebarPlain | ( | & | $bar, |
$text ) |
Add content from plain text.
array | &$bar | |
string | $text |
Definition at line 1562 of file Skin.php.
References $line, $lines, $title, getTitle(), wfMatchesDomainList(), and wfUrlProtocols().
|
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.
Definition at line 698 of file Skin.php.
References wfDebug().
Referenced by SkinMustache\getTemplateData(), and SkinTemplate\prepareQuickTemplate().
Skin::bottomScripts | ( | $triggerWarnings = true | ) |
This gets called shortly before the "</body>" tag.
bool | $triggerWarnings | introduced in 1.39 whether to trigger deprecation notice. |
</body>
Definition at line 725 of file Skin.php.
References wfDeprecated().
Referenced by SkinTemplate\prepareQuickTemplate().
|
finalprotected |
Build data structure representing syndication links.
Definition at line 1453 of file Skin.php.
Referenced by SkinTemplate\prepareQuickTemplate().
|
protected |
Build array of common navigation links.
Assumes thispage property has been set before execution.
Definition at line 1303 of file Skin.php.
References $title, getAuthority(), getContext(), getTitle(), SpecialPage\getTitleFor(), getUser(), NS_CATEGORY, and SpecialPage\setContext().
Referenced by SkinTemplate\prepareQuickTemplate().
Skin::buildSidebar | ( | ) |
Build an array that represents the sidebar(s), the navigation bar among them.
BaseTemplate::getSidebar can be used to simplify the format and id generation in new skins.
The format of the returned array is [ heading => content, ... ], where:
Note that extensions can control the sidebar contents using the SkinBuildSidebar hook and can technically insert anything in here; skin creators are expected to handle values described above.
Definition at line 1490 of file Skin.php.
Referenced by SkinTemplate\prepareQuickTemplate().
Create a section edit link.
Title | $nt | The title being linked to (may not be the same as the current page, if the section is included from a template) |
string | $section | The designation of the section being pointed to, to be included in the link, like "§ion=$section" |
string | $sectionTitle | Section title. It is used in the link tooltip, escaped and wrapped in the 'editsectionhint' message |
Language | $lang |
Definition at line 1871 of file Skin.php.
References $lang.
Skin::editUrlOptions | ( | ) |
Skin::footerLink | ( | $desc, | |
$page ) |
Given a pair of message keys for link and text label, return an HTML link for use in the footer.
string | $desc | The i18n message key for the link text. The content of this message will be the visible text label. If this is set to nonexisting message key or the message is disabled, the link will not be generated, empty string will be returned in the stead. |
string | $page | The i18n message key for the page to link to. The content of this message will be the destination page for the footer link. Given a message key 'Privacypage' with content 'Project:Privacy policy', the link will lead to the wiki page with the title of the content. |
Definition at line 1016 of file Skin.php.
References $title.
|
finalprotected |
Skin::getAfterPortlet | ( | string | $name | ) |
Allows extensions to hook into known portlets and add stuff to them.
Unlike its BaseTemplate counterpart, this method does not wrap the html provided by the hook in a div.
string | $name |
Skin::getCategories | ( | ) |
Definition at line 663 of file Skin.php.
References getTitle(), getUser(), and NS_CATEGORY.
Referenced by SkinMustache\getTemplateData(), and SkinTemplate\prepareQuickTemplate().
Skin::getCategoryLinks | ( | ) |
Reimplemented in SkinTemplate.
Definition at line 597 of file Skin.php.
References $s, $t, $title, getTitle(), and NS_CATEGORY.
|
finalprotected |
string | $name |
Skin::getCopyright | ( | $type = 'detect' | ) |
string | $type |
Definition at line 872 of file Skin.php.
References $title, $type, getTitle(), and Linker\makeExternalLink().
Skin::getDefaultModules | ( | ) |
Defines the ResourceLoader modules that should be added to the skin It is recommended that skins wishing to override call parent::getDefaultModules() and substitute out any modules they wish to change by using a key to look them up.
Any modules defined with the 'styles' key will be added as render blocking CSS via Output::addModuleStyles. Similarly, each key should refer to a list of modules
Definition at line 351 of file Skin.php.
References $modules, getAuthority(), and getUser().
|
protected |
Get template representation of the footer containing site footer links as well as standard footer links.
All values are resolved and can be added to by the SkinAddFooterLinks hook.
Definition at line 2413 of file Skin.php.
Referenced by SkinTemplate\prepareQuickTemplate().
Skin::getHtmlElementAttributes | ( | ) |
Return values for <html> element.
Definition at line 585 of file Skin.php.
References $lang.
Referenced by OutputPage\headElement().
|
protected |
Return an array of indicator data.
Can be used by subclasses but should not be extended.
array | $indicators | return value of OutputPage::getIndicators |
Definition at line 1982 of file Skin.php.
References $content.
Referenced by SkinMustache\getTemplateData().
|
protected |
Returns array of config variables that should be added only to this skin for use in JavaScript.
Skins can override this to add variables to the page.
Definition at line 2458 of file Skin.php.
Referenced by SkinTemplate\outputPage().
Skin::getLanguages | ( | ) |
Generates array of language links for the current page.
This may includes items added to this section by the SidebarBeforeOutput hook (which may not necessarily be language links)
Definition at line 1204 of file Skin.php.
References getTitle().
Referenced by SkinTemplate\prepareQuickTemplate().
Skin::getNewtalks | ( | ) |
Gets new talk page messages for the current user and returns an appropriate alert message (or an empty string if there are no messages)
Definition at line 1671 of file Skin.php.
References $revStore, and getUser().
Referenced by SkinMustache\getTemplateData(), and SkinTemplate\prepareQuickTemplate().
|
final |
Returns skin options Recommended to use SkinFactory::getSkinOptions instead.
Definition at line 2577 of file Skin.php.
Referenced by SkinTemplate\generateHTML(), and OutputPage\headElement().
Skin::getPageClasses | ( | $title | ) |
TODO: document.
Title | $title |
Definition at line 548 of file Skin.php.
References $title, $type, and getAuthority().
Referenced by OutputPage\headElement().
|
final |
Create an array of personal tools items from the data in the quicktemplate stored by SkinTemplate.
The resulting array is built according to a format intended to be passed through makeListItem to generate the html. This is in reality the same list as already stored in personal_urls however it is reformatted so that you can just pass the individual items to makeListItem instead of hardcoding the element creation boilerplate.
array | $urls | |
bool | $applyClassesToListItems | (optional) when set behaves consistently with other menus, applying the class property applies to list items. When not set will move the class to child links. |
Definition at line 2008 of file Skin.php.
Referenced by SkinTemplate\getStructuredPersonalTools(), and SkinTemplate\makePersonalToolsList().
|
static |
Returns skin options for portlet links, used by addPortletLink.
RL\\Context | $context |
Skin::getRelevantTitle | ( | ) |
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 that page instead of displaying a basic special page tab which has almost no meaning.
Definition at line 483 of file Skin.php.
References getTitle().
Skin::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.
Skin::getSearchPageTitle | ( | ) |
Skin::getSiteFooterLinks | ( | ) |
Gets the link to the wiki's privacy policy, about page, and disclaimer page.
Skin::getSiteNotice | ( | ) |
Definition at line 1826 of file Skin.php.
References getUser().
Referenced by SkinMustache\getTemplateData(), and SkinTemplate\prepareQuickTemplate().
Skin::getSkinName | ( | ) |
Definition at line 278 of file Skin.php.
Referenced by OutputPage\headElement().
Skin::getTemplateData | ( | ) |
Subclasses may extend this method to add additional template data.
The data keys should be valid English words. Compound words should be hyphenated except if they are normally written as one word. Each key should be prefixed with a type hint, this may be enforced by the class PHPUnit test.
Plain strings are prefixed with 'html-', plain arrays with 'array-' and complex array data with 'data-'. 'is-' and 'has-' prefixes can be used for boolean variables. Messages are prefixed with 'msg-', followed by their message key. All messages specified in the skin option 'messages' will be available under 'msg-MESSAGE-NAME'.
Reimplemented in SkinFallback, SkinMustache, and SkinTemplate.
Definition at line 124 of file Skin.php.
References $title, getContext(), getTitle(), and getUser().
Skin::getUndeleteLink | ( | ) |
Definition at line 758 of file Skin.php.
References $title, getAuthority(), getContext(), getTitle(), and SpecialPage\getTitleFor().
|
static |
Get the current major version of Skin.
This is used to manage changes to underlying data and for providing support for older and new versions of code.
Definition at line 93 of file Skin.php.
References VERSION_MAJOR.
Skin::initPage | ( | OutputPage | $out | ) |
OutputPage | $out |
Reimplemented in SkinFallback.
Definition at line 303 of file Skin.php.
References OutputPage\addMeta(), and OutputPage\getHTMLTitle().
Referenced by SkinTemplate\outputPage().
Skin::isResponsive | ( | ) |
Indicates if this skin is responsive.
Responsive skins have skin–responsive added to <body> by OutputPage, and a viewport <meta> tag set by Skin::initPage.
Definition at line 291 of file Skin.php.
References getUser().
Referenced by OutputPage\headElement().
|
protected |
Skin::logoText | ( | $align = '' | ) |
string | $align |
Definition at line 952 of file Skin.php.
Referenced by SkinTemplate\prepareQuickTemplate().
Skin::makeFooterIcon | ( | $icon, | |
$withImage = 'withImage' ) |
Renders a $wgFooterIcons icon according to the method's arguments.
array | $icon | The icon to build the html for, see $wgFooterIcons for the format of this array. |
bool | string | $withImage | Whether to use the icon's image or output a text-only footericon. |
|
static |
If url string starts with http, consider as external URL, else internal.
string | $name |
Definition at line 1146 of file Skin.php.
References $title, and wfUrlProtocols().
Referenced by LoginSignupSpecialPage\getFieldDefinitions(), and EditPage\showStandardInputs().
|
staticprotected |
|
final |
Makes a link, usually used by makeListItem to generate a link for an item in a list used in navigation lists, portlets, portals, sidebars, etc...
string | $key | Usually a key from the list you are generating this link from. |
array | $item | Contains some of a specific set of keys. |
If "html" key is present, this will be returned. All other keys will be ignored.
The text of the link will be generated either from the contents of the "text" key in the $item array, if a "msg" key is present a message by that name will be used, and if neither of those are set the $key will be used as a message name.
If a "href" key is not present makeLink will just output htmlescaped text. The "href", "id", "class", "rel", and "type" keys are used as attributes for the link if present.
If an "id" or "single-id" (if you don't want the actual id to be output on the link) is present it will be used to generate a tooltip and accesskey for the link.
The 'link-html' key can be used to prepend additional HTML inside the link HTML. For example to prepend an icon.
The keys "context" and "primary" are ignored; these keys are used internally by skins and are not supposed to be included in the HTML output.
If you don't want an accesskey, set $item['tooltiponly'] = true;
If a "data" key is present, it must be an array, where the keys represent the data-xxx properties with their provided values. For example, $item['data'] = [ 'foo' => 1, 'bar' => 'baz', ]; will render as element properties: data-foo='1' data-bar='baz'
The "class" key currently accepts both a string and an array of classes, but this will be changed to only accept an array in the future.
array | $linkOptions | Can be used to affect the output of a link. Possible options are:
|
|
final |
Generates a list item for a navigation, portlet, portal, sidebar... list.
string | $key | Usually a key from the list you are generating this link from. |
array | $item | Array of list item data containing some of a specific set of keys. The "id", "class" and "itemtitle" keys will be used as attributes for the list item, if "active" contains a value of true a "active" class will also be appended to class. The "class" key currently accepts both a string and an array of classes, but this will be changed to only accept an array in the future. |
array | $options |
If you want something other than a "<li>" you can pass a tag name such as "tag" => "span" in the $options array to change the tag used. link/content data for the list item may come in one of two forms A "links" key may be used, in which case it should contain an array with a list of links to include inside the list item, see makeLink for the format of individual links array items.
Otherwise the relevant keys from the list item $item array will be passed to makeLink instead. Note however that "id" and "class" are used by the list item directly so they will not be passed to makeLink (however the link will still support a tooltip and accesskey from it) If you need an id or class on a single link you should include a "links" array with just one link item inside of it. You can also set "link-class" in $item to set a class on the link itself. If you want to add a title to the list item itself, you can set "itemtitle" to the value. $options is also passed on to makeLink calls
Definition at line 2252 of file Skin.php.
Referenced by SkinTemplate\makePersonalToolsList().
|
static |
Skin::makeSearchButton | ( | $mode, | |
$attrs = [] ) |
string | $mode | representing the type of button wanted either go , fulltext or image |
array | $attrs | (optional) |
MWException | if bad value of $mode passed in |
Reimplemented in SkinTemplate.
Definition at line 2354 of file Skin.php.
References wfDeprecated().
Skin::makeSearchInput | ( | $attrs = [] | ) |
array | $attrs | (optional) will be passed to tooltipAndAccesskeyAttribs and decorate the resulting input |
Reimplemented in SkinTemplate.
Definition at line 2328 of file Skin.php.
References wfDeprecated().
|
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.
string | $name | Name of the Special page |
string | array | $urlaction | Query to append |
string | null | $proto | Protocol to use or null for a local URL |
Definition at line 1120 of file Skin.php.
References $title, and SpecialPage\getSafeTitleFor().
|
static |
string | $name | |
string | bool | $subpage | false for no subpage |
string | array | $urlaction |
Definition at line 1135 of file Skin.php.
References $title, and SpecialPage\getSafeTitleFor().
Skin::makeToolbox | ( | $navUrls, | |
$feedUrls ) |
Create an array of common toolbox items from the data in the quicktemplate stored by SkinTemplate.
The resulting array is built according to a format intended to be passed through makeListItem to generate the html.
array | $navUrls | |
array | $feedUrls |
|
staticprotected |
Skin::mapInterwikiToLanguage | ( | $code | ) |
|
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 ($wgDefaultSkin), or the hardcoded default ($wgFallbackSkin) if the default skin is unavailable too.
string | $key | 'monobook', 'vector', etc. |
Definition at line 192 of file Skin.php.
References $fallback.
Referenced by ApiQuerySiteinfo\appendSkins(), ApiParse\execute(), and RequestContext\getSkin().
|
abstract |
Outputs the HTML generated by other functions.
Reimplemented in SkinTemplate.
|
final |
Prepare the subtitle of the page for output in the skin if one has been set.
Definition at line 2393 of file Skin.php.
Referenced by SkinMustache\getTemplateData(), and SkinTemplate\prepareQuickTemplate().
|
finalprotected |
Prepare undelete link for output in page.
Definition at line 2500 of file Skin.php.
Referenced by SkinMustache\getTemplateData(), and SkinTemplate\prepareQuickTemplate().
|
finalprotected |
Prepare user language attribute links.
Definition at line 2489 of file Skin.php.
Referenced by SkinMustache\getTemplateData(), and SkinTemplate\prepareQuickTemplate().
Skin::printSource | ( | ) |
Text with the permalink to the source page, usually shown on the footer of a printed page.
Definition at line 739 of file Skin.php.
References $title, getTitle(), and wfExpandIRI().
Referenced by SkinMustache\getTemplateData(), and SkinTemplate\prepareQuickTemplate().
Skin::setRelevantTitle | ( | $t | ) |
Skin::setRelevantUser | ( | ?UserIdentity | $u | ) |
Skin::setSearchPageTitle | ( | Title | $title | ) |
Definition at line 2559 of file Skin.php.
References $title, getUser(), and wfDeprecated().
Skin::showEmailUser | ( | $id | ) |
UserIdentity | int | $id |
Definition at line 1084 of file Skin.php.
References getUser(), User\newFromId(), User\newFromIdentity(), and SpecialEmailUser\validateTarget().
Skin::supportsMenu | ( | string | $menu | ) |
Does the skin support the named menu?
string | $menu | See Skin::getOptions for menu names. |
|
protected |
Wrap the body text with language information and identifiable element.
Title | $title | |
string | $html | body text |
Definition at line 2522 of file Skin.php.
References $title, getContext(), NS_FILE, and NS_SPECIAL.
Referenced by SkinMustache\getTemplateData(), and SkinTemplate\prepareQuickTemplate().
|
protected |
Skin options passed into constructor.
Definition at line 64 of file Skin.php.
Referenced by SkinTemplate\generateHTML(), and SkinTemplate\makePersonalToolsList().
|
protected |
The current major version of the skin specification.
Definition at line 73 of file Skin.php.
Referenced by getVersion().