Рейтинг:0

Изменить заголовок заголовка представления программно

флаг gu

У меня есть представление терминов таксономии с открытым фильтром. Основная страница просмотра: site.com/view

У меня есть текстовое поле с 16 различными значениями и URL-адресами:

  • site.com/view/1
  • site.com/view/2
  • site.com/view/...
  • site.com/view/16

В зависимости от переданного аргумента я меняю заголовок View следующим образом:


используйте \Drupal\views\ViewExecutable;
функция theme_views_pre_render (ViewExecutable $ view) 
{
  
  if( $view->id() == 'MY_VIEW_ID' && $view->current_display === 'VIEW_DISPLAY' && $view->args[0] != 'Все')
  {
    $view->setTitle(gamesGenreTitle($view->args[0]));
  }
}

функция gamesGenreTitle($val)
{
  $options = options_allowed_values(\Drupal::service('entity_field.manager')->getFieldStorageDefinitions('taxonomy_term')['field_genre']);
  вернуть $options[$val];
}

gamesGenreTitle() получает метки моего поля, чтобы поместить их в заголовок.

Работает, но голова не меняется <title> тег!

я пытался theme_preprocess_html(&$переменные) с этим кодом:

  $view_id = \Drupal::routeMatch()->getParameter('view_id');

  $view = \Drupal\views\Views::getView($view_id);

Но получает только идентификатор просмотра и я не могу получить доступ к аргументам, чтобы изменить заголовок только на нужных страницах.

Моя вторая догадка, которую я еще не пробовал, состоит в том, чтобы проверить и взорвать текущий путь массива, используя \Drupal::service('path.current')->getPath();, получить последнюю цифру и передать ее gamesGenreTitle().

Или, может быть, есть лучший способ?

Рейтинг:1
флаг cn

и выложил патч. Я рекомендую использовать описанный выше подход с

пластырь
Немного сложно сказать, что вы подразумеваете под «без настройки веб-формы», но если вы имеете в виду «без редактирования конфигурации веб-формы каждой веб-формы», то вы можете тематизировать веб-формы, как и любой другой объект в Drupal.

Если вы проверите веб-форма/шаблоныкаталог, вы увидите файл

веб-форма.html.twig
. Вы можете скопировать этот файл в тему вашего сайта
шаблоны

каталог и добавьте

обертка в этом файле.
После восстановления кеша сайта все веб-формы теперь будут иметь
bigboy avatar
флаг gu
Спасибо! Вы спасли мой день! )))

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.