Manual:Hooks/EditPage::showEditForm:initial
EditPage::showEditForm:initial | |
---|---|
Available from version 1.6.0 Called just before the preview and edit form are rendered | |
Define function: | public static function onEditPage_showEditForm_initial( EditPage $editPage, OutputPage $output ) { ... }
|
Attach hook: | In extension.json:
{
"Hooks": {
"EditPage::showEditForm:initial": "MediaWiki\\Extension\\MyExtension\\Hooks::onEditPageshowEditForminitial"
}
}
|
Called from: | File(s): EditPage.php |
Interface: | EditPage__showEditForm_initialHook.php |
For more information about attaching hooks, see Manual:Hooks .
For examples of extensions using this hook, see Category:EditPage::showEditForm:initial extensions.
Details
edit$editPage
: the current EditPage object.$output
: the OutputPage object (added in version 1.20.0).
Notes
editYou can do something like:
if( $editPage->formtype == 'preview' ) {
// performing a preview.
}
to only take action on certain types of edits.
Inject HTML
editThere are many locations within EditPage::showEditForm:initial that allow a user to inject HTML. These hook locations are represented by member variables of the EditPage object. (Note that it is not clear how you are able to inject text using this hook prior to MW 1.9!)
$editPage->editFormPageTop // MW >= 1.9 $editPage->editFormTextTop // MW >= 1.9 $editPage->editFormTextBeforeContent // MW >= 1.12 $editPage->editFormTextAfterWarn // MW >= 1.9 $editPage->editFormTextAfterTools // MW >= 1.9 $editPage->editFormTextBottom // MW >= 1.9
To inject your HTML, append your HTML to one of the aforementioned member variables, e.g.
$editPage->editFormPageTop .= "<span>Hello World!</span>";
Some hook locations are inside forms; some not. Those inside the form allow you to inject HTML form elements.
- Inside form
- editFormTextBeforeContent
- editFormTextAfterWarn
- editFormTextAfterTools
- editFormTextBottom
- Outside form
- editFormPageTop
- editFormTextTop
Normally, we use EditPage::showEditForm:fields for form elements, but there may be some circumstances for which it is necessary to use the aforementioned hook locations.
Readonly
editIn readonly mode, there is a similar EditPage::showReadOnlyForm:initial-hook