1

我正在尝试使用 JFormFieldUser::getInput 作为我的 Joomla 表单的输入。

在后端(使用超级用户登录),当我调用此方法时,它会在单击时生成一个漂亮的“选择用户”框,显示所有用户的列表以供选择。

我一直在尝试在前端表单上使用用户表单字段(以超级用户身份登录)。结果有些令人困惑和不受欢迎。生成了一个“选择用户”链接,但是当单击它时,结果是加载了超级用户“用户配置文件”:不是所有用户的列表。

为什么会这样,以及如何让“选择用户”像在后端一样显示完整的用户列表。

4

4 回答 4

1

Joomla 3(来自您的字段定义):

     <field name="field_name" type="sql" label="COM_FIELD_LABEL"
        sql_select="id,name"
        sql_from="#__users"
        value_field="name"
        key_field="id"
        description="" 
        header="DROP_DOWN_HEADER"
        required="false" />
于 2016-06-16T20:54:49.590 回答
0

我没有太多运气。相反,我创建了自己的组件并添加了来自 com_users 的内容。工作了一个款待。

于 2012-10-11T17:09:43.500 回答
0

显然做不到

JForm (Joomla) User 字段是您可以在 Joomla 文章表单中看到的 Joomla 核心字段,用于选择用户(带有用户列表的灯箱)。注意这个字段不能在前端使用,因为Joomla核心不在前端管理它......我们经常用一个选择动态字段替换前端的这个字段。

于 2014-06-16T13:20:36.903 回答
0

可以相当简单地完成,但有一些重大限制 - 取决于您的用例。

  • 用户必须登录到后端(即使您正在尝试访问信息前端)。如果他们没有登录,它将提示登录并退出模式:(
  • 用户必须具有用户管理器的权限

然后将 复制\libraries\cms\form\field\user.php到您选择的字段位置(在模式子目录中)并将其重命名为user2.php. 使类名JFormFieldModal_Users2和 $type='Modal_Users2'。

如果需要,不要忘记将新路径添加到表单 .xml。类型将是“modal_users2”。

最后一步。在 user2.php 中,更改:

    $link     = 'index.php?option=com_users&amp;view=users&amp;layout=modal&amp;tmpl=component&amp;field=' . $this->id
            . (isset($groups) ? ('&amp;groups=' . base64_encode(json_encode($groups))) : '')
            . (isset($excluded) ? ('&amp;excluded=' . base64_encode(json_encode($excluded))) : '');

    $link     = 'administrator/index.php?option=com_users&amp;view=users&amp;layout=modal&amp;tmpl=component&amp;field=' . $this->id
            . (isset($groups) ? ('&amp;groups=' . base64_encode(json_encode($groups))) : '')
            . (isset($excluded) ? ('&amp;excluded=' . base64_encode(json_encode($excluded))) : '');

有点hacky,但符合我的目的。

这里不那么 hacky,但不那么迷人的解决方案:SQL 表单域类型

于 2015-08-09T16:47:46.357 回答