35 $this->data[
'namespace_urls'] = $this->data[
'content_navigation'][
'namespaces'];
36 $this->data[
'view_urls'] = $this->data[
'content_navigation'][
'views'];
37 $this->data[
'action_urls'] = $this->data[
'content_navigation'][
'actions'];
38 $this->data[
'variant_urls'] = $this->data[
'content_navigation'][
'variants'];
41 if ( $this->config->get(
'VectorUseIconWatch' ) ) {
42 $mode = $this->
getSkin()->getUser()->isWatched( $this->
getSkin()->getRelevantTitle() )
46 if (
isset( $this->data[
'action_urls'][$mode] ) ) {
47 $this->data[
'view_urls'][$mode] = $this->data[
'action_urls'][$mode];
48 unset( $this->data[
'action_urls'][$mode] );
59 'html-headelement' => $this->
get(
'headelement',
'' ),
60 'html-sitenotice' => $this->
get(
'sitenotice',
null ),
62 'page-langcode' => $this->
getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode(),
63 'page-isarticle' => (
bool)$this->data[
'isarticle'],
67 'html-title' => $this->
get(
'title',
'' ),
69 'html-prebodyhtml' => $this->
get(
'prebodyhtml',
'' ),
70 'msg-tagline' => $this->
getMsg(
'tagline' )->text(),
72 'html-userlangattributes' => $this->
get(
'userlangattributes',
'' ),
74 'html-subtitle' => $this->
get(
'subtitle',
'' ),
78 'html-undelete' => $this->
get(
'undelete',
null ) ?:
null,
81 'html-newtalk' => $this->
get(
'newtalk',
'' ) ?:
null,
83 'msg-jumptonavigation' => $this->
getMsg(
'vector-jumptonavigation' )->text(),
84 'msg-jumptosearch' => $this->
getMsg(
'vector-jumptosearch' )->text(),
87 'html-bodycontent' => $this->
get(
'bodycontent' ),
89 'html-printfooter' => $this->
get(
'printfooter',
null ),
90 'html-catlinks' => $this->
get(
'catlinks',
'' ),
91 'html-dataAfterContent' => $this->
get(
'dataAfterContent',
'' ),
93 'html-debuglog' => $this->
get(
'debughtml',
'' ),
95 'html-printtail' => $this->
getTrail(),
101 <
div id=
"mw-navigation">
102 <h2><?php $this->
msg(
'navigation-heading' ) ?></h2>
105 <
div id=
"left-navigation">
108 <
div id=
"right-navigation">
113 <
div id=
"p-logo" role=
"banner"><a
class=
"mw-wiki-logo" href=
"<?php
114 echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] )
121 <?php Hooks::run(
'VectorBeforeFooter' ); ?>
122 <
div id=
"footer" role=
"contentinfo"<?php $this->
html(
'userlangattributes' ) ?>>
126 <ul
id=
"footer-<?php echo $category ?>">
128 foreach ( $links as
$link ) {
130 <li
id=
"footer-<?php echo $category ?>-<?php echo $link ?>"><?php $this->
html( $link ) ?></li>
139 if ( count( $footericons ) > 0 ) {
141 <ul
id=
"footer-icons" class=
"noprint">
143 foreach ( $footericons as $blockName => $footerIcons ) {
145 <li
id=
"footer-<?php echo htmlspecialchars( $blockName ); ?>ico">
147 foreach ( $footerIcons as $icon ) {
148 echo $this->
getSkin()->makeFooterIcon( $icon );
167 echo $templates->processTemplate(
'index',
$params );
177 if ( !
isset( $portals[
'TOOLBOX'] ) ) {
178 $portals[
'TOOLBOX'] =
true;
180 if ( !
isset( $portals[
'LANGUAGES'] ) ) {
181 $portals[
'LANGUAGES'] =
true;
184 foreach ( $portals as $name =>
$content ) {
197 Hooks::run(
'VectorAfterToolbox' );
200 if ( $this->data[
'language_urls'] !==
false ) {
201 $this->
renderPortal(
'lang', $this->data[
'language_urls'],
'otherlanguages' );
218 if ( $msg ===
null ) {
221 $msgObj = $this->
getMsg( $msg );
222 $labelId = Sanitizer::escapeIdForAttribute(
"p-$name-label" );
224 <
div class=
"portal" role=
"navigation" id=
"<?php
225 echo htmlspecialchars( Sanitizer::escapeIdForAttribute( "p-$name
" ) )
228 ?> aria-labelledby=
"<?php echo htmlspecialchars( $labelId ) ?>">
229 <h3<?php $this->
html(
'userlangattributes' ) ?>
id=
"<?php echo htmlspecialchars( $labelId )
239 foreach (
$content as $key => $val ) {
242 if ( $hook !==
null ) {
245 Hooks::run( $hook, [ &$skin,
true ] );
270 foreach ( $elements as $name => $element ) {
271 switch ( $element ) {
274 <
div id=
"p-namespaces" role=
"navigation" class=
"vectorTabs<?php
275 if ( count( $this->data['namespace_urls'] ) == 0 ) {
276 echo ' emptyPortlet';
278 ?>" aria-labelledby=
"p-namespaces-label">
279 <h3
id=
"p-namespaces-label"><?php $this->
msg(
'namespaces' ) ?></h3>
280 <ul<?php $this->
html(
'userlangattributes' ) ?>>
282 foreach ( $this->data[
'namespace_urls'] as $key => $item ) {
284 'vector-wrap' =>
true,
294 <
div id=
"p-variants" role=
"navigation" class=
"vectorMenu<?php
295 if ( count( $this->data['variant_urls'] ) == 0 ) {
296 echo ' emptyPortlet';
298 ?>" aria-labelledby=
"p-variants-label">
301 $variantLabel = $this->
getMsg(
'variants' )->text();
302 foreach ( $this->data[
'variant_urls'] as $item ) {
303 if (
isset( $item[
'class'] ) &&
stripos( $item[
'class'],
'selected' ) !==
false ) {
304 $variantLabel = $item[
'text'];
309 <input
type=
"checkbox" class=
"vectorMenuCheckbox" aria-labelledby=
"p-variants-label" />
310 <h3
id=
"p-variants-label">
315 foreach ( $this->data[
'variant_urls'] as $key => $item ) {
325 <
div id=
"p-views" role=
"navigation" class=
"vectorTabs<?php
326 if ( count( $this->data['view_urls'] ) == 0 ) {
327 echo ' emptyPortlet';
329 ?>" aria-labelledby=
"p-views-label">
330 <h3
id=
"p-views-label"><?php $this->
msg(
'views' ) ?></h3>
331 <ul<?php $this->
html(
'userlangattributes' ) ?>>
333 foreach ( $this->data[
'view_urls'] as $key => $item ) {
335 'vector-wrap' =>
true,
336 'vector-collapsible' =>
true,
346 <
div id=
"p-cactions" role=
"navigation" class=
"vectorMenu<?php
347 if ( count( $this->data['action_urls'] ) == 0 ) {
348 echo ' emptyPortlet';
350 ?>" aria-labelledby=
"p-cactions-label">
351 <input
type=
"checkbox" class=
"vectorMenuCheckbox" aria-labelledby=
"p-cactions-label" />
352 <h3
id=
"p-cactions-label"><span><?php
353 $this->
msg(
'vector-more-actions' )
355 <ul
class=
"menu"<?php $this->
html(
'userlangattributes' ) ?>>
357 foreach ( $this->data[
'action_urls'] as $key => $item ) {
367 <
div id=
"p-personal" role=
"navigation"<?php
368 if ( count( $this->data[
'personal_urls'] ) == 0 ) {
369 echo
' class="emptyPortlet"';
371 ?> aria-labelledby=
"p-personal-label">
372 <h3
id=
"p-personal-label"><?php $this->
msg(
'personaltools' ) ?></h3>
373 <ul<?php $this->
html(
'userlangattributes' ) ?>>
377 if ( !$this->
getSkin()->getUser()->isLoggedIn() &&
382 [
'id' =>
'pt-anonuserpage' ],
391 $langSelector = $this->
makeListItem(
'uls', $personalTools[
'uls' ] );
392 unset( $personalTools[
'uls' ] );
397 foreach ( $personalTools as $key => $item ) {
407 <
div id=
"p-search" role=
"search">
408 <h3<?php $this->
html(
'userlangattributes' ) ?>>
409 <label
for=
"searchInput"><?php $this->
msg(
'search' ) ?></label>
411 <
form action=
"<?php $this->text( 'wgScript' ) ?>" id=
"searchform">
412 <
div<?php echo $this->config->get(
'VectorUseSimpleSearch' ) ?
' id="simpleSearch"' :
'' ?>>
415 echo Html::hidden(
'title', $this->
get(
'searchtitle' ) );
430 [
'id' =>
'mw-searchButton',
'class' =>
'searchButton mw-fallbackSearchButton' ]
434 [
'id' =>
'searchButton',
'class' =>
'searchButton' ]
454 $html = Html::rawElement(
'span', [],
$html );
465 $this->config->get(
'VectorUseIconWatch' )
466 && ( $key ===
'watch' || $key ===
'unwatch' )
468 $item[
'class'] =
rtrim(
'icon ' . $item[
'class'],
' ' );
469 $item[
'primary'] =
true;
475 $item[
'class'] =
rtrim(
'collapsible ' . $item[
'class'],
' ' );
479 unset( $item[
'redundant'] );
481 return parent::makeListItem( $key, $item,
$options );
This list may contain false positives That usually means there is additional text with links below the first Each row contains links to the first and second as well as the first line of the second redirect text
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
New base template for a skin's template extended from QuickTemplate this class features helper method...
getFooterLinks( $option=null)
Returns an array of footerlinks trimmed down to only those footer links that are valid.
makeSearchButton( $mode, $attrs=[])
renderAfterPortlet( $name)
getToolbox()
Create an array of common toolbox items from the data in the quicktemplate stored by SkinTemplate.
getTrail()
Get the basic end-page trail including bottomscripts, reporttime, and debug stuff.
getPersonalTools()
Create an array of personal tools items from the data in the quicktemplate stored by SkinTemplate.
getFooterIcons( $option=null)
Returns an array of footer icons filtered down by options relevant to how the skin wishes to display ...
getMsg( $name)
Get a Message object with its context set.
getIndicators()
Get the suggested HTML for page status indicators: icons (or short text snippets) usually displayed i...
makeSearchInput( $attrs=[])
static tooltip( $name, $options=null)
Returns raw bits of HTML, use titleAttrib()
static tooltipAndAccesskeyAttribs( $name, array $msgParams=[], $options=null)
Returns the attributes for the tooltip and access key.
getSkin()
Get the Skin object related to this object.
static groupHasPermission( $group, $role)
Check, if the given group has the given permission.
QuickTemplate subclass for Vector.
makeLink( $key, $item, $options=[])
@inheritDoc
makeListItem( $key, $item, $options=[])
@inheritDoc
renderNavigation(array $elements)
Render one or more navigations elements by name, automatically reversed by css when UI is in RTL mode...
renderPortals(array $portals)
Render a series of portals.
execute()
Outputs the entire contents of the HTML page.
renderPortal( $name, $content, $msg=null, $hook=null)
This code would result in ircNotify being run twice when an article is and once for brion Hooks can return three possible true was required This is the default since MediaWiki *some string
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped & $options
null means default in associative array form
this hook is for auditing only or null if authentication failed before getting that far or null if we can t even determine that When $user is not null
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped noclasses just before the function returns a value If you return an< a > element with HTML attributes $attribs and contents $html will be returned If you return $ret will be returned and may include noclasses & $html
usually copyright or history_copyright This message must be in HTML not wikitext & $link
Allows to change the fields on the form that will be generated $name
The wiki should then use memcached to cache various data To use multiple just add more items to the array To increase the weight of a make its entry a array("192.168.0.1:11211", 2))
This document describes the state of Postgres support in and is fairly well maintained The main code is very well while extensions are very hit and miss it is probably the most supported database after MySQL Much of the work in making MediaWiki database agnostic came about through the work of creating Postgres but without copying over all the usage comments General notes on the but these can almost always be programmed around *Although Postgres has a true BOOLEAN type