我正在使用joomla 2.5,我正在使用joomla模块,我想在模块中的后端设置页面执行服务器端自定义表单验证。我已经检查了joomla论坛,但他们都根据组件解释,我严格需要在模块中做。我是joomla的新人。请解释一下方法。
答案 0 :(得分:0)
试试这个,
首先,你不能进行各种验证,比如模块参数中的组件形式,而不会破坏核心。
可用选项仅限制INT,RAW数据字符串。
您可以使用名为filter
的模块参数的最后一个选项。 Details查看this。
<field name="myintvalue" type="text" default="8" label="Enter some text" description="Enter some description" filter="integer" />
<field name="myhtmlvalue" type="text" default="" label="Enter some text" description="Enter some description" filter="raw" />
替代选项。
您可以创建自定义规则进行验证。例如,您的模块名称为mod_mymodule
:
将addrulepath
属性添加到.xml文件中的字段集:
addrulepath="modules/mod_mymodule"
这将是自定义规则文件夹的路径。
将validate
属性添加到包含规则文件名称的字段:
validate="testint"
这将为我们提供文件testint.php
。
创建规则文件testint.php
并将其放入addrulepath
属性中指定的路径。所以完整的路径将是:
administrator/modules/mod_mymodule/testint.php
这是一个简单的验证规则类:
class JFormRuleTestint extends JFormRule
{
public function test(&$element, $value, $group = null, &$input = null, &$form = null)
{
return ((int)$value > 0 && (int)$value < 2);
}
}
它应该扩展JFormRule
类,您只需要一个名为test
的方法。 $value
将包含该字段的输入。这里我们测试它是0到2之间的整数。
希望它的帮助..