Jump to content

Manual:Hooks/EditPage::showEditForm:initial

From mediawiki.org
This page is a translated version of the page Manual:Hooks/EditPage::showEditForm:initial and the translation is 100% complete.
EditPage::showEditForm:initial
自version 1.6.0 版可用
在预览和渲染编辑表单前被调用
定义函数:
public static function onEditPage_showEditForm_initial( EditPage $editPage, OutputPage $output ) { ... }
附加钩子: extension.json中:
{
	"Hooks": {
		"EditPage::showEditForm:initial": "MediaWiki\\Extension\\MyExtension\\Hooks::onEditPageshowEditForminitial"
	}
}
调用自: 文件: EditPage/EditPage.php
介面: EditPage__showEditForm_initialHook.php

更多有关附加钩子的信息,请参见钩子
有关使用此钩子的扩展示例,请参见Category:EditPage::showEditForm:initial extensions/zh

详情

  • $editPage - 当前的EditPage对象
  • $output - OutputPage对象。 (在版本1.20.0引入)

提醒

您可以执行类似以下的操作以仅对某些类型的编辑执行操作:

if( $editPage->formtype == 'preview' ) {
    // 执行一个预览,
}

注入HTML

有很多在EditPage::showEditForm:initial 中的位置允许用户注入HTML。 这些钩子的位置由EditPage对象的成员变量表示。

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	

要注入HTML,请将HTML附加到上述成员变量之一,例如:

$editPage->editFormPageTop .= "<span>Hello World!</span>";

一些注入点在表单内部;另一些在表单外部。 表单内的那些允许您注入HTML表单元素。

  • 表单内
    • editFormTextBeforeContent
    • editFormTextAfterWarn
    • editFormTextAfterTools
    • editFormTextBottom
  • 表单外
    • editFormPageTop
    • editFormTextTop

通常,我们使用EditPage::showEditForm:fields 作为表单元素,但在某些情况下可能需要使用前面提到的钩子位置。

只读

在只读模式,有类似的钩子EditPage::showReadOnlyForm:initial