Выбор группы пользователей при регистрации в Joomla1.6 - PullRequest
1 голос
/ 06 сентября 2011

Я разрабатываю сайт вакансий для клиента, где он должен иметь возможность зарегистрировать своего пользователя как «Работодателя» или «Соискателя».Как и в новой Joomla, у нас есть разные уровни доступа, и я хочу, чтобы пользователи могли выбирать группу пользователей через раскрывающееся поле при регистрации.

Пока я работал над этим, я обнаружил, что вы можете добавить настраиваемые поля.к форме.Поэтому я добавил следующий код в "/ joomla / components / com_users / models / forms / registration.xml"

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

fieldtype "groups" - это определенный в Joomla тип поля под "/ joomla / library / joomla / form / fields /"

Но проблема в том, что он отображается как раскрывающийся список со всеми группами пользователей, включая «Администратор» и «Суперпользователи».

однако мне бы хотелось, чтобы отображались только пользовательские группы пользователей, которые являются «Работодателем» и «Соискателем»

Ниже приведена некоторая информация, которая может потребоваться: Версия Joomla: 1.6 Версия PHP: 5.3Apache Server: 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 для пользовательских групп - 10 и 11.

Может кто-нибудь помочь с быстрым обходом или решением по этому вопросу.Ваше время и помощь очень ценятся.Спасибо

- Расти -

...