MediaWiki  1.23.12
CologneBlue.php
Go to the documentation of this file.
1 <?php
25 if ( !defined( 'MEDIAWIKI' ) ) {
26  die( -1 );
27 }
28 
34  var $skinname = 'cologneblue', $stylename = 'cologneblue',
35  $template = 'CologneBlueTemplate';
36  var $useHeadElement = true;
37 
42  parent::setupSkinUserCss( $out );
43  $out->addModuleStyles( 'mediawiki.legacy.oldshared' );
44  $out->addModuleStyles( 'skins.cologneblue' );
45  }
46 
51  function formatLanguageName( $name ) {
52  return $name;
53  }
54 }
55 
57  function execute() {
58  // Suppress warnings to prevent notices about missing indexes in $this->data
60  $this->html( 'headelement' );
61  echo $this->beforeContent();
62  $this->html( 'bodytext' );
63  echo "\n";
64  echo $this->afterContent();
65  $this->html( 'dataAfterContent' );
66  $this->printTrail();
67  echo "\n</body></html>";
69  }
70 
75  function variantLinks() {
76  $s = array();
77 
78  $variants = $this->data['content_navigation']['variants'];
79 
80  foreach ( $variants as $key => $link ) {
81  $s[] = $this->makeListItem( $key, $link, array( 'tag' => 'span' ) );
82  }
83 
84  return $this->getSkin()->getLanguage()->pipeList( $s );
85  }
86 
87  function otherLanguages() {
88  global $wgHideInterlanguageLinks;
89  if ( $wgHideInterlanguageLinks ) {
90  return "";
91  }
92 
93  $html = '';
94 
95  // We override SkinTemplate->formatLanguageName() in SkinCologneBlue
96  // not to capitalize the language names.
97  $language_urls = $this->data['language_urls'];
98  if ( !empty( $language_urls ) ) {
99  $s = array();
100  foreach ( $language_urls as $key => $data ) {
101  $s[] = $this->makeListItem( $key, $data, array( 'tag' => 'span' ) );
102  }
103 
104  $html = wfMessage( 'otherlanguages' )->text()
105  . wfMessage( 'colon-separator' )->text()
106  . $this->getSkin()->getLanguage()->pipeList( $s );
107  }
108 
109  $html .= $this->renderAfterPortlet( 'lang' );
110 
111  return $html;
112  }
113 
117  protected function renderAfterPortlet( $name ) {
118  $content = '';
119  wfRunHooks( 'BaseTemplateAfterPortlet', array( $this, $name, &$content ) );
120 
121  $html = $content !== '' ? "<div class='after-portlet after-portlet-$name'>$content</div>" : '';
122 
123  return $html;
124  }
125 
126  function pageTitleLinks() {
127  $s = array();
128  $footlinks = $this->getFooterLinks();
129 
130  foreach ( $footlinks['places'] as $item ) {
131  $s[] = $this->data[$item];
132  }
133 
134  return $this->getSkin()->getLanguage()->pipeList( $s );
135  }
136 
146  function processBottomLink( $key, $navlink, $message = null ) {
147  if ( !$navlink ) {
148  // Empty navlinks might be passed.
149  return null;
150  }
151 
152  if ( $message ) {
153  $navlink['text'] = wfMessage( $message )->escaped();
154  }
155 
156  return $this->makeListItem( $key, $this->processNavlinkForDocument( $navlink ), array( 'tag' => 'span' ) );
157  }
158 
159  function bottomLinks() {
160  $toolbox = $this->getToolbox();
161  $content_nav = $this->data['content_navigation'];
162 
163  $lines = array();
164 
165  if ( $this->getSkin()->getOutput()->isArticleRelated() ) {
166  // First row. Regular actions.
167  $element = array();
168 
169  $editLinkMessage = $this->getSkin()->getTitle()->exists() ? 'editthispage' : 'create-this-page';
170  $element[] = $this->processBottomLink( 'edit', $content_nav['views']['edit'], $editLinkMessage );
171  $element[] = $this->processBottomLink( 'viewsource', $content_nav['views']['viewsource'], 'viewsource' );
172 
173  $element[] = $this->processBottomLink( 'watch', $content_nav['actions']['watch'], 'watchthispage' );
174  $element[] = $this->processBottomLink( 'unwatch', $content_nav['actions']['unwatch'], 'unwatchthispage' );
175 
176  $element[] = $this->talkLink();
177 
178  $element[] = $this->processBottomLink( 'history', $content_nav['views']['history'], 'history' );
179  $element[] = $this->processBottomLink( 'info', $toolbox['info'] );
180  $element[] = $this->processBottomLink( 'whatlinkshere', $toolbox['whatlinkshere'] );
181  $element[] = $this->processBottomLink( 'recentchangeslinked', $toolbox['recentchangeslinked'] );
182 
183  $element[] = $this->processBottomLink( 'contributions', $toolbox['contributions'] );
184  $element[] = $this->processBottomLink( 'emailuser', $toolbox['emailuser'] );
185 
186  $lines[] = $this->getSkin()->getLanguage()->pipeList( array_filter( $element ) );
187 
188  // Second row. Privileged actions.
189  $element = array();
190 
191  $element[] = $this->processBottomLink( 'delete', $content_nav['actions']['delete'], 'deletethispage' );
192  $element[] = $this->processBottomLink( 'undelete', $content_nav['actions']['undelete'], 'undeletethispage' );
193 
194  $element[] = $this->processBottomLink( 'protect', $content_nav['actions']['protect'], 'protectthispage' );
195  $element[] = $this->processBottomLink( 'unprotect', $content_nav['actions']['unprotect'], 'unprotectthispage' );
196 
197  $element[] = $this->processBottomLink( 'move', $content_nav['actions']['move'], 'movethispage' );
198 
199  $lines[] = $this->getSkin()->getLanguage()->pipeList( array_filter( $element ) );
200 
201  // Third row. Language links.
202  $lines[] = $this->otherLanguages();
203  }
204 
205  return implode( array_filter( $lines ), "<br />\n" ) . "<br />\n";
206  }
207 
208  function talkLink() {
209  $title = $this->getSkin()->getTitle();
210 
211  if ( $title->getNamespace() == NS_SPECIAL ) {
212  // No discussion links for special pages
213  return "";
214  }
215 
216  $companionTitle = $title->isTalkPage() ? $title->getSubjectPage() : $title->getTalkPage();
217  $companionNamespace = $companionTitle->getNamespace();
218 
219  // TODO these messages are only be used by CologneBlue,
220  // kill and replace with something more sensibly named?
221  $nsToMessage = array(
222  NS_MAIN => 'articlepage',
223  NS_USER => 'userpage',
224  NS_PROJECT => 'projectpage',
225  NS_FILE => 'imagepage',
226  NS_MEDIAWIKI => 'mediawikipage',
227  NS_TEMPLATE => 'templatepage',
228  NS_HELP => 'viewhelppage',
229  NS_CATEGORY => 'categorypage',
230  NS_FILE => 'imagepage',
231  );
232 
233  // Find out the message to use for link text. Use either the array above or,
234  // for non-talk pages, a generic "discuss this" message.
235  // Default is the same as for main namespace.
236  if ( isset( $nsToMessage[$companionNamespace] ) ) {
237  $message = $nsToMessage[$companionNamespace];
238  } else {
239  $message = $companionTitle->isTalkPage() ? 'talkpage' : 'articlepage';
240  }
241 
242  // Obviously this can't be reasonable and just return the key for talk namespace, only for content ones.
243  // Thus we have to mangle it in exactly the same way SkinTemplate does. (bug 40805)
244  $key = $companionTitle->getNamespaceKey( '' );
245  if ( $companionTitle->isTalkPage() ) {
246  $key = ( $key == 'main' ? 'talk' : $key . "_talk" );
247  }
248 
249  // Use the regular navigational link, but replace its text. Everything else stays unmodified.
250  $namespacesLinks = $this->data['content_navigation']['namespaces'];
251  return $this->processBottomLink( $message, $namespacesLinks[$key], $message );
252  }
253 
263  function processNavlinkForDocument( $navlink, $idPrefix = 'cb-' ) {
264  if ( $navlink['id'] ) {
265  $navlink['single-id'] = $navlink['id']; // to allow for tooltip generation
266  $navlink['tooltiponly'] = true; // but no accesskeys
267 
268  // mangle or remove the id
269  if ( $idPrefix === false ) {
270  unset( $navlink['id'] );
271  } else {
272  $navlink['id'] = $idPrefix . $navlink['id'];
273  }
274  }
275 
276  return $navlink;
277  }
278 
282  function beforeContent() {
283  ob_start();
284 ?>
285 <div id="content">
286  <div id="topbar">
287  <p id="sitetitle" role="banner">
288  <a href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>">
289  <?php echo wfMessage( 'sitetitle' )->escaped() ?>
290  </a>
291  </p>
292  <p id="sitesub"><?php echo wfMessage( 'sitesubtitle' )->escaped() ?></p>
293  <div id="linkcollection" role="navigation">
294  <div id="langlinks"><?php echo str_replace( '<br />', '', $this->otherLanguages() ) ?></div>
295  <?php echo $this->getSkin()->getCategories() ?>
296  <div id="titlelinks"><?php echo $this->pageTitleLinks() ?></div>
297  <?php if ( $this->data['newtalk'] ) { ?>
298  <div class="usermessage"><strong><?php echo $this->data['newtalk'] ?></strong></div>
299  <?php } ?>
300  </div>
301  </div>
302  <div id="article" class="mw-body" role="main">
303  <?php if ( $this->getSkin()->getSiteNotice() ) { ?>
304  <div id="siteNotice"><?php echo $this->getSkin()->getSiteNotice() ?></div>
305  <?php } ?>
306  <h1 id="firstHeading" lang="<?php
307  $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
308  $this->text( 'pageLanguage' );
309  ?>"><span dir="auto"><?php echo $this->data['title'] ?></span></h1>
310  <?php if ( $this->translator->translate( 'tagline' ) ) { ?>
311  <p class="tagline"><?php echo htmlspecialchars( $this->translator->translate( 'tagline' ) ) ?></p>
312  <?php } ?>
313  <?php if ( $this->getSkin()->getOutput()->getSubtitle() ) { ?>
314  <p class="subtitle"><?php echo $this->getSkin()->getOutput()->getSubtitle() ?></p>
315  <?php } ?>
316  <?php if ( $this->getSkin()->subPageSubtitle() ) { ?>
317  <p class="subpages"><?php echo $this->getSkin()->subPageSubtitle() ?></p>
318  <?php } ?>
319 <?php
320  $s = ob_get_contents();
321  ob_end_clean();
322 
323  return $s;
324  }
325 
329  function afterContent() {
330  ob_start();
331 ?>
332  </div>
333  <div id="footer">
334  <div id="footer-navigation" role="navigation">
335 <?php
336  // Page-related links
337  echo $this->bottomLinks();
338  echo "\n<br />";
339 
340  // Footer and second searchbox
341  echo $this->getSkin()->getLanguage()->pipeList( array(
342  $this->getSkin()->mainPageLink(),
343  $this->getSkin()->aboutLink(),
344  $this->searchForm( 'footer' )
345  ) );
346 ?>
347  </div>
348  <div id="footer-info" role="contentinfo">
349 <?php
350  // Standard footer info
351  $footlinks = $this->getFooterLinks();
352  if ( $footlinks['info'] ) {
353  foreach ( $footlinks['info'] as $item ) {
354  echo $this->data[$item] . ' ';
355  }
356  }
357 ?>
358  </div>
359  </div>
360 </div>
361 <div id="mw-navigation">
362  <h2><?php echo wfMessage( 'navigation-heading' )->escaped() ?></h2>
363  <div id="toplinks" role="navigation">
364  <p id="syslinks"><?php echo $this->sysLinks() ?></p>
365  <p id="variantlinks"><?php echo $this->variantLinks() ?></p>
366  </div>
367  <?php echo $this->quickBar() ?>
368 </div>
369 <?php
370  $s = ob_get_contents();
371  ob_end_clean();
372 
373  return $s;
374  }
375 
379  function sysLinks() {
380  $s = array(
381  $this->getSkin()->mainPageLink(),
383  Title::newFromText( wfMessage( 'aboutpage' )->inContentLanguage()->text() ),
384  wfMessage( 'about' )->text()
385  ),
387  Skin::makeInternalOrExternalUrl( wfMessage( 'helppage' )->inContentLanguage()->text() ),
388  wfMessage( 'help' )->text(),
389  false
390  ),
392  Title::newFromText( wfMessage( 'faqpage' )->inContentLanguage()->text() ),
393  wfMessage( 'faq' )->text()
394  ),
395  );
396 
397  $personalUrls = $this->getPersonalTools();
398  foreach ( array( 'logout', 'createaccount', 'login' ) as $key ) {
399  if ( $personalUrls[$key] ) {
400  $s[] = $this->makeListItem( $key, $personalUrls[$key], array( 'tag' => 'span' ) );
401  }
402  }
403 
404  return $this->getSkin()->getLanguage()->pipeList( $s );
405  }
406 
413  function sidebarAdditions( $bar ) {
414  // "This page" and "Edit" menus
415  // We need to do some massaging here... we reuse all of the items, except for $...['views']['view'],
416  // as $...['namespaces']['main'] and $...['namespaces']['talk'] together serve the same purpose.
417  // We also don't use $...['variants'], these are displayed in the top menu.
418  $content_navigation = $this->data['content_navigation'];
419  $qbpageoptions = array_merge(
420  $content_navigation['namespaces'],
421  array(
422  'history' => $content_navigation['views']['history'],
423  'watch' => $content_navigation['actions']['watch'],
424  'unwatch' => $content_navigation['actions']['unwatch'],
425  )
426  );
427  $content_navigation['actions']['watch'] = null;
428  $content_navigation['actions']['unwatch'] = null;
429  $qbedit = array_merge(
430  array(
431  'edit' => $content_navigation['views']['edit'],
432  'addsection' => $content_navigation['views']['addsection'],
433  ),
434  $content_navigation['actions']
435  );
436 
437  // Personal tools ("My pages")
438  $qbmyoptions = $this->getPersonalTools();
439  foreach ( array( 'logout', 'createaccount', 'login', ) as $key ) {
440  $qbmyoptions[$key] = null;
441  }
442 
443  // Use the closest reasonable name
444  $bar['cactions'] = $qbedit;
445  $bar['pageoptions'] = $qbpageoptions; // this is a non-standard portlet name, but nothing fits
446  $bar['personal'] = $qbmyoptions;
447 
448  return $bar;
449  }
450 
457  function quickBar() {
458  // Massage the sidebar. We want to:
459  // * place SEARCH at the beginning
460  // * add new portlets before TOOLBOX (or at the end, if it's missing)
461  // * remove LANGUAGES (langlinks are displayed elsewhere)
462  $orig_bar = $this->data['sidebar'];
463  $bar = array();
464  $hasToolbox = false;
465 
466  // Always display search first
467  $bar['SEARCH'] = true;
468  // Copy everything except for langlinks, inserting new items before toolbox
469  foreach ( $orig_bar as $heading => $data ) {
470  if ( $heading == 'TOOLBOX' ) {
471  // Insert the stuff
472  $bar = $this->sidebarAdditions( $bar );
473  $hasToolbox = true;
474  }
475 
476  if ( $heading != 'LANGUAGES' ) {
477  $bar[$heading] = $data;
478  }
479  }
480  // If toolbox is missing, add our items at the end
481  if ( !$hasToolbox ) {
482  $bar = $this->sidebarAdditions( $bar );
483  }
484 
485  // Fill out special sidebar items with content
486  $orig_bar = $bar;
487  $bar = array();
488  foreach ( $orig_bar as $heading => $data ) {
489  if ( $heading == 'SEARCH' ) {
490  $bar['search'] = $this->searchForm( 'sidebar' );
491  } elseif ( $heading == 'TOOLBOX' ) {
492  $bar['tb'] = $this->getToolbox();
493  } else {
494  $bar[$heading] = $data;
495  }
496  }
497 
498  // Output the sidebar
499  // CologneBlue uses custom messages for some portlets, but we should keep the ids for consistency
500  $idToMessage = array(
501  'search' => 'qbfind',
502  'navigation' => 'qbbrowse',
503  'tb' => 'toolbox',
504  'cactions' => 'qbedit',
505  'personal' => 'qbmyoptions',
506  'pageoptions' => 'qbpageoptions',
507  );
508 
509  $s = "<div id='quickbar'>\n";
510 
511  foreach ( $bar as $heading => $data ) {
512  $portletId = Sanitizer::escapeId( "p-$heading" );
513  $headingMsg = wfMessage( $idToMessage[$heading] ? $idToMessage[$heading] : $heading );
514  $headingHTML = "<h3>" . ( $headingMsg->exists() ? $headingMsg->escaped() : htmlspecialchars( $heading ) ) . "</h3>";
515  $listHTML = "";
516 
517  if ( is_array( $data ) ) {
518  // $data is an array of links
519  foreach ( $data as $key => $link ) {
520  // Can be empty due to how the sidebar additions are done
521  if ( $link ) {
522  $listHTML .= $this->makeListItem( $key, $link );
523  }
524  }
525  if ( $listHTML ) {
526  $listHTML = "<ul>$listHTML</ul>";
527  }
528  } else {
529  // $data is a HTML <ul>-list string
530  $listHTML = $data;
531  }
532 
533  if ( $listHTML ) {
534  $role = ( $heading == 'search' ) ? 'search' : 'navigation';
535  $s .= "<div class=\"portlet\" id=\"$portletId\" role=\"$role\">\n$headingHTML\n$listHTML\n</div>\n";
536  }
537 
538  $s .= $this->renderAfterPortlet( $heading );
539  }
540 
541  $s .= "</div>\n";
542  return $s;
543  }
544 
549  function searchForm( $which ) {
550  global $wgUseTwoButtonsSearchForm;
551 
552  $search = $this->getSkin()->getRequest()->getText( 'search' );
553  $action = $this->data['searchaction'];
554  $s = "<form id=\"searchform-" . htmlspecialchars( $which ) . "\" method=\"get\" class=\"inline\" action=\"$action\">";
555  if ( $which == 'footer' ) {
556  $s .= wfMessage( 'qbfind' )->text() . ": ";
557  }
558 
559  $s .= $this->makeSearchInput( array( 'class' => 'mw-searchInput', 'type' => 'text', 'size' => '14' ) );
560  $s .= ( $which == 'footer' ? " " : "<br />" );
561  $s .= $this->makeSearchButton( 'go', array( 'class' => 'searchButton' ) );
562 
563  if ( $wgUseTwoButtonsSearchForm ) {
564  $s .= $this->makeSearchButton( 'fulltext', array( 'class' => 'searchButton' ) );
565  } else {
566  $s .= '<div><a href="' . $action . '" rel="search">' . wfMessage( 'powersearch-legend' )->escaped() . "</a></div>\n";
567  }
568 
569  $s .= '</form>';
570 
571  return $s;
572  }
573 }
BaseTemplate\getPersonalTools
getPersonalTools()
Create an array of personal tools items from the data in the quicktemplate stored by SkinTemplate.
Definition: SkinTemplate.php:1610
CologneBlueTemplate
Definition: CologneBlue.php:56
BaseTemplate\getFooterLinks
getFooterLinks( $option=null)
Returns an array of footerlinks trimmed down to only those footer links that are valid.
Definition: SkinTemplate.php:2009
SkinCologneBlue\$stylename
$stylename
Definition: CologneBlue.php:34
BaseTemplate\makeSearchInput
makeSearchInput( $attrs=array())
Definition: SkinTemplate.php:1946
Title\newFromText
static newFromText( $text, $defaultNamespace=NS_MAIN)
Create a new Title from text, such as what one would find in a link.
Definition: Title.php:189
NS_HELP
const NS_HELP
Definition: Defines.php:91
php
skin txt MediaWiki includes four core it has been set as the default in MediaWiki since the replacing Monobook it had been been the default skin since before being replaced by Vector largely rewritten in while keeping its appearance Several legacy skins were removed in the as the burden of supporting them became too heavy to bear Those in etc for skin dependent CSS etc for skin dependent JavaScript These can also be customised on a per user by etc This feature has led to a wide variety of user styles becoming that gallery is a good place to ending in php
Definition: skin.txt:62
BaseTemplate\makeListItem
makeListItem( $key, $item, $options=array())
Generates a list item for a navigation, portlet, portal, sidebar...
Definition: SkinTemplate.php:1905
$html
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
Definition: hooks.txt:1530
SkinCologneBlue\$template
$template
Definition: CologneBlue.php:35
CologneBlueTemplate\$s
if( $this->translator->translate( 'tagline')) if( $this->getSkin() ->getOutput() ->getSubtitle()) if( $this->getSkin() ->subPageSubtitle()) $s
Definition: CologneBlue.php:320
CologneBlueTemplate\bottomLinks
bottomLinks()
Definition: CologneBlue.php:159
CologneBlueTemplate\variantLinks
variantLinks()
Language/charset variant links for classic-style skins.
Definition: CologneBlue.php:75
CologneBlueTemplate\execute
execute()
Main function, used by classes that subclass QuickTemplate to show the actual HTML output.
Definition: CologneBlue.php:57
wfSuppressWarnings
wfSuppressWarnings( $end=false)
Reference-counted warning suppression.
Definition: GlobalFunctions.php:2434
NS_FILE
const NS_FILE
Definition: Defines.php:85
CologneBlueTemplate\searchForm
searchForm( $which)
Definition: CologneBlue.php:549
NS_TEMPLATE
const NS_TEMPLATE
Definition: Defines.php:89
CologneBlueTemplate\talkLink
talkLink()
Definition: CologneBlue.php:208
CologneBlueTemplate\quickBar
quickBar()
Compute the sidebar.
Definition: CologneBlue.php:457
CologneBlueTemplate\pageTitleLinks
pageTitleLinks()
Definition: CologneBlue.php:126
CologneBlueTemplate\processNavlinkForDocument
processNavlinkForDocument( $navlink, $idPrefix='cb-')
Takes a navigational link generated by SkinTemplate in whichever way and mangles attributes unsuitabl...
Definition: CologneBlue.php:263
$link
set to $title object and return false for a match for latest after cache objects are set use the ContentHandler facility to handle CSS and JavaScript for highlighting & $link
Definition: hooks.txt:2154
CologneBlueTemplate\sysLinks
sysLinks()
Definition: CologneBlue.php:379
CologneBlueTemplate\beforeContent
beforeContent()
Definition: CologneBlue.php:282
QuickTemplate\getSkin
getSkin()
Get the Skin object related to this object.
Definition: SkinTemplate.php:1488
Linker\linkKnown
static linkKnown( $target, $html=null, $customAttribs=array(), $query=array(), $options=array( 'known', 'noclasses'))
Identical to link(), except $options defaults to 'known'.
Definition: Linker.php:264
Linker\makeExternalLink
static makeExternalLink( $url, $text, $escape=true, $linktype='', $attribs=array(), $title=null)
Make an external link.
Definition: Linker.php:1034
CologneBlueTemplate\data
if( $this->data['newtalk']) if( $this->getSkin() ->getSiteNotice()) $this data['pageLanguage']
Definition: CologneBlue.php:307
NS_MAIN
const NS_MAIN
Definition: Defines.php:79
NS_SPECIAL
const NS_SPECIAL
Definition: Defines.php:68
$out
$out
Definition: UtfNormalGenerate.php:167
NS_PROJECT
const NS_PROJECT
Definition: Defines.php:83
wfRestoreWarnings
wfRestoreWarnings()
Restore error level to previous value.
Definition: GlobalFunctions.php:2464
wfMessage
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 after processing after in associative array form externallinks including delete and has completed for all link tables default is conds Array Extra conditions for the No matching items in log is displayed if loglist is empty msgKey Array If you want a nice box with a set this to the key of the message First element is the message additional optional elements are parameters for the key that are processed with wfMessage() -> params() ->parseAsBlock() - offset Set to overwrite offset parameter in $wgRequest set to '' to unset offset - wrap String Wrap the message in html(usually something like "&lt
BaseTemplate\printTrail
printTrail()
Output the basic end-page trail including bottomscripts, reporttime, and debug stuff.
Definition: SkinTemplate.php:2082
wfRunHooks
wfRunHooks( $event, array $args=array(), $deprecatedVersion=null)
Call hook functions defined in $wgHooks.
Definition: GlobalFunctions.php:4058
$lines
$lines
Definition: router.php:65
array
the array() calling protocol came about after MediaWiki 1.4rc1.
List of Api Query prop modules.
global
when a variable name is used in a it is silently declared as a new masking the global
Definition: design.txt:93
NS_CATEGORY
const NS_CATEGORY
Definition: Defines.php:93
OutputPage
This class should be covered by a general architecture document which does not exist as of January 20...
Definition: OutputPage.php:38
Sanitizer\escapeId
static escapeId( $id, $options=array())
Given a value, escape it so that it can be used in an id attribute and return it.
Definition: Sanitizer.php:1099
SkinCologneBlue\$useHeadElement
$useHeadElement
Definition: CologneBlue.php:36
QuickTemplate\text
text( $str)
Definition: SkinTemplate.php:1429
$title
presenting them properly to the user as errors is done by the caller $title
Definition: hooks.txt:1324
$name
Allows to change the fields on the form that will be generated $name
Definition: hooks.txt:336
BaseTemplate\makeSearchButton
makeSearchButton( $mode, $attrs=array())
Definition: SkinTemplate.php:1957
SkinCologneBlue\setupSkinUserCss
setupSkinUserCss(OutputPage $out)
Definition: CologneBlue.php:41
CologneBlueTemplate\processBottomLink
processBottomLink( $key, $navlink, $message=null)
Used in bottomLinks() to eliminate repetitive code.
Definition: CologneBlue.php:146
BaseTemplate\getToolbox
getToolbox()
Create an array of common toolbox items from the data in the quicktemplate stored by SkinTemplate.
Definition: SkinTemplate.php:1543
QuickTemplate\html
html( $str)
Definition: SkinTemplate.php:1436
SkinCologneBlue
Definition: CologneBlue.php:33
SkinCologneBlue\$skinname
$skinname
Definition: CologneBlue.php:34
as
This document is intended to provide useful advice for parties seeking to redistribute MediaWiki to end users It s targeted particularly at maintainers for Linux since it s been observed that distribution packages of MediaWiki often break We ve consistently had to recommend that users seeking support use official tarballs instead of their distribution s and this often solves whatever problem the user is having It would be nice if this could such as
Definition: distributors.txt:9
CologneBlueTemplate\otherLanguages
otherLanguages()
Definition: CologneBlue.php:87
NS_USER
const NS_USER
Definition: Defines.php:81
SkinCologneBlue\formatLanguageName
formatLanguageName( $name)
Override langlink formatting behavior not to uppercase the language names.
Definition: CologneBlue.php:51
CologneBlueTemplate\sidebarAdditions
sidebarAdditions( $bar)
Adds CologneBlue-specific items to the sidebar: qbedit, qbpageoptions and qbmyoptions menus.
Definition: CologneBlue.php:413
CologneBlueTemplate\afterContent
afterContent()
Definition: CologneBlue.php:329
NS_MEDIAWIKI
const NS_MEDIAWIKI
Definition: Defines.php:87
CologneBlueTemplate\$s
return $s
Definition: CologneBlue.php:323
href
shown</td >< td > a href
Definition: All_system_messages.txt:2674
BaseTemplate
New base template for a skin's template extended from QuickTemplate this class features helper method...
Definition: SkinTemplate.php:1512
SkinTemplate
Template-filler skin base class Formerly generic PHPTal (http://phptal.sourceforge....
Definition: SkinTemplate.php:70
Skin\makeInternalOrExternalUrl
static makeInternalOrExternalUrl( $name)
If url string starts with http, consider as external URL, else internal.
Definition: Skin.php:1158
CologneBlueTemplate\renderAfterPortlet
renderAfterPortlet( $name)
Definition: CologneBlue.php:117