Xoops Tips 管理ユーザの編集画面:項目の追加、削除
photo by sungazing
ユーザモジュール>テンプレートファイルuser_edit.htmlを編集
ファイルの場所は、Root\modules\user\admin\templates以下となります。
このファイルは、Xoops管理画面内、ALTSYSなどから編集して反映させるのではなく、フ該当ファイルを直接編集することになりますのでバックアップをお忘れなく。
データ更新は、MySQLに対してSQL文の”Update”を発行する必要があるため、XoopsコアファイルにてUpdate文を編集する必要があります。
管理ユーザの編集画面、項目の削除
削除というか、非表示処理となります。
user_edit.html内の該当するHTML部分をコメントアウト、または削除します。
これで、表示されなくなります。
今回は特に、デフォルトから非表示処理する項目がなかったのでこれは飛ばしました。
アカウント編集画面、項目の追加
前回、アカウント新規登録時に項目を追加した”hoge”項目を表示します。
- user_edit.html内に該当するコードを追加します。
- HTML input属性 ”name”に追加したい項目名を入力。
- HTML input属性 ”size”に表示したいサイズを入力。
- HTML input属性 ”maxlength”に最大文字数を入力。
- getに追加したい項目名を入力。
<tr> <td class="head">新規追加項目hoge</td> <td class="<{cycle values="odd,even"}>"> <{xoops_input type=text name=hoge value=$actionForm->get('hoge') size=30 maxlength=100}> </td> </tr>
ここまでの処理では、新規項目”hoge”の入力欄は表示されますが、実際のデータも反映されないし、更新も効きません。
まずは、現在のデータ値を項目欄に表示します。
Root/modeules/user/forms/UserAdminEditForm.class.phpの修正
- UserAdminEditForm.class.php内、User_User_UserAdminEditFormクラス>Function prepare>set propertiesに追加項目を追加。
-
$this->mFormProperties['hoge'] =& new XCube_StringProperty('hoge');
- UserAdminEditForm.class.php内、User_UserAdminEditFormクラス>Function loadに項目を追加。
-
$this->set('hoge', $obj->get('hoge'));
この処理で、新規追加項目の”hoge”に格納されている、実際のデータが表示されるようになります。
Updateができるよう、編集
- EditUserForm.class.php内、User_UserAdminEditFormクラス>Function updateに項目を追加。
-
$obj->set('hoge', $this->get('hoge'));
- Update文の修正がまだ済んでいない場合は、Root/kernel/user.phpのUpdate文を修正
-
Function ”insert”内の
$sql = sprintf(“UPDATE %s SET uname = %s, ~
この一行がUpdate文で、更新時に発行されます。
ここへ、追加項目の、”hoge”がUpdateされるよう追記します。
以上の処理で、アカウント編集画面に追加項目が表示され、編集が可能となります。
関連するエントリー
- None Found