X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dmembres/cotisations/rappels.php?a=blobdiff_plain;f=includes%2FSkinTemplate.php;h=867d8ec605a4b36bca0dfbd56da3490db2efa86f;hb=c4b064f83415ab5b4a5f9aedad20ffd16e599253;hp=32c25b8771e6ffb44badd55b1150291f3cc64274;hpb=686be60df6498d44cf52f2e141d624793b8511f4;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SkinTemplate.php b/includes/SkinTemplate.php index 32c25b8771..867d8ec605 100644 --- a/includes/SkinTemplate.php +++ b/includes/SkinTemplate.php @@ -74,12 +74,6 @@ class SkinTemplate extends Skin { */ public $skinname = 'monobook'; - /** - * @var string Stylesheets set to use. Subdirectory in skins/ where various - * stylesheets are located. Child classes should override the default. - */ - public $stylename = 'monobook'; - /** * @var string For QuickTemplate, the name of the subclass which will * actually fill the template. Child classes should override the default. @@ -111,14 +105,13 @@ class SkinTemplate extends Skin { * @private */ function setupTemplate( $classname, $repository = false, $cache_dir = false ) { - return new $classname(); + return new $classname( $this->getConfig() ); } /** * Generates array of language links for the current page * * @return array - * @public */ public function getLanguages() { global $wgHideInterlanguageLinks; @@ -140,8 +133,16 @@ class SkinTemplate extends Skin { $ilLangName = Language::fetchLanguageName( $ilInterwikiCode ); if ( strval( $ilLangName ) === '' ) { - $ilLangName = $languageLinkText; + $ilDisplayTextMsg = wfMessage( "interlanguage-link-$ilInterwikiCode" ); + if ( !$ilDisplayTextMsg->isDisabled() ) { + // Use custom MW message for the display text + $ilLangName = $ilDisplayTextMsg->text(); + } else { + // Last resort: fallback to the language link target + $ilLangName = $languageLinkText; + } } else { + // Use the language autonym as display text $ilLangName = $this->formatLanguageName( $ilLangName ); } @@ -153,7 +154,29 @@ class SkinTemplate extends Skin { ); $languageLinkTitleText = $languageLinkTitle->getText(); - if ( $languageLinkTitleText === '' ) { + if ( $ilLangLocalName === '' ) { + $ilFriendlySiteName = wfMessage( "interlanguage-link-sitename-$ilInterwikiCode" ); + if ( !$ilFriendlySiteName->isDisabled() ) { + if ( $languageLinkTitleText === '' ) { + $ilTitle = wfMessage( + 'interlanguage-link-title-nonlangonly', + $ilFriendlySiteName->text() + )->text(); + } else { + $ilTitle = wfMessage( + 'interlanguage-link-title-nonlang', + $languageLinkTitleText, + $ilFriendlySiteName->text() + )->text(); + } + } else { + // we have nothing friendly to put in the title, so fall back to + // displaying the interlanguage link itself in the title text + // (similar to what is done in page content) + $ilTitle = $languageLinkTitle->getInterwiki() . + ":$languageLinkTitleText"; + } + } elseif ( $languageLinkTitleText === '' ) { $ilTitle = wfMessage( 'interlanguage-link-title-langonly', $ilLangLocalName @@ -271,8 +294,7 @@ class SkinTemplate extends Skin { * @return QuickTemplate The template to be executed by outputPage */ protected function prepareQuickTemplate() { - global $wgContLang, $wgScript, $wgStylePath, - $wgMimeType, $wgJsMimeType, $wgXhtmlNamespaces, $wgHtml5Version, + global $wgContLang, $wgScript, $wgStylePath, $wgMimeType, $wgJsMimeType, $wgDisableCounters, $wgSitename, $wgLogo, $wgMaxCredits, $wgShowCreditsIfMax, $wgPageShowWatchingUsers, $wgArticlePath, $wgScriptPath, $wgServer; @@ -336,13 +358,6 @@ class SkinTemplate extends Skin { $tpl->set( 'handheld', $request->getBool( 'handheld' ) ); $tpl->setRef( 'loggedin', $this->loggedin ); $tpl->set( 'notspecialpage', !$title->isSpecialPage() ); - /* XXX currently unused, might get useful later - $tpl->set( 'editable', ( !$title->isSpecialPage() ) ); - $tpl->set( 'exists', $title->getArticleID() != 0 ); - $tpl->set( 'watch', $user->isWatched( $title ) ? 'unwatch' : 'watch' ); - $tpl->set( 'protect', count( $title->isProtected() ) ? 'unprotect' : 'protect' ); - $tpl->set( 'helppage', $this->msg( 'helppage' )->text() ); - */ $tpl->set( 'searchaction', $this->escapeSearchLink() ); $tpl->set( 'searchtitle', SpecialPage::getTitleFor( 'Search' )->getPrefixedDBkey() ); $tpl->set( 'search', trim( $request->getVal( 'search' ) ) ); @@ -748,7 +763,7 @@ class SkinTemplate extends Skin { /** * Builds an array with tab definition * - * @param Title $title page Where the tab links to + * @param Title $title Page Where the tab links to * @param string|array $message Message key or an array of message keys (will fall back) * @param bool $selected Display the tab as selected * @param string $query Query string attached to tab URL @@ -1074,7 +1089,7 @@ class SkinTemplate extends Skin { /** * The following actions use messages which, if made particular to * the any specific skins, would break the Ajax code which makes this - * action happen entirely inline. Skin::makeGlobalVariablesScript + * action happen entirely inline. OutputPage::getJSVars * defines a set of messages in a javascript object - and these * messages are assumed to be global for all skins. Without making * a change to that procedure these messages will have to remain as @@ -1182,7 +1197,7 @@ class SkinTemplate extends Skin { /** * an array of edit links by default used for the tabs - * @param $content_navigation + * @param array $content_navigation * @return array */ private function buildContentActionUrls( $content_navigation ) { @@ -1357,12 +1372,20 @@ class SkinTemplate extends Skin { * @ingroup Skins */ abstract class QuickTemplate { + + /** @var Config $config */ + protected $config; /** - * Constructor + * @var Config $config */ - function __construct() { + function __construct( Config $config = null ) { $this->data = array(); $this->translator = new MediaWikiI18N(); + if ( $config === null ) { + wfDebug( __METHOD__ . ' was called with no Config instance passed to it' ); + $config = ConfigFactory::getDefaultInstance()->makeConfig( 'main' ); + } + $this->config = $config; } /** @@ -1782,9 +1805,9 @@ abstract class BaseTemplate extends QuickTemplate { * 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... * - * @param string $key usually a key from the list you are generating this + * @param string $key Usually a key from the list you are generating this * link from. - * @param array $item contains some of a specific set of keys. + * @param array $item Contains some of a specific set of keys. * * 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 @@ -1805,7 +1828,7 @@ abstract class BaseTemplate extends QuickTemplate { * * If you don't want an accesskey, set $item['tooltiponly'] = true; * - * @param array $options can be used to affect the output of a link. + * @param array $options Can be used to affect the output of a link. * Possible options are: * - 'text-wrapper' key to specify a list of elements to wrap the text of * a link in. This should be an array of arrays containing a 'tag' and