2010年10月11日

XOOPSの新規登録でキーを使ってグループ登録

いやぁ,苦労した...

今回は既存のYIMを利用してキーを扱うことにしてみた

まずは,user モジュールのテンプレートで,入力画面と確認画面を変更.

user_register_form.html

  <tr>
    <td>RegistKey</td>
    <tdodd,even"}>"><{xoops_input maxlength=25 name=user_yim value=$actionForm->get('user_yim')}></td>
  </tr>
<tr>
<td class="head">RegistKey</td>
<td class="<{cycle values="odd,even"}>"><{xoops_input maxlength=25 name=user_yim value=$actionForm->get('user_yim')}></td>
</tr>

user_register_confirm.html

<tr>
<td class="head">RegistKey</td>
<td class="<{cycle values="odd,even"}>">
<{$registForm->get('user_yim')|xoops_escape}>
</td>
</tr>

次は,データ受け渡し用に modules/user/forms/UserRegisterEditForm.class.php に追加

$this->mFormProperties['user_yim'] =& new XCube_StringProperty('user_yim');

$obj->set('user_yim', $this->get('user_yim'));

最後にキーを用いてグループを追加するために modules/user/actions/UserRegister_confirmAction.class.php に追加

if( $this->mNewUser->get('user_yim') == 'KEY' )
{
  if (!$memberHandler->addUserToGroup( 'GROUP ID', $this->mNewUser->get('uid'))) {
    $this->mRedirectMessage = _MD_USER_LANG_REGISTERNG;
    return USER_FRAME_VIEW_ERROR;
  }
}