后端joomla中模块设置页面中的服务器端验证

时间:2014-04-25 08:49:10

标签: joomla joomla2.5

我正在使用joomla 2.5,我正在使用joomla模块,我想在模块中的后端设置页面执行服务器端自定义表单验证。我已经检查了joomla论坛,但他们都根据组件解释,我严格需要在模块中做。我是joomla的新人。请解释一下方法。

1 个答案:

答案 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之间的整数。

希望它的帮助..