组件模块中的 Joomla 过滤器表单,自动填充字段

Posted

技术标签:

【中文标题】组件模块中的 Joomla 过滤器表单,自动填充字段【英文标题】:Joomla filter form in module for component, auto fill fields 【发布时间】:2015-07-05 17:59:32 【问题描述】:

我需要将自定义组件过滤器表单从组件视图移到模块中。

在模块中,我从 xml 加载表单结构:

$form = &JForm::getInstance('myform', JPATH_ROOT.'/components/com_man/models/forms/filter_oferty.xml');

我通过以下方式捕获已发布的变量并将它们置于状态:

if ($filters = $app->getUserStateFromRequest('com_man.oferty.filter', 'filter', array(), 'array'))
    foreach ($filters as $name => $value) $app->setUserState('filter.' . $name, $value);

我使用:

<?php echo $form->getInput('search', 'filter'); ?>

要在模块中放置字段,表单可以工作,但我无法制作表单以在请求后自动填写字段中的已发布变量。我想念什么? Joomla 如何设置这些值?

【问题讨论】:

请通过Joomla Stack Exchange 询问您与 Joomla 相关的问题;) 【参考方案1】:

如果有人需要,我找到了在模块中制作简单表单的解决方案:

加载表单表单xml:

$form = &JForm::getInstance('myform', JPATH_ROOT.'/components/com_man/models/forms/filter_oferty.xml');

通过:

将字段放入html
<?php echo $form->getInput('search', 'filter',$filters['search']); ?>

第三个参数是默认视图。不需要使用状态。

【讨论】:

以上是关于组件模块中的 Joomla 过滤器表单,自动填充字段的主要内容,如果未能解决你的问题,请参考以下文章

在我的 Joomla 组件的首选项中为表单字段定义过滤器功能的位置

如何在 joomla 3.1 中将表单从模块传递到组件

在 joomla 中打开一个模式窗口,其中包含自定义模块配置中的表单字段

Joomla 2.5 - 组件开发 - 使用表单

如何在 Joomla 3.x 中更改模板文件

如何在自定义模块(Joomla 1.7)中使用自定义组件中的函数?