SampleCsv.php in Bulk User Registration 8
File
src/Controller/SampleCsv.php
View source
<?php
namespace Drupal\bulk_user_registration\Controller;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\Response;
class SampleCsv extends ControllerBase {
public function content() {
$response = new Response();
$response
->setContent($this
->getCsvData());
$response->headers
->set('Content-Type', 'text/csv');
$response->headers
->set('Content-Disposition', 'attachment; filename="bulk-user-registration-sample.csv"');
return $response;
}
protected function getCsvData() {
$rows[] = implode(',', $this
->wrap($this
->getFieldNames()));
$rows[] = 'active-user-default-role,mail1@example.com,1';
$rows[] = 'blocked-user-default-role,mail2@example.com,0';
$rows = array_merge($rows, $this
->getUserDataWithRole());
return implode("\n", $rows);
}
protected function getUserDataWithRole() {
$data = [];
$allowedRoles = \Drupal::config('bulk_user_registration.settings')
->get('allowed_roles');
foreach (array_filter($allowedRoles) as $role) {
$data[] = "user_{$role},mail.{$role}@example.com,1,{$role}";
}
return $data;
}
protected function getFieldNames() {
$standardFields = [
'username',
'email',
'status',
'role',
];
$extraFields = \Drupal::moduleHandler()
->invokeAll('bulk_user_registration_extra_fields');
return array_merge($standardFields, $extraFields);
}
protected function wrap($source) {
$strings = is_array($source) ? $source : [
$source,
];
$result = [];
foreach ($strings as $string) {
if (strpos($string, ' ') === FALSE) {
$result[] = $string;
}
else {
$result[] = '"' . $string . '"';
}
}
return is_array($source) ? $result : reset($result);
}
}