Вы здесь

Как по отдельному адресу вывести ноду в своём view mode?

1

К ноде одного типа можно привязать несколько режимов просмотра(display type). А как сделать так, чтобы эти режимы просмотра можно было просмотреть по разным ссылкам?

Например,
http://example.com/node/1 - полный режим
http://example.com/node/1/teaser - анонс
http://example.com/node/1/event - событие

Версия Drupal: 
8.x
Категория: 
Theming
Вопрос задан 03.04.2018 - 14:22
Аватар пользователя shu
shu
163

Модуль у меня называется games_themeswitcher

Файл games_themeswitcher.routing.yml:

games_themeswitcher.master_view:
  path: '/node/{node}/master'
  defaults:
    _controller: '\Drupal\games_themeswitcher\Controller\GamesMasterViewController::view'
  requirements:
    node: \d+
    _entity_access: 'node.view'
  options:
    parameters:
      node:
        type: entity:node

Файл GamesMasterViewController.php

<?php
namespace Drupal\games_themeswitcher\Controller;


use Drupal\Core\Entity\EntityInterface;
use Drupal\node\Controller\NodeViewController;

class GamesMasterViewController extends NodeViewController {
  public function view(EntityInterface $node, $view_mode = 'master', $langcode = NULL) {
    return parent::view($node, $view_mode, $langcode); 
  }
}
Комментарий оставлен 03.04.2018 - 16:42

Ответы

1

модуль view mode page

Ответ дан 03.04.2018 - 16:11

Подходит, но в итоге сделал немного по-другому.

Комментарий оставлен 03.04.2018 - 16:38