summaryrefslogtreecommitdiff
path: root/extensions/CiteThisPage/CiteThisPage.hooks.php
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/CiteThisPage/CiteThisPage.hooks.php')
-rw-r--r--extensions/CiteThisPage/CiteThisPage.hooks.php45
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;
+ }
+}