public static function ExportUser::exportUserOperation in Open Social 8.3
Same name and namespace in other branches
- 8 modules/social_features/social_user_export/src/ExportUser.php \Drupal\social_user_export\ExportUser::exportUserOperation()
- 8.2 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) {
$type = \Drupal::service('plugin.manager.user_export_plugin');
$plugin_definitions = $type
->getDefinitions();
// Check if headers exists.
if (empty($context['results']['headers'])) {
$headers = [];
/** @var \Drupal\social_user_export\Plugin\UserExportPluginBase $instance */
foreach ($plugin_definitions as $plugin_id => $plugin_definition) {
$instance = $type
->createInstance($plugin_id);
$headers[] = $instance
->getHeader();
}
$context['results']['headers'] = $headers;
}
// Create the file if applicable.
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('\\');
$csv
->insertOne($context['results']['headers']);
}
else {
$csv = Writer::createFromPath($context['results']['file_path'], 'a');
}
// Add formatter.
$csv
->addFormatter([
new CsvEncoder(),
'formatRow',
]);
$row = [];
/** @var \Drupal\social_user_export\Plugin\UserExportPluginBase $instance */
foreach ($plugin_definitions as $plugin_id => $plugin_definition) {
$instance = $type
->createInstance($plugin_id);
$row[] = $instance
->getValue($entity);
}
$csv
->insertOne($row);
$context['message'] = t('Exporting: @name', [
'@name' => $entity
->getAccountName(),
]);
}