mediawiki-extensions-Cite/SpecialCite.php
Siebrand Mazeland 52ca5a1a5a Maintenance for Cite extension.
* Update deprecated calls.
* Remove superfluous newlines.
* Add @todo where uncertain.

Change-Id: Ifc79b199fa551c23fafa190664688c8320059338
2012-08-30 10:41:27 +02:00

91 lines
2.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
if ( !defined( 'MEDIAWIKI' ) ) die();
/**
* A special page extension that adds a special page that generates citations
* for pages.
*
* @file
* @ingroup Extensions
*
* @link http://www.mediawiki.org/wiki/Extension:Cite/Special:Cite.php Documentation
*
* @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
* @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 were in the right namespace, the $revid has the correct type and is not empty
// (what would mean that the current page doesnt 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;
}