Xoops 必須入力項目の設定

Xoops

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 ユーザー情報をカスタマイズする

Xoops を使った会員制サイトの構築はこちら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です