public static function ExportUser::exportUserOperation in Open Social 8.2
Same name and namespace in other branches
- 8 modules/social_features/social_user_export/src/ExportUser.php \Drupal\social_user_export\ExportUser::exportUserOperation()
- 8.3 modules/social_features/social_user_export/src/ExportUser.php \Drupal\social_user_export\ExportUser::exportUserOperation()
- 8.4 modules/social_features/social_user_export/src/ExportUser.php \Drupal\social_user_export\ExportUser::exportUserOperation()
Callback of one operation.
Parameters
\Drupal\user\UserInterface $entity: UserInterface entity.
array $context: Context of the operation.
1 call to ExportUser::exportUserOperation()
- ExportUser::exportUsersAllOperation in modules/
social_features/ social_user_export/ src/ ExportUser.php - Callback of massive operations.
File
- modules/
social_features/ social_user_export/ src/ ExportUser.php, line 27
Class
- ExportUser
- Class ExportUser.
Namespace
Drupal\social_user_exportCode
public static function exportUserOperation(UserInterface $entity, array &$context) {
$moduleHandler = \Drupal::service('module_handler');
if (empty($context['results']['file_path'])) {
$context['results']['file_path'] = self::getFileTemporaryPath();
$csv = Writer::createFromPath($context['results']['file_path'], 'w');
$csv
->setDelimiter(',');
$csv
->setEnclosure('"');
$csv
->setEscape('\\');
// Append header.
$headers = [
t('ID'),
t('UUID'),
t('First name'),
t('Last name'),
t('Username'),
t('Display name'),
t('Email'),
t('Last login'),
t('Last access'),
t('Registration date'),
t('Status'),
t('Roles'),
t('Posts created'),
t('Comments created'),
t('Topics created'),
t('Events enrollments'),
t('Events created'),
t('Groups created'),
t('Number of Likes'),
];
// Add number of private messages row header if the module is turned on.
if ($moduleHandler
->moduleExists('social_private_message')) {
$headers[] = t('Number of Private Messages');
}
$csv
->insertOne($headers);
}
else {
$csv = Writer::createFromPath($context['results']['file_path'], 'a');
}
// Add formatter.
$csv
->addFormatter([
new CsvEncoder(),
'formatRow',
]);
$roles = $entity
->getRoles();
$status = $entity
->get('status')
->getValue();
// Format last login time.
if ($last_login_time = $entity
->getLastLoginTime()) {
$last_login = \Drupal::service('date.formatter')
->format($last_login_time, 'custom', 'Y/m/d - H:i');
}
else {
$last_login = t('never');
}
// Format last access time.
if ($last_access_time = $entity
->getLastAccessedTime()) {
$last_access = \Drupal::service('date.formatter')
->format($last_access_time, 'custom', 'Y/m/d - H:i');
}
else {
$last_access = t('never');
}
// Add row.
$row = [
$entity
->id(),
$entity
->uuid(),
social_user_export_first_name($entity),
social_user_export_last_name($entity),
$entity
->getAccountName(),
$entity
->getDisplayName(),
$entity
->getEmail(),
$last_login,
$last_access,
\Drupal::service('date.formatter')
->format($entity
->getCreatedTime(), 'custom', 'Y/m/d - H:i'),
!empty($status[0]['value']) ? t('Active') : t('Blocked'),
implode(', ', $roles),
social_user_export_posts_count($entity),
social_user_export_comments_count($entity),
social_user_export_nodes_count($entity, 'topic'),
social_user_export_events_enrollments_count($entity),
social_user_export_nodes_count($entity, 'event'),
social_user_export_groups_count($entity),
social_user_export_likes_count($entity),
];
// Add number of private messages if the module is turned on.
if ($moduleHandler
->moduleExists('social_private_message')) {
$row[] = social_user_export_number_of_private_messages($entity);
}
$csv
->insertOne($row);
$context['message'] = t('Exporting: @name', [
'@name' => $entity
->getAccountName(),
]);
}