From 08aa4418c30cfc18ccc69a0f0f9cb9e17be6c196 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Mon, 12 Aug 2013 09:28:15 +0200 Subject: Update to MediaWiki 1.21.1 --- extensions/Cite/SpecialCite.php | 90 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 extensions/Cite/SpecialCite.php (limited to 'extensions/Cite/SpecialCite.php') diff --git a/extensions/Cite/SpecialCite.php b/extensions/Cite/SpecialCite.php new file mode 100644 index 00000000..6d9b8138 --- /dev/null +++ b/extensions/Cite/SpecialCite.php @@ -0,0 +1,90 @@ + + * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason + * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later + */ + +$wgExtensionCredits['specialpage'][] = array( + 'path' => __FILE__, + 'name' => 'Cite', + 'author' => 'Ævar Arnfjörð Bjarmason', + 'descriptionmsg' => 'cite_article_desc', + 'url' => 'https://www.mediawiki.org/wiki/Extension:Cite/Special:Cite.php' +); + +$dir = dirname( __FILE__ ) . '/'; +# Internationalisation file +$wgExtensionMessagesFiles['SpecialCite'] = $dir . 'SpecialCite.i18n.php'; +$wgExtensionMessagesFiles['SpecialCiteAliases'] = $dir . 'SpecialCite.alias.php'; + +$wgHooks['SkinTemplateBuildNavUrlsNav_urlsAfterPermalink'][] = 'wfSpecialCiteNav'; +$wgHooks['SkinTemplateToolboxEnd'][] = 'wfSpecialCiteToolbox'; + +$wgSpecialPages['Cite'] = 'SpecialCite'; +$wgAutoloadClasses['SpecialCite'] = $dir . 'SpecialCite_body.php'; + +// Resources +$citeResourceTemplate = array( + 'localBasePath' => dirname(__FILE__) . '/modules', + 'remoteExtPath' => 'Cite/modules' +); + +$wgResourceModules['ext.specialcite'] = $citeResourceTemplate + array( + 'styles' => 'ext.specialcite/ext.specialcite.css', + 'scripts' => array(), + 'position' => 'bottom', +); + +/** + * @param $skintemplate SkinTemplate + * @param $nav_urls + * @param $oldid + * @param $revid + * @return bool + */ +function wfSpecialCiteNav( &$skintemplate, &$nav_urls, &$oldid, &$revid ) { + // check whether we’re in the right namespace, the $revid has the correct type and is not empty + // (what would mean that the current page doesn’t exist) + $title = $skintemplate->getTitle(); + if ( $title->isContentPage() && $revid !== 0 && !empty( $revid ) ) + $nav_urls['cite'] = array( + 'args' => array( 'page' => $title->getPrefixedDBkey(), 'id' => $revid ) + ); + + return true; +} + +/** + * add the cite link to the toolbar + * + * @param $skin Skin + * + * @return bool + */ +function wfSpecialCiteToolbox( &$skin ) { + if ( isset( $skin->data['nav_urls']['cite'] ) ) { + echo Html::rawElement( + 'li', + array( 'id' => 't-cite' ), + Linker::link( + SpecialPage::getTitleFor( 'Cite' ), + wfMessage( 'cite_article_link' )->text(), // @todo Should be escaped()? + # Used message keys: 'tooltip-cite-article', 'accesskey-cite-article' + Linker::tooltipAndAccessKeyAttribs( 'cite-article' ), + $skin->data['nav_urls']['cite']['args'] + ) + ); + } + + return true; +} -- cgit v1.2.3-54-g00ecf