将自定义头部标题添加到Drupal中的筛选视图页面

时间:2014-12-17 20:42:51

标签: drupal-7 views page-title

我有一个网站通过特定的探险过滤博客。

目前,当我点击与该特定探险相关的博客时,它会将头部标题(在浏览器窗口中)显示为“| mysite”。因此,所有过滤后的视图都具有相同的标题。

我想为每个过滤后的视图添加自定义标题。

因此,举例来说,我希望与远征1有关的博客拥有头部标题为“Expedition 1 blogs | Mysite”的过滤视图。

有人有任何建议吗?

3 个答案:

答案 0 :(得分:2)

我建议你这样做:

视图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');
    }
  }
}
?>

我希望它有所帮助。

答案 1 :(得分:0)

此问题可能与this one有关,其中给出了以下解决方案:

在template.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模块的引用。

答案 2 :(得分:0)

您可以通过使用以下模块挂钩来以编程方式设置视图页面标题。

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'];
    }

}