Manual:Hooks/EditPage::showEditForm:initial
EditPage::showEditForm:initial | |
---|---|
<translate> Available from <tvar name=1><translate> version <tvar </tvar></translate> Called just before the preview and edit form are rendered | |
<translate> Define function:</translate> | public static function onEditPage_showEditForm_initial( EditPage $editPage, OutputPage $output ) { ... }
|
<translate> Attach hook:</translate> | <translate> In <tvar name=1>extension.json</tvar>:</translate>
{
"Hooks": {
"EditPage::showEditForm:initial": "MediaWiki\\Extension\\MyExtension\\Hooks::onEditPageshowEditForminitial"
}
}
|
<translate> Called from:</translate> | <translate> File(s):</translate> EditPage.php |
<translate> Interface:</translate> | EditPage__showEditForm_initialHook.php |
<translate> For more information about attaching hooks, see <tvar name=1>Manual:Hooks </tvar>.</translate>
<translate> For examples of extensions using this hook, see <tvar name=cat>Category:EditPage::showEditForm:initial extensions</tvar>.</translate>
Details
$editPage
: the current EditPage object.$output
: the OutputPage object (added in version 1.20.0).
Notes
You can do something like:
if( $editPage->formtype == 'preview' ) {
// performing a preview.
}
to only take action on certain types of edits.
Inject HTML
There 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
In readonly mode, there is a similar EditPage::showReadOnlyForm:initial-hook