ウェブユーザの登録・削除・プロフィール編集、パスワードリマインダ、アクティベーション、ログイン・ログアウト等、
ウェブユーザまわりのたいていのことができてしまう
▼WebLoginPE
http://modxcms.com/extras/package/495
ですが、
いくつか不具合があり、すぐバージョンアップするのかと思いきや、いつまでたっても、新バージョンが出ないので、
私が把握している範囲で、不具合(バグなのか仕様の不備なのかは不明ですが)を報告しておきます。
#弊社の仕事をお手伝いいただいている方の報告をベースにしています。
■1.ウェブユーザを削除した際、拡張したプロフィール項目が、ごみとなって残る。
WebLoginPEの大きな特徴の一つが、プロフィール項目を拡張できることですが、
これは、WebLoginPEが、modx標準のテーブル以外に、独自のテーブルをDBに作ることで実現しています。
ところが、登録や変更は対応しているにかかわらず、ウェブユーザを削除する際に、
拡張したプロフィール項目を削除する機能が抜けています。
これは、「assets/sinppets/webloginpe/webloginpe.class.php」の「RemoveProfile」メソッド内の、
「$modx->db->query」が続いている最後(993行目)あたりに、以下のコードを追加すればOKです。
コード: 全て選択
$deleteCreateTable = $modx->db->query("DELETE FROM ".$this->CustomTable." WHERE
`internalKey`='".$internalKey."'");
管理画面のウェブユーザの管理機能では、拡張したプロフィール項目は表示されませんし、
ウェブユーザを削除した際、拡張したプロフィール項目が、ごみとなって残ります。
ウェブユーザ削除時にデータを消すようにするには、
システムイベントの「OnWUsrFormDelete」を使って、
前述のようなコードをプラグインで実行すれば良いような気もしますが、未確認です。
プラグインとスニペットのパラメータを同じにする必要があるので、
これだけでは、保守性に少し問題があるかもしれません。
■3.プロフィール変更時に必須項目チェックが効かない。
ウェブユーザ登録時には、必須チェックが効くのに、
プロフィール変更時にそれをチェックする機能がまるまる抜けているので、チェックが効きません。
■4.エラーメッセージがハードコーディングされている箇所がある。
「assets/sinppets/webloginpe/webloginpe.class.php」の2922行目
■5.デフォルトテンプレートのボタンのvalueがデフォルトと違っている。
WebLoginPEは、6つの機能セット('simple', 'register', 'profile', 'users', 'manager', 'taconite')があって、
デフォルトは'simple'で、ほぼすべての機能(login, logout, profile, saveprofilesimple, deleteprofilesimple, confirmdeleteprofilesimple, registernew, register, forgot, resetpassword, activate, activated)が使えます。
それに対し、
プロフィール変更や削除などのフォームのボタンのvalueは、「<処理名>+<機能セット名>」とする仕様になっていて、
たとえば、
デフォルトの「simple」機能セットでは、プロフィール変更を保存するボタンは「saveprofilesimple」にしなければなりません。
ところが、デフォルトのテンプレートでは、これが「saveprofile」までで、その後が無いため、このままでは使えません。