blob: 557dabc602e8981c14b638d0a2c66fb9b1db0b08 [file] [log] [blame]
<?php
/**
* IDL Tag extension
* The IDLTagExtension was written to manage the IDL links in the OpenOffice.org Developer's Guide.
* The extension converts Java paths to links back to the online IDL documentation.
* @version 1.1.0
* @link https://wiki.openoffice.org/wiki/MediaWiki_Extension/Extension_IDLTags#IDLTags_extension_for_Mediawiki
*/
if ( !defined( 'MEDIAWIKI' ) ) {
die( 'This file is a MediaWiki extension, it is not a valid entry point' );
}
// Extension credits that will show up on Special:Version
$wgExtensionCredits['parserhook'][] = array(
'name' => 'IDL Tags',
'version' => '1.1.0',
'author' => array( 'Clayton Cornell', 'Terry Ellison' ),
'description' => 'Manage the IDL links in the OOo Dev Guide ',
'url' => 'https://wiki.openoffice.org/wiki/MediaWiki_Extension/Extension_IDLTags#IDLTags_extension_for_Mediawiki',
);
global $wgExtIDLtags;
$wgExtIDLtags = new RenderIDLtags;
$wgExtensionFunctions[] = array( &$wgExtIDLtags, 'oooIDLTags' );
class RenderIDLtags {
function oooIDLTags() {
global $wgParser;
$wgParser->setHook( 'idl', array( &$this, 'renderIDL' ) );
$wgParser->setHook( 'idlm', array( &$this, 'renderIDLM' ) );
$wgParser->setHook( 'idls', array( &$this, 'renderIDLS' ) );
$wgParser->setHook( 'idlmodule', array( &$this, 'renderIDLMODULE' ) );
$wgParser->setHook( 'idltopic', array( &$this, 'renderIDLTOPIC' ) );
}
function renderIDL( $input, $args, $parser ) {
$parser->disableCache();
$output = $parser->recursiveTagParse( $input );
$output = '<a href="https://www.openoffice.org/api/docs/common/ref/' .
str_replace ('.','/',$output).'.html" class="external text">'.$output.'</a>';
return $output;
}
function renderIDLM( $input, $args, $parser ) {
$parser->disableCache();
$output = $parser->recursiveTagParse( $input );
$page = preg_replace ('/\./','/',$output);
$anchor = preg_replace ('/:/','.html#',$page);
$function = preg_replace ('/^.*:/','',$page);
$output = '<a href="https://www.openoffice.org/api/docs/common/ref/' .
$anchor.'" class="external text">'.$function.'</a>';
return $output;
}
function renderIDLS( $input, $args, $parser ) {
$parser->disableCache();
$output = $parser->recursiveTagParse( $input );
$function = preg_replace ('/^.*\./','',$output);
$output = '<a href="https://www.openoffice.org/api/docs/common/ref/' .
preg_replace ('/\./','/',$output).'.html" class="external text">'.$function.'</a>';
return $output;
}
function renderIDLMODULE( $input, $args, $parser ) {
$parser->disableCache();
$output = $parser->recursiveTagParse( $input );
$function = preg_replace ('/^.*\./','',$output);
$output = '<a href="https://www.openoffice.org/api/docs/common/ref/' .
preg_replace ('/\./','/',$output).'/module-ix.html" class="external text">'.$output.'</a>';
return $output;
}
function renderIDLTOPIC( $input, $args, $parser ) {
$parser->disableCache();
return '';
}
}