xoops ユーザー登録カスタマイズ

userモジュール内の以下の4つのファイルがかかわっています。
user
|_templates
|…|_user_register_form.html(新規登録画面)
|…|_user_register_confirm.html(新規登録の確認画面)
|
|_language
|…|_japanese
|……|_main.php(項目名称の変更)
|
|_forms
|…|_UserRegisterEditForm.class.php(データベースに登録)
|
確認画面はローカルファイルを編集・FTPするのではなく、管理画面 »» 互換レンダーシステム »» テンプレート管理 »» テンプレートセット一覧からユーザーモジュールを選択し、その中にあるファイルをWeb上で編集する
1.user_register_form.htmlの修正

今回、追加する項目である、”name”が新規追加項目として表示されるように、Xoops管理画面内、Altsysから修正

以下をHTMLのTable内へ挿入します。

1
2
3
4
<tr>
  <td class="head">新規追加項目name</td>
  <td class="<{cycle values="odd,even"}>"><{xoops_input maxlength=30 name=name value=$actionForm->get('name')}></td>
</tr>

user_register_confirm.htmlの修正

以下のコードをHTMLのTable内へ挿入します。

1
2
3
4
5
6
<tr>
  <td class="head">新規追加項目name</td>
  <td class="<{cycle values="odd,even"}>">
    <{$registForm->get('name')|xoops_escape}>
  </td>
</tr>
2.複製したテンプレートセットの[テンプレート]項目から
user_register_form.htmlとuser_register_confirm.htmlを編集。
3.Root/kernel/user.phpへ項目設定を追記Root/kernel/user.phpのFunction ”XoopsUser” 内へ追加項目を追記XoopsUser

1
$this->initVar('name', XOBJ_DTYPE_TXTBOX, null, false, 30);
4.UserRegisterEditForm.class.phpと普通にローカル編集しFTPで書き換えます。
main.phpはAltsys
———————————
UserRegisterEditForm.class.php
内変更内容 下記↓// Set form properties
//本名追加
$this->mFormProperties[‘name’] =& new XCube_StringProperty(‘name’);// Set field properties
//本名追加
$this->mFieldProperties[‘name’] =& new XCube_FieldProperty($this);
$this->mFieldProperties[‘name’]->setDependsByArray(array(‘maxlength’));
$this->mFieldProperties[‘name’]->addMessage(“maxlength”, _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_NAME, “60”);
$this->mFieldProperties[‘name’]->addVar(“maxlength”, 60);//
———————–
または

Root/modeules/user/forms/UserRegisterEditForm.class.phpの修正

Root/modeules/user/forms/UserRegisterEditForm.class.php内、Function、”prepare”、”// Set form properties”へhoge項目を追記します。

1
$this->mFormProperties['name'] =new XCube_StringProperty('hoge');

Root/modeules/user/forms/UserRegisterEditForm.class.php内、Function、”prepare”、”// Set field properties”へname項目を追記

1
2
3
$this->mFieldProperties['name'] =new XCube_FieldProperty($this);
$this->mFieldProperties['name']->setDependsByArray(array('maxlength'));
$this->mFieldProperties['name']->addVar('maxlength', 30);

Root/modeules/user/forms/UserRegisterEditForm.class.php内、Function、”update”へname項目を追記します。

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