class ExportController in Term CSV Export Import 8.3
Same name and namespace in other branches
- 8 src/Controller/ExportController.php \Drupal\term_csv_export_import\Controller\ExportController
- 8.2 src/Controller/ExportController.php \Drupal\term_csv_export_import\Controller\ExportController
Class ExportController.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\term_csv_export_import\Controller\ExportController
Expanded class hierarchy of ExportController
1 file declares its use of ExportController
- ExportForm.php in src/
Form/ ExportForm.php
File
- src/
Controller/ ExportController.php, line 11
Namespace
Drupal\term_csv_export_import\ControllerView source
class ExportController extends ControllerBase {
/**
* The vocabulary storage.
*
* @var \Drupal\taxonomy\Entity\Vocabulary
*/
protected $vocabulary;
/**
* The taxonomy term storage.
*
* @var \Drupal\taxonomy\TermStorageInterface
*/
protected $termStorage;
/**
* Export Variable.
*
* @var \Drupal\Core\Config\StorageInterface
*/
public $export;
/**
* {@inheritdoc}
*/
public function __construct(TermStorage $term_storage, $vocabulary) {
$this->termStorage = $term_storage;
$this->vocabulary = $vocabulary;
}
/**
* {@inheritdoc}
*/
public function execute($include_ids, $include_headers, $include_fields) {
$terms = $this->termStorage
->loadTree($this->vocabulary);
$fp = fopen('php://memory', 'rw');
$standardTaxonomyFields = [
'tid',
'uuid',
'langcode',
'vid',
'name',
'status',
'revision_id',
'description__value',
'description__format',
'weight',
'parent_name',
'parent',
'changed',
'default_langcode',
'path',
];
$to_export = [];
if ($include_headers) {
$to_export = [
'name',
'status',
'description__value',
'description__format',
'weight',
'parent_name',
];
if ($include_ids) {
$to_export = array_merge([
'tid',
'uuid',
], $to_export);
$to_export[] = 'parent_tid';
array_splice($to_export, 4, 0, 'revision_id');
}
if ($include_fields) {
$to_export[] = 'fields';
}
}
fputcsv($fp, $to_export);
foreach ($terms as $term) {
$parents = $this->termStorage
->loadParents($term->tid);
$parent_names = '';
$parent_ids = '';
$to_export = [];
if (!empty($parents)) {
foreach ($parents as $parent) {
$parent_names .= $parent
->getName() . ';';
$parent_ids .= $parent
->id() . ';';
}
}
$to_export = [
$term->name,
$term->status,
$term->description__value,
$term->description__format,
$term->weight,
$parent_names,
];
if ($include_ids) {
$to_export = array_merge([
$term->tid,
$this->termStorage
->load($term->tid)
->uuid(),
], $to_export);
$to_export[] = $parent_ids;
array_splice($to_export, 4, 0, $this->termStorage
->load($term->tid)
->getRevisionId());
}
if ($include_fields) {
$field_export = [];
foreach ($this->termStorage
->load($term->tid)
->getFields() as $field) {
if (!in_array($field
->getName(), $standardTaxonomyFields)) {
foreach ($field
->getValue() as $values) {
foreach ($values as $value) {
// Skip type ($key) here. More complicated, seems unnecessary.
$field_export[$field
->getName()][] = $value;
}
}
}
}
$fields = http_build_query($field_export);
$to_export[] = $fields;
}
fputcsv($fp, $to_export);
}
rewind($fp);
while (!feof($fp)) {
$this->export .= fread($fp, 8192);
}
fclose($fp);
return $this->export;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
40 |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
ExportController:: |
public | property | Export Variable. | |
ExportController:: |
protected | property | The taxonomy term storage. | |
ExportController:: |
protected | property | The vocabulary storage. | |
ExportController:: |
public | function | ||
ExportController:: |
public | function | ||
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |