Drupal 7.でCSVにユーザーをエクスポートしたいと思います。モジュール Views Data Export を使用できると思いますが、その方法がわからない、またはそれが私が望む正しいモジュールであるなら。
はい、 ビューデータのエクスポート が最適です。
ユーザーを表示するビューを作成し、ページ表示を追加します。エクスポートに必要なフィールドを追加し、必要に応じてその他の設定を変更します。
次に、データエクスポートタイプのディスプレイを追加し、ページディスプレイにアタッチするように設定します。このようにして、ファイルのダウンロードへのリンクをそのページに追加します(ページ表示をスキップして、パスが定義されたデータエクスポート表示のみを追加することもできます)。
形式設定でエクスポート形式(CSV)を選択します。多くのユーザーがいる場合は、[データエクスポート設定]でバッチ操作を選択してください。
ビューにアクセスするには、特定の権限またはロールを要求することもお勧めします。
はい、 Views Data Export が適切なモジュールですが、大きなデータファイルがある場合は、次のような適切なPHP制限を増やす必要があります。PHP _max_execution_time
_および_memory_limit
_(バッチプロセスを使用している場合を除く)。特にサポートされているdrush経由のエクスポートを使用する場合は、制限を増やす必要があります(別のPHP設定ファイルを使用していることに注意してください)。
カスタム関数を使用してユーザーをエクスポートするには、以下を確認してください すべてのユーザーをCSV形式でエクスポートするにはどうすればよいですか?
これは基本的に、いくつかのコールバック関数内で使用できる次のカスタムコードです。
_drupal_add_http_header('Content-Type', 'text/csv');
drupal_add_http_header('Content-Disposition', 'attachment; filename=users.csv');
$results = db_query("SELECT * FROM {users}");
$csvdata = 'Uid,Username,Email' . PHP_EOL;
foreach ($results as $record) {
$row = array();
$row[] = $record->uid;
$row[] = $record->name;
$row[] = $record->mail;
$csvdata .= implode(',', $row) . PHP_EOL;
}
print $csvdata;
drupal_exit();
_
ユーザーからのカスタムフィールドを含めるには、以下を使用できます。
drupal_add_http_header('Content-Type', 'text/csv');
drupal_add_http_header('Content-Disposition', 'attachment; filename=users.csv');
$csvdata = 'Uid,Username,Email,Firstname' . PHP_EOL;
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'user');
$result = $query->execute();
$uids = array_keys($result['user']);
// THIS IS YOUR ARRAY OF UIDS.
$users = user_load_multiple($uids);
foreach ($users as $record) {
$row = array();
$row[] = $record->uid;
$row[] = $record->name;
$row[] = $record->mail;
// Custom fields, for example
$row[] = $record->field_first_name_user['und'][0]['value'] ?? '';
$csvdata .= implode(',', $row) . PHP_EOL;
}
print $csvdata;
drupal_exit();
それが役に立てば幸い!
これらの要件に対処する別のオプションは、以下で詳しく説明するように、 Forena モジュールを使用することです。
インストール/有効化すると、すぐに使用できるDrupal Administrationレポートが表示されます(他の多くのレポートの中で)それとともに配信されます:
+-----------+-----------------------+-------------------------+---------+
| User | Email | Last Logged in | Actions |
+-----------+-----------------------+-------------------------+---------+
| Webmaster | [email protected] | Sun, 03/27/2016 - 18:39 | logs |
| Admin | [email protected] | Thu, 04/07/2016 - 12:47 | logs |
| Pierre | [email protected] | Fri, 04/01/2016 - 18:19 | logs |
+-----------+-----------------------+-------------------------+---------+
ハイパーリンク「ログ」(「アクション」というタイトルの列)を使用して、「タイプ」、「メッセージ」、「タイムスタンプ」、および選択したログレコードの詳細(「重大度」、「ホスト名」など)を表示する後続のハイパーリンク(「詳細」).
使用可能なロール(=レポートパラメータ)を選択すると、次の例のようなレポートが表示されます。
+-----------+---------+------------------------------+
| User Name | User Id | Actions |
+-----------+---------+------------------------------+
| Admin | 1 | View Profile Edit Profile |
| Webmaster | 8 | View Profile Edit Profile |
+-----------+---------+------------------------------+
ハイパーリンク[プロファイルの表示]/[プロファイルの編集]を使用して、選択したユーザーのプロファイルを実際に表示/編集できます。
オプションで、これらのレポートをカスタマイズする場合は、そのレポート作成機能を使用できます。 WYSIWYGレポートライターやForenaクエリビルダー(Forenaがサブモジュールとして付属)などを使用して、ニーズに合ったクエリ/レポートを最初に作成します。このクエリ作成ツールに関するビデオチュートリアルについては、チェックアウト オプションのフィルターでデータブロックを定義 をご覧ください。
そのすべての結果は、表形式の出力やグラフになる可能性があります。レポートの内容が仕様と一致したら、それを(たとえば)CSVファイルとして保存できます。レポートを保存するためにサポートされている他の形式は、XLS、DOC、HTML、PDFなどです。
ビデオのデモとチュートリアル には、Forenaに関するライブデモへのリンクがかなり含まれています。