mwstake / mediawiki-component-formengine
2.0.19
2024-09-13 11:44 UTC
Requires
- composer/installers: ~1.0|~2
- mwstake/mediawiki-componentloader: ~1
Requires (Dev)
- mediawiki/mediawiki-codesniffer: 41.0.0
- mediawiki/minus-x: 1.1.1
- php-parallel-lint/php-console-highlighter: 1.0.0
- php-parallel-lint/php-parallel-lint: 1.3.2
- phpunit/phpunit: ^8.5
README
MediaWiki 的 FormEngine
为 MediaWiki 提供基于 OOJS 的表单引擎。
此代码旨在在 MediaWiki 应用程序上下文中执行。不打算独立使用。
在 MediaWiki 扩展中使用
将 "mwstake/mediawiki-component-formengine": "~2.0"
添加到您的 composer.json
文件的 require
部分。
从 2.0 版本开始,需要显式初始化。这可以通过以下方式实现:
- 或者将
"callback": "mwsInitComponents"
添加到您的extension.json
/skin.json
- 或者调用
mwsInitComponents();
在您扩展/皮肤的自定义callback
方法中
也请参阅 mwstake/mediawiki-componentloader
.
可用的 ResourceLoader 模块
ext.forms.init
ext.forms.define
ext.forms.standalone
ext.forms.widgets
ext.forms.form.less
要求额外的 RL 模块
表单有时会使用未在表单包中加载的字段。要包含这些包,请在定义中指定它们
{ "name": "MyForm", "rlDependencies": [ "my.module" ], "items": {...}, ... }
行内验证
可以通过使用 validate
键在部件定义中声明验证函数。这个函数很棘手,因为它也从输入上下文中调用,因此无法访问表单对象。如果您需要使用表单中的其他元素,请使用此语法
{ name: 'field1', label: 'My field', type: 'text', validate: function( val ) { var form = this; if ( typeof this.getForm === 'function' ) { form = this.getForm(); } if ( !( form instanceof mw.ext.forms.widget.Form ) ) { // No form context, we can return true here, as main validation on submit will kick in return true; } // Return true/false... // Or return a promise } }