Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms Joomla表单字段用户前端_Forms_Joomla - Fatal编程技术网

Forms Joomla表单字段用户前端

Forms Joomla表单字段用户前端,forms,joomla,Forms,Joomla,我试图使用JFormFieldUser::getInput作为Joomla表单的输入 在后端(与超级用户一起登录),当我调用此方法时,它会在单击时生成一个漂亮的“选择用户”框,显示要从中选择的所有用户的列表 我一直在尝试使用前端表单上的用户表单字段(使用超级用户登录)。结果是一些令人困惑和不受欢迎的东西。会生成一个“选择用户”链接,但当单击该链接时,结果会加载超级用户“用户配置文件”:而不是所有用户的列表 这是为什么?我如何让“选择用户”像在后端一样显示完整的用户列表。我在这方面运气不太好。相反

我试图使用JFormFieldUser::getInput作为Joomla表单的输入

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

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


这是为什么?我如何让“选择用户”像在后端一样显示完整的用户列表。

我在这方面运气不太好。相反,我创建了自己的组件,并添加了来自com_用户的内容。工作很顺利。

我在这方面运气不太好。相反,我创建了自己的组件,并添加了来自com_用户的内容。做了一件好事。

这件事做不到

JForm(Joomla)用户字段是您可以使用的Joomla核心字段 请参阅Joomla文章表单中的以选择用户(带有 用户)。请注意,此字段不能用于前端,因为 Joomla core不在前端管理它。。。我们经常替换这个 字段位于前端,带有“选择动态”字段

这是办不到的

JForm(Joomla)用户字段是您可以使用的Joomla核心字段 请参阅Joomla文章表单中的以选择用户(带有 用户)。请注意,此字段不能用于前端,因为 Joomla core不在前端管理它。。。我们经常替换这个 字段位于前端,带有“选择动态”字段


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

  • 用户必须登录到后端(即使您试图访问前端信息)。如果未登录,则会提示登录并中断模式:(
  • 用户必须具有用户管理器的权限
然后将
\libraries\cms\form\field\user.php
复制到您选择的字段位置(在模态子目录中),并将其重命名为类似于
user2.php的名称。将类名
JFormFieldModal\u Users2
和$type='modal\u Users2'

如果需要,不要忘记将新路径添加到form.xml中。类型将为“modal_users2”

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

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

虽然有点老套,但符合我的目的


这里的解决方案不那么老套,但也不那么吸引人:

可以非常简单地完成,但有一些明显的限制-取决于您的用例

  • 用户必须登录到后端(即使您正在尝试访问信息前端)。如果用户未登录,它将提示登录并中断模式:(
  • 用户必须具有用户管理器的权限
然后将
\libraries\cms\form\field\user.php
复制到您选择的字段位置(在模态子目录中),并将其重命名为类似于
user2.php的名称。将类名
JFormFieldModal\u Users2
和$type='modal\u Users2'

如果需要,不要忘记将新路径添加到form.xml中。类型将为“modal_users2”

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

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

虽然有点老套,但符合我的目的

这里的解决方案不那么老套,但也不那么迷人:

Joomla 3(根据您的字段定义):


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" />