diff options
Diffstat (limited to 'extensions/CiteThisPage/CiteThisPage.hooks.php')
-rw-r--r-- | extensions/CiteThisPage/CiteThisPage.hooks.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/extensions/CiteThisPage/CiteThisPage.hooks.php b/extensions/CiteThisPage/CiteThisPage.hooks.php new file mode 100644 index 00000000..e238b4ff --- /dev/null +++ b/extensions/CiteThisPage/CiteThisPage.hooks.php @@ -0,0 +1,45 @@ +<?php + +class CiteThisPageHooks { + + /** + * @param SkinTemplate $skintemplate + * @param $nav_urls + * @param $oldid + * @param $revid + * @return bool + */ + public static function onSkinTemplateBuildNavUrlsNav_urlsAfterPermalink( &$skintemplate, &$nav_urls, &$oldid, &$revid ) { + // check whether we’re in the right namespace, the $revid has the correct type and is not empty + // (which would mean that the current page doesn’t exist) + $title = $skintemplate->getTitle(); + if ( $title->isContentPage() && $revid !== 0 && !empty( $revid ) ) + $nav_urls['citeThisPage'] = array( + 'args' => array( 'page' => $title->getPrefixedDBkey(), 'id' => $revid ) + ); + + return true; + } + + /** + * @param Skin $skin + * @return bool + */ + public static function onSkinTemplateToolboxEnd( &$skin ) { + if ( isset( $skin->data['nav_urls']['citeThisPage'] ) ) { + echo Html::rawElement( + 'li', + array( 'id' => 't-cite' ), + Linker::link( + SpecialPage::getTitleFor( 'CiteThisPage' ), + wfMessage( 'citethispage-link' )->escaped(), + # Used message keys: 'tooltip-citethispage', 'accesskey-citethispage' + Linker::tooltipAndAccessKeyAttribs( 'citethispage' ), + $skin->data['nav_urls']['citeThisPage']['args'] + ) + ); + } + + return true; + } +} |