MediaWiki  master
Revision\SlotRoleHandler Class Reference

SlotRoleHandler instances are used to declare the existence and behavior of slot roles. More...

Inheritance diagram for Revision\SlotRoleHandler:

Public Member Functions

 __construct ( $role, $contentModel, $layout=[])
 Stable to call. More...
 
 getDefaultModel (LinkTarget $page)
 Determines the content model to use per default for this slot on the given page. More...
 
 getNameMessageKey ()
 The message key for the translation of the slot name. More...
 
 getOutputLayoutHints ()
 Layout hints for use while laying out the combined output of all slots, typically by RevisionRenderer. More...
 
 getRole ()
 
 isAllowedModel ( $model, LinkTarget $page)
 Determines whether the given model can be used on this slot on the given page. More...
 
 supportsArticleCount ()
 Whether this slot should be considered when determining whether a page should be counted as an "article" in the site statistics. More...
 

Private Attributes

string $contentModel
 
array $layout
 
string $role
 

Detailed Description

SlotRoleHandler instances are used to declare the existence and behavior of slot roles.

Most importantly, they control which content model can be used for the slot, and how it is represented in the rendered version of page content.

Stable to extend

Since
1.33

Definition at line 36 of file SlotRoleHandler.php.

Constructor & Destructor Documentation

◆ __construct()

Revision\SlotRoleHandler::__construct (   $role,
  $contentModel,
  $layout = [] 
)

Stable to call.

Parameters
string$roleThe name of the slot role defined by this SlotRoleHandler. See SlotRoleRegistry::defineRole for more information.
string$contentModelThe default content model for this slot. As per the default implementation of isAllowedModel(), also the only content model allowed for the slot. Subclasses may however handle default and allowed models differently.
array$layoutLayout hints, for use by RevisionRenderer. See getOutputLayoutHints.

Definition at line 68 of file SlotRoleHandler.php.

References Revision\SlotRoleHandler\$contentModel, Revision\SlotRoleHandler\$layout, and Revision\SlotRoleHandler\$role.

Member Function Documentation

◆ getDefaultModel()

Revision\SlotRoleHandler::getDefaultModel ( LinkTarget  $page)

Determines the content model to use per default for this slot on the given page.

The default implementation always returns the content model provided to the constructor. Subclasses may base the choice on default model on the page title or namespace. The choice should not depend on external state, such as the page content.

Stable to override

Parameters
LinkTarget$page
Returns
string

Reimplemented in Revision\MainSlotRoleHandler.

Definition at line 129 of file SlotRoleHandler.php.

References Revision\SlotRoleHandler\$contentModel.

◆ getNameMessageKey()

Revision\SlotRoleHandler::getNameMessageKey ( )

The message key for the translation of the slot name.

Stable to override

Returns
string

Definition at line 112 of file SlotRoleHandler.php.

References Revision\SlotRoleHandler\$role.

◆ getOutputLayoutHints()

Revision\SlotRoleHandler::getOutputLayoutHints ( )

Layout hints for use while laying out the combined output of all slots, typically by RevisionRenderer.

The layout hints are given as an associative array. Well-known keys to use:

  • "display": how the output of this slot should be represented. Supported values:
    • "section": show as a top level section of the region.
    • "none": do not show at all Further values that may be supported in the future include "box" and "banner".
  • "region": in which region of the page the output should be placed. Supported values:
    • "center": the central content area. Further values that may be supported in the future include "top" and "bottom", "left" and "right", "header" and "footer".
  • "placement": placement relative to other content of the same area.
    • "append": place at the end, after any output processed previously. Further values that may be supported in the future include "prepend". A "weight" key may be introduced for more fine grained control.

Stable to override

Returns
array an associative array of hints

Reimplemented in Revision\FallbackSlotRoleHandler.

Definition at line 102 of file SlotRoleHandler.php.

References Revision\SlotRoleHandler\$layout.

◆ getRole()

Revision\SlotRoleHandler::getRole ( )
Returns
string The role this SlotRoleHandler applies to

Definition at line 77 of file SlotRoleHandler.php.

References Revision\SlotRoleHandler\$role.

◆ isAllowedModel()

Revision\SlotRoleHandler::isAllowedModel (   $model,
LinkTarget  $page 
)

Determines whether the given model can be used on this slot on the given page.

The default implementation checks whether $model is the content model provided to the constructor. Subclasses may allow other models and may base the decision on the page title or namespace. The choice should not depend on external state, such as the page content.

Stable to override

Note
This should be checked when creating new revisions. Existing revisions are not guaranteed to comply with the return value.
Parameters
string$model
LinkTarget$page
Returns
bool

Reimplemented in Revision\MainSlotRoleHandler, and Revision\FallbackSlotRoleHandler.

Definition at line 150 of file SlotRoleHandler.php.

◆ supportsArticleCount()

Revision\SlotRoleHandler::supportsArticleCount ( )

Whether this slot should be considered when determining whether a page should be counted as an "article" in the site statistics.

For a page to be considered countable, one of the page's slots must return true from this method, and Content::isCountable() must return true for the content of that slot.

The default implementation always returns false.

Stable to override

Returns
bool

Reimplemented in Revision\MainSlotRoleHandler.

Definition at line 167 of file SlotRoleHandler.php.

Member Data Documentation

◆ $contentModel

string Revision\SlotRoleHandler::$contentModel
private

◆ $layout

array Revision\SlotRoleHandler::$layout
private
Initial value:
= [
'display' => 'section',
'region' => 'center',
'placement' => 'append'
]
See also
getOutputLayoutHints

Definition at line 47 of file SlotRoleHandler.php.

Referenced by Revision\SlotRoleHandler\__construct(), and Revision\SlotRoleHandler\getOutputLayoutHints().

◆ $role


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