Provides a Block render controller.
Expanded class hierarchy of BlockRenderController
class BlockRenderController implements EntityRenderControllerInterface {
/**
* Implements \Drupal\Core\Entity\EntityRenderControllerInterface::buildContent().
*/
public function buildContent(array $entities, array $displays, $view_mode, $langcode = NULL) {
return array();
}
/**
* Implements Drupal\Core\Entity\EntityRenderControllerInterface::view().
*/
public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
$build = $this
->viewMultiple(array(
$entity,
), $view_mode, $langcode);
return reset($build);
}
/**
* Implements Drupal\Core\Entity\EntityRenderControllerInterface::viewMultiple().
*/
public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
$build = array();
foreach ($entities as $entity_id => $entity) {
$plugin = $entity
->getPlugin();
$plugin_id = $plugin
->getPluginId();
if ($content = $plugin
->build()) {
$configuration = $plugin
->getConfig();
$build[$entity_id] = array(
'#theme' => 'block',
'content' => $content,
'#configuration' => $configuration,
'#plugin_id' => $plugin_id,
);
$build[$entity_id]['#configuration']['label'] = check_plain($configuration['label']);
}
else {
$build[$entity_id] = array();
}
list($base_id) = explode(':', $plugin_id);
drupal_alter(array(
'block_view',
"block_view_{$base_id}",
), $build[$entity_id], $plugin);
// @todo Remove after fixing http://drupal.org/node/1989568.
$build[$entity_id]['#block'] = $entity;
}
return $build;
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
BlockRenderController:: |
public | function |
Implements \Drupal\Core\Entity\EntityRenderControllerInterface::buildContent(). Overrides EntityRenderControllerInterface:: |
|
BlockRenderController:: |
public | function |
Implements Drupal\Core\Entity\EntityRenderControllerInterface::view(). Overrides EntityRenderControllerInterface:: |
|
BlockRenderController:: |
public | function |
Implements Drupal\Core\Entity\EntityRenderControllerInterface::viewMultiple(). Overrides EntityRenderControllerInterface:: |