我正在尝试使用JFormFieldUser :: getInput作为Joomla表单的输入。
在后端(以超级用户身份登录),当我调用此方法时,单击时会生成一个漂亮的“选择用户”框,显示要从中选择的所有用户的列表。
我一直在尝试使用前端表单上的用户表单字段(使用超级用户登录)。结果是一些令人困惑和不受欢迎的事情。生成“选择用户”链接,但点击它时,结果是超级用户“用户个人资料”被加载:不是所有用户的列表。
为什么会这样,以及如何让'select user'显示用户的完整列表,就像它在后端一样。
答案 0 :(得分:0)
我没有太多运气。相反,我创建了自己的组件并添加到com_users的内容中。做了一个款待。
答案 1 :(得分:0)
Apparently无法完成
JForm(Joomla)用户字段是您可以使用的Joomla核心字段 请参阅Joomla文章表单以选择用户(带有列表的灯箱) 用户)。因为这个领域不能用于前端 Joomla核心不会在前端管理它...通常我们会替换它 选择动态字段的前端字段。
答案 2 :(得分: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&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))) : '');
到
$link = 'administrator/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))) : '');
有点hacky,但符合我的目的。
这里不那么狡猾但不那么迷人的解决方案:The SQL formfield type
答案 3 :(得分:0)
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" />