EntityDisplayModeListBuilder::render

Builds the entity listing as renderable array for table.html.twig.

@todo Add a link to add a new item to the #empty text.

Overrides EntityListBuilder::render

File

core/modules/field_ui/src/EntityDisplayModeListBuilder.php, line 84

Class

EntityDisplayModeListBuilder
Defines a class to build a listing of view mode entities.

Namespace

Drupal\field_ui

Code

public function render() {
  $build = array();
  foreach ($this->load() as $entity_type => $entities) {
    if (!isset($this->entityTypes[$entity_type])) {
      continue;
    }

    // Filter entities.
    if (!$this->isValidEntity($entity_type)) {
      continue;
    }

    $table = array(
      '#prefix' => '<h2>' . $this->entityTypes[$entity_type]->getLabel() . '</h2>',
      '#type' => 'table',
      '#header' => $this->buildHeader(),
      '#rows' => array(),
    );
    foreach ($entities as $entity) {
      if ($row = $this->buildRow($entity)) {
        $table['#rows'][$entity->id()] = $row;
      }
    }

    // Move content at the top.
    if ($entity_type == 'node') {
      $table['#weight'] = -10;
    }

    $short_type = str_replace(array('entity_', '_mode'), '', $this->entityTypeId);
    $table['#rows']['_add_new'][] = array(
      'data' => array(
        '#type' => 'link',
        '#url' => Url::fromRoute($short_type == 'view' ? 'entity.entity_view_mode.add_form' : 'entity.entity_form_mode.add_form', ['entity_type_id' => $entity_type]),
        '#title' => $this->t('Add new %label @entity-type', array('%label' => $this->entityTypes[$entity_type]->getLabel(), '@entity-type' => $this->entityType->getLowercaseLabel())),
      ),
      'colspan' => count($table['#header']),
    );
    $build[$entity_type] = $table;
  }
  return $build;
}
doc_Drupal
2016-10-29 09:05:50
Comments
Leave a Comment

Please login to continue.