MediaWiki REL1_34
InputBoxHooks.php
Go to the documentation of this file.
1<?php
13
19 public static function register( Parser &$parser ) {
20 // Register the hook with the parser
21 $parser->setHook( 'inputbox', [ 'InputBoxHooks', 'render' ] );
22
23 // Continue
24 return true;
25 }
26
33 public static function onSpecialPageBeforeExecute( $special, $subPage ) {
34 $request = $special->getRequest();
35 $prefix = $request->getText( 'prefix', '' );
36 $title = $request->getText( 'wpNewTitle', '' );
37 $search = $request->getText( 'search', '' );
38 $searchfilter = $request->getText( 'searchfilter', '' );
39 if ( $special->getName() == 'Movepage' && $prefix !== '' && $title !== '' ) {
40 $request->setVal( 'wpNewTitle', $prefix . $title );
41 $request->unsetVal( 'prefix' );
42 }
43 if ( $special->getName() == 'Search' && $searchfilter !== '' ) {
44 $request->setVal( 'search', $search . ' ' . $searchfilter );
45 }
46 return true;
47 }
48
56 public static function render( $input, $args, Parser $parser ) {
57 // Create InputBox
58 $inputBox = new InputBox( $parser );
59
60 // Configure InputBox
61 $inputBox->extractOptions( $parser->replaceVariables( $input ) );
62
63 // Return output
64 return $inputBox->render();
65 }
66
79 public static function onMediaWikiPerformAction(
80 $output,
81 $article,
82 $title,
83 $user,
84 $request,
85 $wiki
86 ) {
87 if ( $wiki->getAction() !== 'edit' && $request->getText( 'veaction' ) !== 'edit' ) {
88 // not our problem
89 return true;
90 }
91 if ( $request->getText( 'prefix', '' ) === '' ) {
92 // Fine
93 return true;
94 }
95
96 $params = $request->getValues();
97 $title = $params['prefix'];
98 if ( isset( $params['title'] ) ) {
99 $title .= $params['title'];
100 }
101 unset( $params['prefix'] );
102 $params['title'] = $title;
103
104 global $wgScript;
105 $output->redirect( wfAppendQuery( $wgScript, $params ), '301' );
106 return false;
107 }
108}
$wgScript
The URL path to index.php.
wfAppendQuery( $url, $query)
Append a query string to an existing URL, which may or may not already have query string parameters a...
if( $line===false) $args
Definition cdb.php:64
InputBox hooks.
static onMediaWikiPerformAction( $output, $article, $title, $user, $request, $wiki)
<inputbox type=create...>> sends requests with action=edit, and possibly a &prefix=Foo.
static onSpecialPageBeforeExecute( $special, $subPage)
Prepend prefix to wpNewTitle if necessary.
static render( $input, $args, Parser $parser)
Render the input box.
InputBox class.
Definition InputBox.php:14
PHP Parser - Processes wiki markup (which uses a more user-friendly syntax, such as "[[link]]" for ma...
Definition Parser.php:74
replaceVariables( $text, $frame=false, $argsOnly=false)
Replace magic variables, templates, and template arguments with the appropriate text.
Definition Parser.php:3311