MediaWiki  master
SkinTemplate Class Reference

Base class for QuickTemplate-based skins. More...

Inheritance diagram for SkinTemplate:
Collaboration diagram for SkinTemplate:

Public Member Functions

 generateHTML ()
 Subclasses not wishing to use the QuickTemplate render method can rewrite this method, for example to use TemplateParser::processTemplate. More...
 
 getCategoryLinks ()
 Extends category links with Skin::getAfterPortlet functionality. More...
 
 getStructuredPersonalTools ()
 Get personal tools for the user. More...
 
 getTemplateData ()
 @inheritDoc More...
 
 makePersonalToolsList ( $personalTools=null, $options=[])
 Get the HTML for the personal tools list. More...
 
 makeSearchButton ( $mode, $attrs=[])
 
 makeSearchInput ( $attrs=[])
 
 outputPage ()
 Initialize various variables and generate the template @stable to override. More...
 
 tabAction ( $title, $message, $selected, $query='', $checkEdit=false)
 Builds an array with tab definition. More...
 
- Public Member Functions inherited from Skin
 __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) More...
 
 addToSidebarPlain (&$bar, $text)
 Add content from plain text. More...
 
 bottomScripts ( $triggerWarnings=true)
 This gets called shortly before the "</body>" tag. More...
 
 buildSidebar ()
 Build an array that represents the sidebar(s), the navigation bar among them. More...
 
 doEditSectionLink (Title $nt, $section, $sectionTitle, Language $lang)
 Create a section edit link. More...
 
 editUrlOptions ()
 Return URL options for the 'edit page' link. More...
 
 footerLink ( $desc, $page)
 Given a pair of message keys for link and text label, return an HTML link for use in the footer. More...
 
 getAfterPortlet (string $name)
 Allows extensions to hook into known portlets and add stuff to them. More...
 
 getCategories ()
 
 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. More...
 
 getFooterIcons ()
 Get template representation of the footer. More...
 
 getHtmlElementAttributes ()
 Return values for <html> element. More...
 
 getLanguages ()
 Generates array of language links for the current page. More...
 
 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) More...
 
 getOptions ()
 Returns skin options Recommended to use SkinFactory::getSkinOptions instead. More...
 
 getPageClasses ( $title)
 TODO: document. More...
 
 getPersonalToolsForMakeListItem ( $urls, $applyClassesToListItems=false)
 Create an array of personal tools items from the data in the quicktemplate stored by SkinTemplate. More...
 
 getRelevantTitle ()
 Return the "relevant" title. More...
 
 getRelevantUser ()
 Return the "relevant" user. More...
 
 getSiteNotice ()
 
 getSkinName ()
 
 getUndeleteLink ()
 
 initPage (OutputPage $out)
 
 isResponsive ()
 Indicates if this skin is responsive. More...
 
 logoText ( $align='')
 
 makeFooterIcon ( $icon, $withImage='withImage')
 Renders a $wgFooterIcons icon according to the method's arguments. More...
 
 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... More...
 
 makeListItem ( $key, $item, $options=[])
 Generates a list item for a navigation, portlet, portal, sidebar... More...
 
 makeToolbox ( $navUrls, $feedUrls)
 Create an array of common toolbox items from the data in the quicktemplate stored by SkinTemplate. More...
 
 mapInterwikiToLanguage ( $code)
 Allows correcting the language of interlanguage links which, mostly due to legacy reasons, do not always match the standards compliant language tag. More...
 
 prepareSubtitle ()
 Prepare the subtitle of the page for output in the skin if one has been set. More...
 
 printSource ()
 Text with the permalink to the source page, usually shown on the footer of a printed page. More...
 
 setRelevantTitle ( $t)
 
 setRelevantUser (?UserIdentity $u)
 
 showEmailUser ( $id)
 
 supportsMenu (string $menu)
 Does the skin support the named menu? More...
 
- Public Member Functions inherited from ContextSource
 canUseWikiPage ()
 Check whether a WikiPage object can be get with getWikiPage(). More...
 
 exportSession ()
 Export the resolved user IP, HTTP headers, user ID, and session ID. More...
 
 getActionName ()
 Get the action name for the current web request. More...
 
 getAuthority ()
 
 getConfig ()
 
 getContext ()
 Get the base IContextSource object. More...
 
 getCsrfTokenSet ()
 Get a repository to obtain and match CSRF tokens. More...
 
 getLanguage ()
 
 getOutput ()
 
 getRequest ()
 
 getSkin ()
 
 getTiming ()
 
 getTitle ()
 
 getUser ()
 
 getWikiPage ()
 Get the WikiPage object. More...
 
 msg ( $key,... $params)
 Get a Message object with context set Parameters are the same as wfMessage() More...
 
 setContext (IContextSource $context)
 

Static Public Member Functions

static makeSearchButtonInternal ( $mode, $searchData, $attrs=[])
 
- Static Public Member Functions inherited from Skin
static getPortletLinkOptions (RL\Context $context)
 Returns skin options for portlet links, used by addPortletLink. More...
 
static getVersion ()
 Get the current major version of Skin. More...
 
static makeInternalOrExternalUrl ( $name)
 If url string starts with http, consider as external URL, else internal. More...
 
static makeMainPageUrl ( $urlaction='')
 
static makeSpecialUrl ( $name, $urlaction='', $proto=null)
 Make a URL for a Special Page using the given query and protocol. More...
 
static makeSpecialUrlSubpage ( $name, $subpage, $urlaction='')
 
static normalizeKey ( $key)
 Normalize a skin preference value to a form that can be loaded. More...
 

Public Attributes

 $loggedin
 
string $template
 For QuickTemplate, the name of the subclass which will actually fill the template. More...
 
 $thispage
 
 $thisquery
 
 $titletxt
 
 $username
 
 $userpage
 
 $userpageUrlDetails
 

Protected Member Functions

 buildContentNavigationUrls ()
 Wrapper for private buildContentNavigationUrlsInternal. More...
 
 buildCreateAccountData ( $returnto)
 Build "Create Account" link data. More...
 
 buildLoginData ( $returnto, $useCombinedLoginLink)
 Build "Login" link. More...
 
 buildLogoutLinkData ()
 Build data required for "Logout" link. More...
 
 buildPersonalPageItem ( $id='pt-userpage')
 Build a user page link data. More...
 
 buildPersonalUrls (bool $includeNotifications=true)
 Build array of urls for personal toolbar. More...
 
 getNameSpaceKey ()
 Generate strings used for xml 'id' names. More...
 
 getReturnToParam ()
 Builds query params for the page to return to, used when building links. More...
 
 injectLegacyMenusIntoPersonalTools (array $contentNavigation)
 Insert legacy menu items from content navigation into the personal toolbar. More...
 
 prepareQuickTemplate ()
 initialize various variables and generate the template More...
 
 runOnSkinTemplateNavigationHooks (SkinTemplate $skin, &$content_navigation)
 Run hooks relating to navigation menu data. More...
 
 setupTemplate ( $classname)
 Create the template engine object; we feed it a bunch of data and eventually it spits out some HTML. More...
 
 setupTemplateContext ()
 Setup class properties that are necessary prior to calling setupTemplateForOutput. More...
 
 setupTemplateForOutput ()
 
 useCombinedLoginLink ()
 Returns if a combined login/signup link will be used. More...
 
- Protected Member Functions inherited from Skin
 afterContentHook ()
 This runs a hook to allow extensions placing their stuff after content and article metadata (e.g. More...
 
 buildFeedUrls ()
 Build data structure representing syndication links. More...
 
 buildNavUrls ()
 Build array of common navigation links. More...
 
 getAction ()
 
 getComponent (string $name)
 
 getIndicatorsData ( $indicators)
 Return an array of indicator data. More...
 
 getJsConfigVars ()
 Returns array of config variables that should be added only to this skin for use in JavaScript. More...
 
 getPortletData (string $name, array $items)
 
 lastModified ()
 Get the timestamp of the latest revision, formatted in user language. More...
 
 prepareUndeleteLink ()
 Prepare undelete link for output in page. More...
 
 prepareUserLanguageAttributes ()
 Prepare user language attribute links. More...
 
 wrapHTML ( $title, $html)
 Wrap the body text with language information and identifiable element. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from Skin
static makeKnownUrlDetails ( $name, $urlaction='')
 Make URL details where the article exists (or at least it's convenient to think so) More...
 
static makeUrlDetails ( $name, $urlaction='')
 these return an array with the 'href' and boolean 'exists' More...
 
- Protected Attributes inherited from Skin
 $mRelevantTitle = null
 
array $options = []
 Skin options passed into constructor. More...
 
string null $skinname = null
 
const VERSION_MAJOR = 1
 The current major version of the skin specification. More...
 

Detailed Description

Base class for QuickTemplate-based skins.

The template data is filled in SkinTemplate::prepareQuickTemplate.

Stability: stable
to extend

Definition at line 37 of file SkinTemplate.php.

Member Function Documentation

◆ buildContentNavigationUrls()

SkinTemplate::buildContentNavigationUrls ( )
protected

Wrapper for private buildContentNavigationUrlsInternal.

Deprecated:
since 1.38 skins can use runOnSkinTemplateNavigationHooks instead.
Returns
array

Definition at line 1470 of file SkinTemplate.php.

References wfDeprecated().

◆ buildCreateAccountData()

SkinTemplate::buildCreateAccountData (   $returnto)
protected

Build "Create Account" link data.

Stability: unstable
Parameters
string[]$returntoquery params for the page to return to
Returns
array

Definition at line 739 of file SkinTemplate.php.

References $title, and getTitle().

Referenced by buildPersonalUrls().

◆ buildLoginData()

SkinTemplate::buildLoginData (   $returnto,
  $useCombinedLoginLink 
)
protected

Build "Login" link.

Stability: unstable
Parameters
string[]$returntoquery params for the page to return to
bool$useCombinedLoginLinkwhen set a single link to login form will be created with alternative label.
Returns
array

Definition at line 596 of file SkinTemplate.php.

References $title, ContextSource\getAuthority(), ContextSource\getTitle(), Skin\makeSpecialUrl(), and ContextSource\msg().

Referenced by buildPersonalUrls().

◆ buildLogoutLinkData()

SkinTemplate::buildLogoutLinkData ( )
finalprotected

Build data required for "Logout" link.

Stability: unstable
Since
1.37
Returns
array Array of data required to create a logout link.

Definition at line 715 of file SkinTemplate.php.

References $title, and getTitle().

Referenced by buildPersonalUrls().

◆ buildPersonalPageItem()

SkinTemplate::buildPersonalPageItem (   $id = 'pt-userpage')
protected

Build a user page link data.

Parameters
string$idof user page item to be output in HTML attribute (optional)
Returns
array

Definition at line 777 of file SkinTemplate.php.

◆ buildPersonalUrls()

SkinTemplate::buildPersonalUrls ( bool  $includeNotifications = true)
protected

◆ generateHTML()

SkinTemplate::generateHTML ( )

Subclasses not wishing to use the QuickTemplate render method can rewrite this method, for example to use TemplateParser::processTemplate.

Since
1.35
Returns
string of complete skin HTML to output to the page. This varies based on the skin option bodyOnly (see Skin::getOptions):
  • If true, HTML includes <!DOCTYPE> and opening and closing html tags
  • If false, HTML is the contents of the body tag.

Reimplemented in SkinMustache.

Definition at line 146 of file SkinTemplate.php.

References Skin\$options, Skin\getOptions(), ContextSource\getOutput(), and prepareQuickTemplate().

Referenced by outputPage().

◆ getCategoryLinks()

SkinTemplate::getCategoryLinks ( )

Extends category links with Skin::getAfterPortlet functionality.

Returns
string HTML

Reimplemented from Skin.

Definition at line 637 of file SkinTemplate.php.

◆ getNameSpaceKey()

SkinTemplate::getNameSpaceKey ( )
protected

Generate strings used for xml 'id' names.

Deprecated:
since 1.35, use Title::getNamespaceKey() instead.

Hard deprecated since 1.39.

Returns
string

Definition at line 1520 of file SkinTemplate.php.

References getTitle(), and wfDeprecated().

◆ getReturnToParam()

SkinTemplate::getReturnToParam ( )
protected

Builds query params for the page to return to, used when building links.

Stability: unstable
Returns
string[]

Definition at line 541 of file SkinTemplate.php.

References $title, ContextSource\getAuthority(), ContextSource\getRequest(), ContextSource\getTitle(), Title\newFromText(), wfArrayToCgi(), and wfCgiToArray().

Referenced by buildPersonalUrls().

◆ getStructuredPersonalTools()

SkinTemplate::getStructuredPersonalTools ( )

Get personal tools for the user.

Since
1.31
Returns
array[]

Definition at line 394 of file SkinTemplate.php.

References buildPersonalUrls(), and Skin\getPersonalToolsForMakeListItem().

◆ getTemplateData()

SkinTemplate::getTemplateData ( )

@inheritDoc

Reimplemented from Skin.

Reimplemented in SkinMustache, and SkinFallback.

Definition at line 184 of file SkinTemplate.php.

◆ injectLegacyMenusIntoPersonalTools()

SkinTemplate::injectLegacyMenusIntoPersonalTools ( array  $contentNavigation)
finalprotected

Insert legacy menu items from content navigation into the personal toolbar.

Access: internal
Parameters
array$contentNavigation
Returns
array

Definition at line 1533 of file SkinTemplate.php.

References wfArrayInsertAfter().

◆ makePersonalToolsList()

SkinTemplate::makePersonalToolsList (   $personalTools = null,
  $options = [] 
)

Get the HTML for the personal tools list.

Since
1.31
Parameters
array | null$personalTools
array$options
Returns
string

Definition at line 371 of file SkinTemplate.php.

References Skin\$options, buildPersonalUrls(), Skin\getPersonalToolsForMakeListItem(), and Skin\makeListItem().

◆ makeSearchButton()

SkinTemplate::makeSearchButton (   $mode,
  $attrs = [] 
)
final
Since
1.35
Parameters
string$moderepresenting the type of button wanted either go, fulltext or image
array$attrs(optional)
Exceptions
MWExceptionif bad value of $mode passed in
Returns
string of HTML button

Reimplemented from Skin.

Definition at line 1598 of file SkinTemplate.php.

◆ makeSearchButtonInternal()

static SkinTemplate::makeSearchButtonInternal (   $mode,
  $searchData,
  $attrs = [] 
)
static
Deprecated:
1.38 see
Access: internal
note.
Parameters
string$moderepresenting the type of button wanted either go, fulltext or image
array$searchDataSkin data returned by Skin::getTemplateData()['data-search-box']
array$attrs(optional)
Exceptions
MWExceptionif bad value of $mode passed in
Access: internal
Please use SkinTemplate::makeSearchButton. For usage only inside Skin class to support deprecated Skin::makeSearchButton method. This should be merged with SkinTemplate::makeSearchButton when Skin::makeSearchButton method is removed.
Returns
string of HTML button

Definition at line 1625 of file SkinTemplate.php.

References Html\element(), Html\rawElement(), Linker\tooltipAndAccesskeyAttribs(), and wfMessage().

Referenced by Skin\makeSearchButton().

◆ makeSearchInput()

SkinTemplate::makeSearchInput (   $attrs = [])
Since
1.35
Parameters
array$attrs(optional) will be passed to tooltipAndAccesskeyAttribs and decorate the resulting input
Returns
string of HTML input

Reimplemented from Skin.

Definition at line 1578 of file SkinTemplate.php.

References Html\element().

◆ outputPage()

SkinTemplate::outputPage ( )

Initialize various variables and generate the template @stable to override.

Reimplemented from Skin.

Definition at line 170 of file SkinTemplate.php.

References generateHTML(), Skin\getJsConfigVars(), ContextSource\getOutput(), Skin\initPage(), and Profiler\instance().

◆ prepareQuickTemplate()

◆ runOnSkinTemplateNavigationHooks()

SkinTemplate::runOnSkinTemplateNavigationHooks ( SkinTemplate  $skin,
$content_navigation 
)
protected

Run hooks relating to navigation menu data.

Skins should extend this if they want to run opinionated transformations to the data after all hooks have been run. Note hooks are run in an arbitrary order.

Parameters
SkinTemplate$skin
array&$content_navigationrepresenting all menus.
Since
1.37

Definition at line 984 of file SkinTemplate.php.

References $title.

◆ setupTemplate()

SkinTemplate::setupTemplate (   $classname)
protected

Create the template engine object; we feed it a bunch of data and eventually it spits out some HTML.

Should have interface roughly equivalent to PHPTAL 0.7.

Parameters
string$classname
Returns
QuickTemplate

Definition at line 71 of file SkinTemplate.php.

References ContextSource\getConfig().

Referenced by setupTemplateForOutput().

◆ setupTemplateContext()

SkinTemplate::setupTemplateContext ( )
finalprotected

Setup class properties that are necessary prior to calling setupTemplateForOutput.

It must be called inside prepareQuickTemplate. This function may set local class properties that will be used by other methods, but should not make assumptions about the implementation of setupTemplateForOutput

Since
1.35

Definition at line 100 of file SkinTemplate.php.

References $title, ContextSource\getRequest(), ContextSource\getTitle(), ContextSource\getUser(), Skin\makeKnownUrlDetails(), Skin\makeUrlDetails(), and wfArrayToCgi().

Referenced by buildPersonalUrls(), SkinMustache\generateHTML(), and setupTemplateForOutput().

◆ setupTemplateForOutput()

SkinTemplate::setupTemplateForOutput ( )
protected
Returns
QuickTemplate

Definition at line 78 of file SkinTemplate.php.

References $template, setupTemplate(), and setupTemplateContext().

Referenced by prepareQuickTemplate().

◆ tabAction()

SkinTemplate::tabAction (   $title,
  $message,
  $selected,
  $query = '',
  $checkEdit = false 
)

Builds an array with tab definition.

Parameters
Title$titlePage Where the tab links to
string | string[] | MessageSpecifier$messageMessage or an array of message keys (will fall back)
bool$selectedDisplay the tab as selected
string$queryQuery string attached to tab URL
bool$checkEditCheck if $title exists and mark with .new if one doesn't
Returns
array
Parameters
-taint$messagetainted

Definition at line 821 of file SkinTemplate.php.

References $title, getContext(), true, and wfMessageFallback().

◆ useCombinedLoginLink()

SkinTemplate::useCombinedLoginLink ( )
protected

Returns if a combined login/signup link will be used.

Stability: unstable
Returns
bool

Definition at line 575 of file SkinTemplate.php.

References ContextSource\getConfig().

Referenced by buildPersonalUrls().

Member Data Documentation

◆ $loggedin

SkinTemplate::$loggedin

Definition at line 49 of file SkinTemplate.php.

◆ $template

string SkinTemplate::$template

For QuickTemplate, the name of the subclass which will actually fill the template.

Definition at line 42 of file SkinTemplate.php.

Referenced by SkinMustache\generateHTML(), and setupTemplateForOutput().

◆ $thispage

SkinTemplate::$thispage

Definition at line 44 of file SkinTemplate.php.

◆ $thisquery

SkinTemplate::$thisquery

Definition at line 47 of file SkinTemplate.php.

◆ $titletxt

SkinTemplate::$titletxt

Definition at line 45 of file SkinTemplate.php.

◆ $username

SkinTemplate::$username

Definition at line 50 of file SkinTemplate.php.

Referenced by buildPersonalUrls().

◆ $userpage

SkinTemplate::$userpage

Definition at line 46 of file SkinTemplate.php.

◆ $userpageUrlDetails

SkinTemplate::$userpageUrlDetails

Definition at line 51 of file SkinTemplate.php.


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