ユーザー情報を利用する
MODxにログインしている時にユーザー情報を利用する方法。
※PHxを使用すれば、PlaceHolderで簡単に利用できますが、今回はPHx利用するとパースエラーが出るケースでの対応。
(スニペットに記述する)
$test = $modx->getLoginUserID();
if ($test) {
$arrUserInfo= $modx->getWebUserInfo($test);
} else {
$arrUserInfo= “”;
}
これで変数$arrUserInfoに(ログインしている)ユーザー情報が配列で格納されます。
それをPHP内でprint_rで確認してみましょう。
print_r($arrUserInfo);
とPHP内に記述しておくと・・・
Array (
[username] => yajima
[password] => b554****9d28****47b****9a86****2
[id] => 14
[internalKey] => 15
[fullname] => ヤジマ
[role] => 0
[email] => yajima@******.jp
[phone] => 090-****-****
[mobilephone] =>
[blocked] => 0
[blockeduntil] => 1208147688
[blockedafter] => 0
[logincount] => 15
[lastlogin] => 1208595922
[thislogin] => 1208598963
[failedlogincount] => 0
[sessionid] => f4****p33v********36p7****
[dob] => 0
[gender] => 0
[country] => 107
[state] => 東京都新宿区****-****-****
[zip] => 169-0074
[fax] =>
[photo] =>
[comment] =>
[usertype] => web )
こんな感じでユーザー情報が、確認できます。 (一部の情報は(*)で伏せさせて頂きました)
それぞれの内容は、
- username ・・・ログインユーザー名
- password ・・・パスワードのハッシュ値
- id ・・・ユーザーID
- internalKey ・・・(不明、調査中)
- fullname ・・・名前
- role ・・・(不明、調査中)
- email ・・・メールアドレス
- phone ・・・電話番号
- mobilephone ・・・携帯電話番号
- blocked ・・・アクセス拒否されているかどうか(アクセス拒否(1)、アクセス許可(0))
- blockeduntil ・・・アクセス拒否される日付の期限
- blockedafter ・・・アクセス拒否される日付の開始日
- logincount ・・・ログイン回数
- lastlogin ・・・最終ログイン日(現在ログインしている場合はその直前のログイン)
- thislogin ・・・現在のログイン日
- failedlogincount ・・・ログイン失敗回数
- sessionid ・・・セッションID
- dob ・・・(不明、調査中)
- gender ・・・性別
- country ・・・国名(日本:107)
- state ・・・県/州(住所)
- zip ・・・郵便番号
- fax ・・・Fax番号
- photo ・・・ユーザー画像
- comment ・・・コメント
- usertype ・・・ユーザータイプ(ウェブユーザー:web、ユーザー:manager)
例えば、ログインしたページで「○○さんようこそ!」なんて表示したい場合は、
if(isset($arrUserInfo[’fullname’])){
print $arrUserInfo[’fullname’] . ‘さんようこそ!’;
}
と言った風に記述すればOKですね。
さらに使いまわしたいなら、それぞれをPlaceHolderに登録すれば、シンプルにチャンクやテンプレートに記述できますね。







