1

我正在为客户开发一个工作网站,他需要能够让他的用户注册为“雇主”或“求职者”。与新的 Joomla 一样,我们确实有不同的访问级别,我希望用户能够在注册时通过下拉字段选择用户组。

当我在处理它时,我发现您可以将自定义字段添加到表单中。所以我将以下代码添加到“/joomla/components/com_users/models/forms/registration.xml”

<field
    name="usertype"
    type="groups"
    id="usertype"
/>

fieldtype "groups" 是 joomla 在"/joomla/libraries/joomla/form/fields/"下定义的字段类型

但问题是它显示为所有用户组的下拉列表,包括“管理员”和“超级用户”。

但是我希望它只显示自定义添加的用户组,即“雇主”和“求职者”

以下是可能需要的一些信息: Joomla 版本:1.6 PHP 版本:5.3 Apache 服务器:2.2.11

字段“组”的代码:

protected function _getOptions()
{
    // Get a database object.
    $db = &JFactory::getDbo();

    // Get the user groups from the database.
    $db->setQuery(
        'SELECT a.id AS value, a.title AS text, COUNT(DISTINCT b.id) AS level' .
        ' FROM #__usergroups AS a' .
        ' LEFT JOIN `#__usergroups` AS b ON a.lft > b.lft AND a.rgt < b.rgt' .
        ' GROUP BY a.id' .
        ' ORDER BY a.lft ASC'
    );
    $options = $db->loadObjectList();

    // Pad the option text with spaces using depth level as a multiplier.
    for ($i=0,$n=count($options); $i < $n; $i++) {
        $options[$i]->text = str_repeat('- ',$options[$i]->level).$options[$i]->text;
    }

    // Merge any additional options in the XML definition.
    //$options = array_merge(parent::_getOptions(), $options);

    return $options;
}

我还尝试通过添加来编辑上述字段

'WHERE id >=10'

但随后下拉加载没有选项。是的,自定义组的 Mysql 表中的 ID 是 10 和 11。

任何人都可以帮助快速解决这个问题或解决方案。非常感谢您的时间和帮助。谢谢

--生锈--

4

0 回答 0