2008-10-27 20:33:18 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Hooks for InputBox extension
|
|
|
|
*
|
|
|
|
* @file
|
|
|
|
* @ingroup Extensions
|
|
|
|
*/
|
|
|
|
|
|
|
|
// InputBox hooks
|
|
|
|
class InputBoxHooks {
|
|
|
|
|
|
|
|
/* Functions */
|
2008-10-27 20:56:23 +00:00
|
|
|
|
2008-10-27 20:33:18 +00:00
|
|
|
// Initialization
|
2009-09-04 22:22:12 +00:00
|
|
|
public static function register( &$parser ) {
|
2008-10-27 20:33:18 +00:00
|
|
|
// Register the hook with the parser
|
2009-09-04 22:22:12 +00:00
|
|
|
$parser->setHook( 'inputbox', array( 'InputBoxHooks', 'render' ) );
|
2008-10-27 20:56:23 +00:00
|
|
|
|
2008-10-27 20:33:18 +00:00
|
|
|
// Continue
|
|
|
|
return true;
|
|
|
|
}
|
2008-10-27 20:56:23 +00:00
|
|
|
|
2008-10-27 20:33:18 +00:00
|
|
|
// Render the input box
|
|
|
|
public static function render( $input, $args, $parser ) {
|
|
|
|
// Create InputBox
|
|
|
|
$inputBox = new InputBox( $parser );
|
2008-10-27 20:56:23 +00:00
|
|
|
|
2008-10-27 20:33:18 +00:00
|
|
|
// Configure InputBox
|
|
|
|
$inputBox->extractOptions( $parser->replaceVariables( $input ) );
|
2008-10-27 20:56:23 +00:00
|
|
|
|
2008-10-27 20:33:18 +00:00
|
|
|
// Return output
|
|
|
|
return $inputBox->render();
|
|
|
|
}
|
2010-03-18 19:11:12 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* <inputbox type=create...> sends requests with action=edit, and
|
|
|
|
* possibly a &prefix=Foo. So we pick that up here, munge prefix
|
|
|
|
* and title together, and redirect back out to the real page
|
|
|
|
* @param $output OutputPage
|
|
|
|
* @param $article Article
|
|
|
|
* @param $title Title
|
|
|
|
* @param $user User
|
|
|
|
* @param $request WebRequest
|
|
|
|
* @param $wiki MediaWiki
|
|
|
|
* @return True
|
|
|
|
*/
|
|
|
|
public static function onMediaWikiPerformAction(
|
|
|
|
$output,
|
|
|
|
$article,
|
|
|
|
$title,
|
|
|
|
$user,
|
|
|
|
$request,
|
|
|
|
$wiki )
|
|
|
|
{
|
|
|
|
$action = $wiki->getVal( 'Action' );
|
|
|
|
if( $action !== 'edit' ){
|
|
|
|
# not our problem
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
if( $request->getText( 'prefix', '' ) === '' ){
|
|
|
|
# Fine
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
$params = $request->getValues();
|
|
|
|
$title = $params['prefix'] . @$params['title'];
|
|
|
|
unset( $params['prefix'] );
|
|
|
|
unset( $params['title'] );
|
|
|
|
$url = "?title=$title";
|
|
|
|
foreach( $params as $key => $value ){
|
|
|
|
if( $key ){
|
|
|
|
$url .= "&{$key}={$value}";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
global $wgScript;
|
|
|
|
$output->redirect( $wgScript . $url, '301' );
|
|
|
|
return false;
|
|
|
|
}
|
2008-10-27 20:56:23 +00:00
|
|
|
}
|