我正在 Joomla 2.5 中创建一个组件。该组件在其config.xml中定义了一些选项,因此可以在组件的首选项中设置它们。现在我想使用属性对这些选项字段之一应用过滤器filter="my_filter"
。
在 JForm 的源代码中,我在执行的最后看到了以下几行JForm::filterField()
:
if (strpos($filter, '::') !== false && is_callable(explode('::', $filter)))
{
$return = call_user_func(explode('::', $filter), $value);
}
elseif (function_exists($filter))
{
$return = call_user_func($filter, $value);
}
这就是我使用自己定义的过滤器功能所需要的!
我设法为组件视图中使用的表单字段做到了这一点。我将过滤器函数定义为MyComponentHelper::my_filter()
,其中MyComponentHelper
是一个帮助类,我总是将它加载到我的组件的基础中。在表单的 xml 中,我添加filter="MyComponentHelper::my_filter"
了必须过滤的字段。但是...当我尝试将过滤器功能应用于组件首选项中的表单字段时,我不在我自己的组件中,而是在com_config中,所以我的助手类不可用!
因此,我的问题是:在哪里定义我自己的过滤器函数,以便可以JForm::filterField()
在com_config中找到和调用它?非常感谢您的帮助。