1

ユーザーを「雇用主」または「求職者」として登録できるようにする必要があるクライアント向けの求人サイトを開発しています。新しい Joomla と同様に、さまざまなアクセス レベルがあります。ユーザーが登録時にドロップダウン フィールドからユーザー グループを選択できるようにしたいと考えています。

作業中に、フォームにカスタム フィールドを追加できることがわかりました。そこで、 「/joomla/components/com_users/models/forms/registration.xml」に次のコードを追加しました。

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

fieldtype "groups" は、"/joomla/libraries/joomla/form/fields/"の下にある joomla 定義のフィールド タイプです。

しかし、問題は、「管理者」と「スーパー ユーザー」を含むすべてのユーザー グループのドロップダウンとして表示されることです。

ただし、「雇用主」と「求職者」であるカスタム追加されたユーザーグループのみを表示したいと思います

以下は、必要になる可能性のある情報です。 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