<?php
/**
* Extension adds a custom action and corresponding tab to
* article views
*
* @package MediaWiki
* @subpackage Extensions
* @author Rob Church <robchur@gmail.com>
*/
if( defined( 'MEDIAWIKI' ) ) {
$wgExtensionFunctions[] = 'efCustomActionSetup';
/**
* Extension setup function
*/
function efCustomActionSetup() {
global $wgHooks, $wgMessageCache;
$wgMessageCache->addMessage( 'customaction', 'Custom' );
$wgHooks['SkinTemplateContentActions'][] = 'efCustomActionTab';
$wgHooks['UnknownAction'][] = 'efCustomActionHandler';
}
/**
* Adds the custom action tab
*
* @param array $tabs
*/
function efCustomActionTab( &$tabs ) {
global $wgTitle, $wgRequest;
$action = $wgRequest->getText( 'action' );
if( $wgTitle->getNamespace() != NS_SPECIAL ) {
$tabs['custom'] = array(
'class' => $action == 'custom' ? 'selected' : false,
'text' => wfMsg( 'customaction' ),
'href' => $wgTitle->getLocalUrl( 'action=custom' ),
);
}
}
/**
* Handles the custom action
*
* @param string $action
* @param Article $article
*/
function efCustomActionHandler( $action, $article ) {
global $wgOut;
if( $action == 'custom' ) {
$wgOut->addWikiText( "You are performing a custom action on '''" . $article->getTitle()->getText() . "'''." );
}
}
} else {
echo( "This file is an extension to the MediaWiki software, and cannot be used standalone.\n" );
exit( 1 );
}
?>