ブログ - お決まりのパターンカテゴリのエントリ
本来はプリロードで対応すべきかもしれないが、項目の追加/削除だけなのでHackしてしまう。
項目の削除はテンプレートの範囲でも結構できる?
「ユーザーモジュール 」テンプレート user_register_form.html
項目を追加したい場合はコードに手を入れる必要がある。
modules/user/forms/UserRegisterEditForm.class.php を編集して
mFormProperties[‘XXXX’]
mFieldProperties[‘XXXX’]
validateXXXX() などを追加するというのが基本。
サンプル=名前を登録項目にする。
function prepare() に以下を追加する。
function update に以下を追加する
項目の削除はテンプレートの範囲でも結構できる?
「ユーザーモジュール 」テンプレート user_register_form.html
項目を追加したい場合はコードに手を入れる必要がある。
modules/user/forms/UserRegisterEditForm.class.php を編集して
mFormProperties[‘XXXX’]
mFieldProperties[‘XXXX’]
validateXXXX() などを追加するというのが基本。
サンプル=名前を登録項目にする。
function prepare() に以下を追加する。
$this->mFormProperties['name'] =& new XCube_StringProperty('name');
$this->mFieldProperties['name'] =& new XCube_FieldProperty($this);
$this->mFieldProperties['name']->setDependsByArray(
array('required', 'maxlength'));
$this->mFieldProperties['name']->addMessage("required",
_MD_USER_ERROR_REQUIRED, _MD_USER_LANG_NAME, "60");
$this->mFieldProperties['name']->addMessage("maxlength",
_MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_NAME, "60");
$this->mFieldProperties['name']->addVar("maxlength", 60);
function update に以下を追加する
$obj->set('name', $this->get('name'));
本当はプリロードで対応するのかなぁ?
でも、機能をいじりたいわけではないので、いつも
modules/legacy/templates/legacy_site_closed.html
を直接編集しています。
でも、機能をいじりたいわけではないので、いつも
modules/legacy/templates/legacy_site_closed.html
を直接編集しています。
新規ユーザー登録時に管理者に飛ぶ承認キーメールをカスタマイズする。
テンプレートは modules/user/language/japanese/mail_template/adminactivate.tpl を編集すればいい。
language/japanese/mail_template/ にも同名のファイルがあるので間違えないように。
(実は、この罠にはまってしまった...)
文章を変えるだけでなく、項目も増やしたければ
/modules/user/class/RegistMailBuilder.class.php
に項目を追加する。
たとえば 150行目 (class User_RegistUsesrAdminActivateMailBuilder)
にこんな風に追加すれば「その他」に記入されたものを取ることができる。
(その前に登録時に「その他」を入力するように変更しなければダメだけどね...)
これでテンプレート中で{BIO}が使えるようになる。
「その他」は複数行入力可だから、このままだと <br /> が表示されてしまうが...
テンプレートは modules/user/language/japanese/mail_template/adminactivate.tpl を編集すればいい。
language/japanese/mail_template/ にも同名のファイルがあるので間違えないように。
(実は、この罠にはまってしまった...)
文章を変えるだけでなく、項目も増やしたければ
/modules/user/class/RegistMailBuilder.class.php
に項目を追加する。
たとえば 150行目 (class User_RegistUsesrAdminActivateMailBuilder)
にこんな風に追加すれば「その他」に記入されたものを取ることができる。
(その前に登録時に「その他」を入力するように変更しなければダメだけどね...)
$this->mMailer->assign('BIO', $user->getVar('bio'));
これでテンプレート中で{BIO}が使えるようになる。
「その他」は複数行入力可だから、このままだと <br /> が表示されてしまうが...