Xoops ユーザー情報に必須項目を設定する
Xoops Cube Legacy-2.1.x
Xoopsのユーザー情報設定は硬直的で、追加したり減らしたりが難しいです。
Xoops ユーザー情報をカスタマイズするのシリーズにて、ユーザー情報のカスタマイズをしました。
今回は、その設定したユーザー情報を必須にする方法です。
Xoops ユーザー情報をカスタマイズする]],[[Xoops ユーザー情報をカスタマイズする2]],[[Xoops ユーザー情報をカスタマイズする3の手順は終わっているものとします。
注意:下記の手順はソースコードのHackになります。バックアップを取って自己責任で行ってください。MySQLやPHPの知識がある人向けです。
例では、furiganaという項目を作り、氏名を入力させることにします。
これを必須にします。
furiganaという項目には、フリーのテキストが入るとします。
- /modules/user/forms/UserRegisterEditForm.class.php
function prepare()
内のプロパティを編集します。
$this->mFieldProperties['furigana'] =& new XCube_FieldProperty($this); $this->mFieldProperties['furigana']->setDependsByArray(array('required')); $this->mFieldProperties['furigana']->addMessage('required', _MD_USER_ERROR_REQUIRED, _US_FURIGANA);
- 次に、言語ファイルに、エラーメッセージの文言の定義を追加しておきます。
/preload/ThemeLanguage.class.php
など、新しく言語ファイルを作って、preload内にでも入れておくのが簡単でよいでしょう。
define('_US_FURIGANA','フリガナ'); define('_MD_USER_ERROR_FURIGANA','フリガナは必ず入力してください');
と、文言を定義しておきます。
上記でユーザー登録時に、必須項目になりました。
- 次に、ユーザーが自身の情報を編集する際に必須にします。
/modules/user/forms/EditUserForm.class.php
function prepare()
内のプロパティを編集します。
$this->mFieldProperties['furigana'] =& new XCube_FieldProperty($this); $this->mFieldProperties['furigana']->setDependsByArray(array('required')); $this->mFieldProperties['furigana']->addMessage('required', _MD_USER_ERROR_FURIGANA, _MD_USER_LANG_FURIGANA);
上記で、ユーザーが自分の情報を編集するときに必須になりました。
- 管理画面からユーザー情報を編集する際に必須にします。
/modules/user/admin/forms/UserAdminEditForm.class.php
function prepare()
内のプロパティを編集します。
$this->mFieldProperties['furigana'] =& new XCube_FieldProperty($this); $this->mFieldProperties['furigana']->setDependsByArray(array('required')); $this->mFieldProperties['furigana']->addMessage('required', _MD_USER_ERROR_FURIGANA, _US_FURIGANA);
これで、ユーザー情報編集画面にて編集時に必須になりました。
関連:Xoops ユーザー情報をカスタマイズする