Как экспортировать пользователей в CSV-файл?


Я хотел бы экспортировать пользователей в CSV в Drupal 7. Я полагаю, что могу использовать модуль Для экспорта данных , но я не уверен, как это сделать, или если это правильный модуль, который я хотел бы.

Author: Pierre.Vriens, 2012-08-07

4 answers

Да, Экспорт данных просмотров - ваш лучший выбор.

Создайте представление, отображающее пользователей, и добавьте отображение страницы. Добавьте нужные поля в свой экспорт и измените любые дополнительные настройки, которые вы хотите.

Затем добавьте отображение типа Экспорт данных и установите его для прикрепления к отображению страницы. Таким образом, он добавит ссылку на загрузку файла на эту страницу (вы, вероятно, также можете пропустить отображение страницы и добавить только отображение экспорта данных с определенным путем).

Выберите свой формат экспорта (CSV) в настройках формата. Если у вас много пользователей, обязательно выберите пакетную операцию в разделе "Настройки экспорта данных".

Также рекомендуется требовать определенного разрешения или роли для доступа к представлению.

 10
Author: arjan, 2015-11-03 20:13:16

Да, Экспорт данных представлений является правильным модулем, но если у вас большие файлы данных, вам необходимо увеличить соответствующие ограничения 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();
 2
Author: kenorb, 2017-04-13 12:47:06

Еще одним вариантом решения этих требований является использование модуля Forena, как описано ниже.

Представленные отчеты

После того, как вы установите/включите его, вы получите эти готовые Администрирование Drupal отчеты, которые поставляются вместе с ним (среди многих других отчетов):

1) Активные пользователи

+-----------+-----------------------+-------------------------+---------+
| 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    |
+-----------+-----------------------+-------------------------+---------+

Используя гиперссылку "Журналы" (в столбце "Действия"), вы получаете новый отчет (= Журналы для пользователя), показывающий самый последний журнал записи для выбранного пользователя с "типом", "сообщением", "отметкой времени" и последующей гиперссылкой ("подробности"), которая покажет дополнительные сведения для выбранной записи журнала (такие как "серьезность", "имя хоста" и т. Д.).

2) Детали роли

После выбора любой из доступных ролей (= параметр отчета) вы получите отчет, который выглядит как в этом примере:

+-----------+---------+------------------------------+
| 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.

 0
Author: Pierre.Vriens, 2016-08-10 16:42:37

Для включения пользовательских полей от ваших пользователей вы можете использовать:

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();

Надеюсь, это поможет!

 0
Author: Jarkko Oksanen, 2019-03-04 09:44:24