class ConfigTranslationEntityListBuilder
Same name in other branches
- 9 core/modules/config_translation/src/Controller/ConfigTranslationEntityListBuilder.php \Drupal\config_translation\Controller\ConfigTranslationEntityListBuilder
- 10 core/modules/config_translation/src/Controller/ConfigTranslationEntityListBuilder.php \Drupal\config_translation\Controller\ConfigTranslationEntityListBuilder
- 11.x core/modules/config_translation/src/Controller/ConfigTranslationEntityListBuilder.php \Drupal\config_translation\Controller\ConfigTranslationEntityListBuilder
Defines the configuration translation list builder for entities.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait
- class \Drupal\Core\Entity\EntityListBuilder extends \Drupal\Core\Entity\EntityHandlerBase implements \Drupal\Core\Entity\EntityListBuilderInterface, \Drupal\Core\Entity\EntityHandlerInterface uses \Drupal\Core\Messenger\MessengerTrait, \Drupal\Core\Routing\RedirectDestinationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder extends \Drupal\Core\Entity\EntityListBuilder
- class \Drupal\config_translation\Controller\ConfigTranslationEntityListBuilder extends \Drupal\Core\Config\Entity\ConfigEntityListBuilder implements \Drupal\config_translation\Controller\ConfigTranslationEntityListBuilderInterface
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder extends \Drupal\Core\Entity\EntityListBuilder
- class \Drupal\Core\Entity\EntityListBuilder extends \Drupal\Core\Entity\EntityHandlerBase implements \Drupal\Core\Entity\EntityListBuilderInterface, \Drupal\Core\Entity\EntityHandlerInterface uses \Drupal\Core\Messenger\MessengerTrait, \Drupal\Core\Routing\RedirectDestinationTrait
Expanded class hierarchy of ConfigTranslationEntityListBuilder
File
-
core/
modules/ config_translation/ src/ Controller/ ConfigTranslationEntityListBuilder.php, line 11
Namespace
Drupal\config_translation\ControllerView source
class ConfigTranslationEntityListBuilder extends ConfigEntityListBuilder implements ConfigTranslationEntityListBuilderInterface {
/**
* Provides user facing strings for the filter element.
*
* @return array
*/
protected function getFilterLabels() {
return [
'placeholder' => $this->t('Enter label'),
'description' => $this->t('Enter a part of the label or description to filter by.'),
];
}
/**
* {@inheritdoc}
*/
public function render() {
$build = parent::render();
$filter = $this->getFilterLabels();
usort($build['table']['#rows'], [
$this,
'sortRows',
]);
$build['filters'] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'table-filter',
'js-show',
],
],
'#weight' => -10,
];
$build['filters']['text'] = [
'#type' => 'search',
'#title' => $this->t('Search'),
'#size' => 30,
'#placeholder' => $filter['placeholder'],
'#attributes' => [
'class' => [
'table-filter-text',
],
'data-table' => '.config-translation-entity-list',
'autocomplete' => 'off',
'title' => $filter['description'],
],
];
$build['table']['#attributes']['class'][] = 'config-translation-entity-list';
$build['table']['#weight'] = 0;
$build['#attached']['library'][] = 'system/drupal.system.modules';
return $build;
}
/**
* {@inheritdoc}
*/
public function buildRow(EntityInterface $entity) {
$row['label']['data'] = $entity->label();
$row['label']['class'][] = 'table-filter-text-source';
return $row + parent::buildRow($entity);
}
/**
* {@inheritdoc}
*/
public function buildHeader() {
$header['label'] = $this->t('Label');
return $header + parent::buildHeader();
}
/**
* {@inheritdoc}
*/
public function getOperations(EntityInterface $entity) {
$operations = parent::getOperations($entity);
foreach (array_keys($operations) as $operation) {
// This is a translation UI for translators. Show the translation
// operation only.
if (!($operation == 'translate')) {
unset($operations[$operation]);
}
}
return $operations;
}
/**
* {@inheritdoc}
*/
public function sortRows($a, $b) {
return $this->sortRowsMultiple($a, $b, [
'label',
]);
}
/**
* Sorts an array by multiple criteria.
*
* @param array $a
* First item for comparison.
* @param array $b
* Second item for comparison.
* @param array $keys
* The array keys to sort on.
*
* @return int
* The comparison result for uasort().
*/
protected function sortRowsMultiple($a, $b, $keys) {
$key = array_shift($keys);
$a_value = is_array($a) && isset($a[$key]['data']) ? $a[$key]['data'] : '';
$b_value = is_array($b) && isset($b[$key]['data']) ? $b[$key]['data'] : '';
if ($a_value == $b_value && !empty($keys)) {
return $this->sortRowsMultiple($a, $b, $keys);
}
return strnatcasecmp($a_value, $b_value);
}
/**
* {@inheritdoc}
*/
public function setMapperDefinition($mapper_definition) {
// @todo Why is this method called on all config list controllers?
return $this;
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
ConfigEntityListBuilder::getDefaultOperations | public | function | Gets this list's default operations. | Overrides EntityListBuilder::getDefaultOperations | 15 | |
ConfigEntityListBuilder::load | public | function | Loads entities of this type from storage for listing. | Overrides EntityListBuilder::load | 7 | |
ConfigTranslationEntityListBuilder::buildHeader | public | function | Builds the header row for the entity listing. | Overrides EntityListBuilder::buildHeader | 2 | |
ConfigTranslationEntityListBuilder::buildRow | public | function | Builds a row for an entity in the entity listing. | Overrides EntityListBuilder::buildRow | 2 | |
ConfigTranslationEntityListBuilder::getFilterLabels | protected | function | Provides user facing strings for the filter element. | 2 | ||
ConfigTranslationEntityListBuilder::getOperations | public | function | Provides an array of information to build a list of operation links. | Overrides EntityListBuilder::getOperations | ||
ConfigTranslationEntityListBuilder::render | public | function | Builds the entity listing as renderable array for table.html.twig. | Overrides EntityListBuilder::render | ||
ConfigTranslationEntityListBuilder::setMapperDefinition | public | function | Sets the config translation mapper definition. | Overrides ConfigTranslationEntityListBuilderInterface::setMapperDefinition | 1 | |
ConfigTranslationEntityListBuilder::sortRows | public | function | Sorts an array by value. | Overrides ConfigTranslationEntityListBuilderInterface::sortRows | 2 | |
ConfigTranslationEntityListBuilder::sortRowsMultiple | protected | function | Sorts an array by multiple criteria. | |||
DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | |||
DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | |||
DependencySerializationTrait::__sleep | public | function | 1 | |||
DependencySerializationTrait::__wakeup | public | function | 2 | |||
EntityHandlerBase::$moduleHandler | protected | property | The module handler to invoke hooks on. | 2 | ||
EntityHandlerBase::moduleHandler | protected | function | Gets the module handler. | 2 | ||
EntityHandlerBase::setModuleHandler | public | function | Sets the module handler for this handler. | |||
EntityListBuilder::$entityType | protected | property | Information about the entity type. | |||
EntityListBuilder::$entityTypeId | protected | property | The entity type ID. | |||
EntityListBuilder::$limit | protected | property | The number of entities to list per page, or FALSE to list all entities. | 3 | ||
EntityListBuilder::$storage | protected | property | The entity storage class. | 1 | ||
EntityListBuilder::buildOperations | public | function | Builds a renderable list of operation links for the entity. | 2 | ||
EntityListBuilder::createInstance | public static | function | Instantiates a new instance of this entity handler. | Overrides EntityHandlerInterface::createInstance | 20 | |
EntityListBuilder::ensureDestination | protected | function | Ensures that a destination is present on the given URL. | |||
EntityListBuilder::getEntityIds | protected | function | Loads entity IDs using a pager sorted by the entity id. | 4 | ||
EntityListBuilder::getLabel | Deprecated | protected | function | Gets the label of an entity. | ||
EntityListBuilder::getStorage | public | function | Gets the entity storage. | Overrides EntityListBuilderInterface::getStorage | ||
EntityListBuilder::getTitle | protected | function | Gets the title of the page. | 1 | ||
EntityListBuilder::__construct | public | function | Constructs a new EntityListBuilder object. | 16 | ||
MessengerTrait::$messenger | protected | property | The messenger. | 17 | ||
MessengerTrait::messenger | public | function | Gets the messenger. | 17 | ||
MessengerTrait::setMessenger | public | function | Sets the messenger. | |||
RedirectDestinationTrait::$redirectDestination | protected | property | The redirect destination service. | 1 | ||
RedirectDestinationTrait::getDestinationArray | protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |||
RedirectDestinationTrait::getRedirectDestination | protected | function | Returns the redirect destination service. | |||
RedirectDestinationTrait::setRedirectDestination | public | function | Sets the redirect destination service. | |||
StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | |||
StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | |||
StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | |||
StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | |||
StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | ||
StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.