如何将表单验证添加到 joomla 模块

How to add form validation to a joomla module

我想知道是否有办法将自定义表单验证添加到 joomla 3.7 中的模块。我希望我的客户能够在模块管理中填写两个日期字段 [开始] 和 [结束]。但是我找不到合适的方法来检查 "both fields are optional but if one field is filled in the other one must be a valid date too" 之类的东西。我知道我可以使用 Joomla 组件来做到这一点,但我在这里编写了一个模块。

我还阅读了有关编码和将自定义验证规则文件复制到管理员文件夹的内容,但这对我来说有点 "dirty" 因为模块应该在安装后立即工作并且进一步是更新安全的。

所以我的问题是:有人知道 "proper" 实现这个的方法吗?

对于服务器端验证,您可以使用自定义验证规则。

Joomla's documentation tutorial 为组件显示它,但您可以修改它以用于模块,而不会失去任何未来的更新能力:

<config>
    <fields name="params">
        <fieldset name="basic" addrulepath="modules/mod_module/rules">
            <field name="field" rule="dualdate" />
        </fieldset>
    </fields>
</config>

然后您将在模块的 rule 文件夹中创建自定义规则 class:

class JFormRuleDualDate extends JFormRule
{

}