MODXバージョン 1.0.20J
PHPのバージョン 7.1.2
データベースのバージョン 5.6.23-log
お世話になります。
表題の通り、Modxの管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法をご教授戴きたく投稿しました。
このような事は可能でしょうか?
どうぞよろしくお願い致します。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法 【解決済み】
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
了解です、後ほどお知らせします
http://180221115628-7474.evo.demo.modx.jp/
PHPが少し分かるなら、[!$_SESSION!]とするといろいろ値を表示できます(管理画面要ログイン)
http://180221115628-7474.evo.demo.modx.jp/
PHPが少し分かるなら、[!$_SESSION!]とするといろいろ値を表示できます(管理画面要ログイン)
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
Yamaさま
いつもありがとうございます。
拝見させて戴きました。
こうすると、ログインしている人の情報が出るのですね。ありがとうございます。
登録している人全員の情報を出したいのですが、可能でしょうか。
いつもありがとうございます。
拝見させて戴きました。
こうすると、ログインしている人の情報が出るのですね。ありがとうございます。
登録している人全員の情報を出したいのですが、可能でしょうか。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法 【解決済み】
どういうケースで使うのかわかりませんが、こんな方法もあります。
雑なコードですが、$modx->db->queryでクエリを投げて直接データベースから情報を引き出す方法になります。ユーザ情報はセンシティブな情報を含むので使い方には注意が必要ですが、取得する内容を限定・制御して利用する分には、こういう方法もアリかと思います。
ログイン名は[prefix]_manager_usersテーブルの「username」カラム、フルネームとメールは[prefix]_user_attributesテーブルの「fullname」と「email」カラムと、それぞれ別のテーブルにあるため、一意で共通となるidを基準にINNER JOIN結合して必要な情報を引き出します。テーブルプレフィックスがデフォルトでなければ、クエリ内のテーブル名を書き換えます。
表側で一覧出力とかしたいような場合は、while内の出力フォーマットを適当に整えてスニペット登録すればどこでも使えるようになるでしょう。
コード: 全て選択
$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>';
}
}
ログイン名は[prefix]_manager_usersテーブルの「username」カラム、フルネームとメールは[prefix]_user_attributesテーブルの「fullname」と「email」カラムと、それぞれ別のテーブルにあるため、一意で共通となるidを基準にINNER JOIN結合して必要な情報を引き出します。テーブルプレフィックスがデフォルトでなければ、クエリ内のテーブル名を書き換えます。
表側で一覧出力とかしたいような場合は、while内の出力フォーマットを適当に整えてスニペット登録すればどこでも使えるようになるでしょう。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
mod_kks様
ありがとうございます!
この様な方法があるのですね。ご指摘の通り管理側の情報も全部さらけ出てしまうので注意が必要ですね。
無茶な質問に対して丁重に解説戴きまして本当に有難うございました。
ありがとうございます!
この様な方法があるのですね。ご指摘の通り管理側の情報も全部さらけ出てしまうので注意が必要ですね。
無茶な質問に対して丁重に解説戴きまして本当に有難うございました。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
すいません遅くなりました
最新版だとこう書くこともできます
http://180316215905-28288.evo.demo.modx.jp/
コード: 全て選択
$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で表示される方法
なるほど、$modx->db->select はパラメタ配列渡し可になってるんですね。
これは便利ですね。ありがとうございます。
これは便利ですね。ありがとうございます。
管理画面「権限管理」→「ユーザー管理」のそれぞれの情報「ログイン名」「フルネーム」「メールアドレス」をPHPで表示される方法
Yama様
参考になります!ありがとうございました。
参考になります!ありがとうございました。