Добавьте пользовательский заголовок на страницу отфильтрованного представления в Drupal

У меня есть сайт, который фильтрует блоги по конкретным экспедициям.

В настоящее время, когда я нажимаю на блог, связанный с этой конкретной экспедицией, заголовок заголовка (в окне браузера) отображается как «| mysite». Таким образом, все отфильтрованные представления имеют одинаковый заголовок.

Я хотел бы добавить собственный заголовок для каждого отфильтрованного представления.

Так, например, я хотел бы, чтобы блоги, связанные с Экспедицией 1, имели отфильтрованное представление с заголовком «Expedition 1 blogs | Mysite».

У кого-нибудь есть предложения?


person Nathan Melen    schedule 17.12.2014    source источник


Ответы (3)


Я предлагаю вам сделать это:

для просмотров 3:

Если у вас есть представление и вы хотите программно изменить заголовок, вы можете сделать это, реализовав hook_views_pre_render в своем пользовательском модуле:

<?php
/**
 * Implements hook_views_pre_view().
 */
function MODULENAME_views_pre_render($view) {
  if ($view->name == 'my_view_name') {
    if ($view->current_display == 'my_display_name') {
      $view->set_title('my new title');
    }
  }
}
?>

Я надеюсь, что это помогает.

person Ahmed    schedule 18.12.2014
comment
Спасибо, это сработало для меня, я везде искал ответ! @Nathan: ты должен отметить ответ Рувена как правильный. - person Aleksandar Jakovljevic; 09.06.2015

Этот вопрос может быть связан с этим где было дано следующее решение:

В шаблоне.php:

function YOUR_THEME_preprocess_page(&$vars){
  // You can test if you're in your specific views of course
  $path = $_GET['q'];

  if (strpos($path,'YOUR_PATH_STRING') !== false) {
    drupal_set_title('YOUR_TITLE');
  }
}

Я также видел ссылку на модуль Page Title, который может вам подойти.

person Djouuuuh    schedule 18.12.2014

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

function MODULE_NAME_views_pre_view(&$view, &$display_id, &$args) { 

    if($view->name == 'VIEW_MACHINE_NAME'){
      $view->display[$view->current_display]->display_options["title"] =
      $view->display[$view->current_display]->handler->options["title"] =
      $view->human_name .' - '.$_GET['field_video_by_event_value'];
    }

}
person dhruv    schedule 04.07.2018