ページ 1 / 1
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
Posted: 2018年2月19日(月) 10:50
by Kenny
MODXバージョン 1.0.20J
PHPのバージョン 7.1.2
データベースのバージョン 5.6.23-log
お世話になります。
表題の通り、Modxの管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法をご教授戴きたく投稿しました。
このような事は可能でしょうか?
どうぞよろしくお願い致します。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
Posted: 2018年2月21日(水) 12:30
by yama
了解です、後ほどお知らせします
http://180221115628-7474.evo.demo.modx.jp/
PHPが少し分かるなら、[!$_SESSION!]とするといろいろ値を表示できます(管理画面要ログイン)
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
Posted: 2018年2月22日(木) 10:28
by Kenny
Yamaさま
いつもありがとうございます。
拝見させて戴きました。
こうすると、ログインしている人の情報が出るのですね。ありがとうございます。
登録している人全員の情報を出したいのですが、可能でしょうか。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法 【解決済み】
Posted: 2018年3月14日(水) 23:54
by mod_kks
どういうケースで使うのかわかりませんが、こんな方法もあります。
コード: 全て選択
$query = 'SELECT modx_manager_users.id,username,fullname,email FROM modx_manager_users INNER JOIN modx_user_attributes ON modx_user_attributes.id = modx_manager_users.id;';
$result = $modx->db->query( $query );
if( $result ) {
while ( $row = $modx->db->getRow( $result ) ) {
echo '<p>' . $row['id'] . ':' . $row['username'] . ':' . $row['fullname'] . ':' . $row['email'] . '</p>';
}
}
雑なコードですが、$modx->db->queryでクエリを投げて直接データベースから情報を引き出す方法になります。ユーザ情報はセンシティブな情報を含むので使い方には注意が必要ですが、取得する内容を限定・制御して利用する分には、こういう方法もアリかと思います。
ログイン名は[prefix]_manager_usersテーブルの「username」カラム、フルネームとメールは[prefix]_user_attributesテーブルの「fullname」と「email」カラムと、それぞれ別のテーブルにあるため、一意で共通となるidを基準にINNER JOIN結合して必要な情報を引き出します。テーブルプレフィックスがデフォルトでなければ、クエリ内のテーブル名を書き換えます。
表側で一覧出力とかしたいような場合は、while内の出力フォーマットを適当に整えてスニペット登録すればどこでも使えるようになるでしょう。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
Posted: 2018年3月15日(木) 16:59
by Kenny
mod_kks様
ありがとうございます!
この様な方法があるのですね。ご指摘の通り管理側の情報も全部さらけ出てしまうので注意が必要ですね。
無茶な質問に対して丁重に解説戴きまして本当に有難うございました。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
Posted: 2018年3月16日(金) 22:09
by yama
すいません遅くなりました
コード: 全て選択
$field = 'u.*, ua.*';
$from[] = 'modx_manager_users u';
$from[] = 'LEFT JOIN modx_user_attributes ua ON ua.id = u.id';
$result = $modx->db->select($field, $from);
$tpl = '<p>ID:[+id+] 名前:[+fullname+] メアド:[+email+] 最終ログイン:[+thislogin:date(n月j日 H:i:s)+]</p>';
while ( $row = $modx->db->getRow( $result ) ) {
unset($row['password'],$row['sessionid']);
echo $modx->parseText($tpl, $row);
}
最新版だとこう書くこともできます
http://180316215905-28288.evo.demo.modx.jp/
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
Posted: 2018年3月17日(土) 00:20
by mod_kks
なるほど、$modx->db->select はパラメタ配列渡し可になってるんですね。
これは便利ですね。ありがとうございます。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
Posted: 2018年3月19日(月) 10:29
by Kenny
Yama様
参考になります!ありがとうございました。