На странице вьюшки есть exposed фильтр по категориям. При выборе категории нужно изменять title вьюшки на выбранную категорию в фильтре. Так как по дефолту title вьюшки не отображается на странице добавил его в шаблон вьюшки:
{{ view.title }}
И отобразился дефолтный title: product-list.
Реализую изменение title вот так:
<?php
/**
* Implements hook_views_post_render().
*/
function entity_product_admin_views_post_render(ViewExecutable $view, array &$output, CachePluginBase $cache) {
$storage = \Drupal::entityTypeManager()->getStorage('node');
$category_id = $view->getExposedInput()['product_category'];
if (
$category_id !== NULL) {
$category_node = $storage->load($category_id);
$category_name = $category_node->get('field_name')->getString();
$title = $category_name;
$view->setTitle($title);
}
}
?>
Но оно вместо того чтобы изменять title с product-list на выбранную категорию (например Accessories) каждый раз добавляет новоизбранную категорию:
product-list Accessories
После еще одного изменения значение фильтра на Sweatshirts:
product-list Accessories Sweatshirts
Как решить данную проблему?
Комментарии
Для начала отладчиком пройти, посмотреть что в переменной $view после смены заголовка