class DefaultController in View Modes Display 8
Class DefaultController.
@package Drupal\view_modes_display\Controller
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\view_modes_display\Controller\DefaultController
Expanded class hierarchy of DefaultController
File
- src/
Controller/ DefaultController.php, line 16
Namespace
Drupal\view_modes_display\ControllerView source
class DefaultController extends ControllerBase {
/**
* Returns content of the node.
*
* @param \Drupal\node\NodeInterface $node
* The node.
*
* @return string
* Preview content of the node.
*/
public function previewNode(NodeInterface $node) {
return $this
->preview($node);
}
/**
* Returns content of the block.
*
* @param \Drupal\block_content\BlockContentInterface $block_content
* The block content.
*
* @return string
* Preview content of the block.
*/
public function previewBlockContent(BlockContentInterface $block_content) {
return $this
->preview($block_content);
}
/**
* Returns user.
*
* @param \Drupal\user\UserInterface $user
* The user.
*
* @return string
* Preview user.
*/
public function previewUser(UserInterface $user) {
return $this
->preview($user);
}
/**
* Preview entity view modes.
*
* @return string
* Preview content of entity view modes.
*/
public function preview(ContentEntityInterface $entity) {
$entity_manager = $this
->entityManager();
$entity_type = $entity
->getEntityType()
->get('id');
$view_modes_info = $entity_manager
->getViewModes($entity_type);
$config_prefix = 'core.entity_view_display';
$entity_type_id = $entity
->getEntityType()
->id();
$ids = $this
->configFactory()
->listAll($config_prefix . '.' . $entity_type_id . '.' . $entity
->bundle() . '.');
$load_ids = [];
foreach ($ids as $id) {
$config_id = str_replace($config_prefix . '.', '', $id);
list(, , $display_mode) = explode('.', $config_id);
$load_ids[] = $config_id;
}
$enabled_display_modes = [];
$displays = $entity_manager
->getStorage('entity_view_display')
->loadMultiple($load_ids);
foreach ($displays as $display) {
if ($display
->status()) {
$enabled_display_modes[] = $display
->get('mode');
}
}
if (!array_key_exists('full', $view_modes_info)) {
$view_modes_info['full'] = [
'label' => t('Default'),
];
}
if (!array_key_exists('full', $enabled_display_modes)) {
$enabled_display_modes[] = 'full';
}
$view_builder = \Drupal::entityTypeManager()
->getViewBuilder($entity
->getEntityTypeId());
// Loop through the view modes and render in-place.
$build = [];
foreach ($view_modes_info as $view_mode_name => $view_mode_info) {
if (in_array($view_mode_name, $enabled_display_modes)) {
$build[] = [
'#prefix' => '<div class="view-mode-list-item view-mode-list-item-' . $view_mode_name . '"><h1>' . $view_mode_info['label'] . '</h1>',
'#markup' => render($view_builder
->view($entity, $view_mode_name)),
'#suffix' => '</div>',
];
}
}
return $build;
}
}
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. | |
DefaultController:: |
public | function | Preview entity view modes. | |
DefaultController:: |
public | function | Returns content of the block. | |
DefaultController:: |
public | function | Returns content of the node. | |
DefaultController:: |
public | function | Returns user. | |
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. |