class ContentModerationNotificationsListBuilder in Content Moderation Notifications 8
Same name and namespace in other branches
- 8.3 src/Controller/ContentModerationNotificationsListBuilder.php \Drupal\content_moderation_notifications\Controller\ContentModerationNotificationsListBuilder
- 8.2 src/Controller/ContentModerationNotificationsListBuilder.php \Drupal\content_moderation_notifications\Controller\ContentModerationNotificationsListBuilder
Provides a listing of content_moderation_notification entities.
List Controllers provide a list of entities in a tabular form. The base class provides most of the rendering logic for us. The key functions we need to override are buildHeader() and buildRow(). These control what columns are displayed in the table, and how each row is displayed respectively.
Drupal locates the list controller by looking for the "list" entry under "controllers" in our entity type's annotation. We define the path on which the list may be accessed in our module's *.routing.yml file. The key entry to look for is "_entity_list". In *.routing.yml, "_entity_list" specifies an entity type ID. When a user navigates to the URL for that router item, Drupal loads the annotation for that entity type. It looks for the "list" entry under "controllers" for the class to load.
@package Drupal\content_moderation_notifications\Controller
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\content_moderation_notifications\Controller\ContentModerationNotificationsListBuilder
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
Expanded class hierarchy of ContentModerationNotificationsListBuilder
File
- src/
Controller/ ContentModerationNotificationsListBuilder.php, line 29
Namespace
Drupal\content_moderation_notifications\ControllerView source
class ContentModerationNotificationsListBuilder extends ConfigEntityListBuilder {
/**
* Builds the header row for the entity listing.
*
* @return array
* A render array structure of header strings.
*
* @see Drupal\Core\Entity\EntityListController::render()
*/
public function buildHeader() {
$header['transition'] = $this
->t('Transitions');
$header['bundles'] = $this
->t('Enabled Bundles');
$header['roles'] = $this
->t('Email Roles');
$header['author'] = $this
->t('Email Author');
$header['emails'] = $this
->t('Adhoc Emails');
return $header + parent::buildHeader();
}
/**
* Builds a row for an entity in the entity listing.
*
* @param EntityInterface $entity
* The entity for which to build the row.
*
* @return array
* A render array of the table row for displaying the entity.
*
* @see Drupal\Core\Entity\EntityListController::render()
*/
public function buildRow(EntityInterface $entity) {
$row = array(
'transition' => '',
);
// Array of transitions used in each row.
$transition_strings = array();
// Loop through the saved transitions.
if ($entity->transitions) {
$transitions = array_keys(array_filter($entity->transitions));
}
foreach ($transitions as $transition) {
$transition = \Drupal::service('entity_type.manager')
->getStorage('moderation_state_transition')
->load($transition);
$from = \Drupal::service('entity_type.manager')
->getStorage('moderation_state')
->load($transition
->getFromState())
->label();
$to = \Drupal::service('entity_type.manager')
->getStorage('moderation_state')
->load($transition
->getToState())
->label();
$transition_strings[] = $from . ' to ' . $to;
}
$row['transition'] = implode(', ', $transition_strings);
$bundles = array();
if ($entity->bundles) {
$bundles = array_keys(array_filter($entity->bundles));
}
$roles = array();
if ($entity->roles) {
$roles = array_keys(array_filter($entity->roles));
}
$row['bundles'] = implode(', ', $bundles);
$row['roles'] = implode(', ', $roles);
$row['author'] = $entity->author ? 'Yes' : 'No';
$row['emails'] = $entity->emails;
return $row + parent::buildRow($entity);
}
/**
* Adds some descriptive text to our entity list.
*
* Typically, there's no need to override render(). You may wish to do so,
* however, if you want to add markup before or after the table.
*
* @return array
* Renderable array.
*/
public function render() {
$build['description'] = array(
'#markup' => $this
->t(""),
);
$build[] = parent::render();
return $build;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigEntityListBuilder:: |
public | function |
Gets this list's default operations. Overrides EntityListBuilder:: |
15 |
ConfigEntityListBuilder:: |
public | function |
Loads entities of this type from storage for listing. Overrides EntityListBuilder:: |
7 |
ContentModerationNotificationsListBuilder:: |
public | function |
Builds the header row for the entity listing. Overrides EntityListBuilder:: |
|
ContentModerationNotificationsListBuilder:: |
public | function |
Builds a row for an entity in the entity listing. Overrides EntityListBuilder:: |
|
ContentModerationNotificationsListBuilder:: |
public | function |
Adds some descriptive text to our entity list. Overrides EntityListBuilder:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
EntityHandlerBase:: |
protected | property | The module handler to invoke hooks on. | 2 |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 2 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityListBuilder:: |
protected | property | Information about the entity type. | |
EntityListBuilder:: |
protected | property | The entity type ID. | |
EntityListBuilder:: |
protected | property | The number of entities to list per page, or FALSE to list all entities. | 3 |
EntityListBuilder:: |
protected | property | The entity storage class. | 1 |
EntityListBuilder:: |
public | function | Builds a renderable list of operation links for the entity. | 2 |
EntityListBuilder:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityHandlerInterface:: |
20 |
EntityListBuilder:: |
protected | function | Ensures that a destination is present on the given URL. | |
EntityListBuilder:: |
protected | function | Loads entity IDs using a pager sorted by the entity id. | 4 |
EntityListBuilder:: |
protected | function | Gets the label of an entity. | |
EntityListBuilder:: |
public | function |
Provides an array of information to build a list of operation links. Overrides EntityListBuilderInterface:: |
2 |
EntityListBuilder:: |
public | function |
Gets the entity storage. Overrides EntityListBuilderInterface:: |
|
EntityListBuilder:: |
protected | function | Gets the title of the page. | 1 |
EntityListBuilder:: |
public | function | Constructs a new EntityListBuilder object. | 16 |
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. |