我正在为客户开发一个工作网站,他需要能够让他的用户注册为“雇主”或“求职者”。与新的 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。
任何人都可以帮助快速解决这个问题或解决方案。非常感谢您的时间和帮助。谢谢
--生锈--