以前的Drupal 6版本中使用函数drupal_set_title来修改页面Title是页面的HTML标题和页面显示<h1></h1>中的标题都一起变化,但Drupal 7版本中再调用这个函数的时候发现只是页面HTML标题变更了,但页面显示在<h1></h1>中间的标题却没有变,这在有些情况下其实更好,但在确实需要页面显示标题也变化的时候就不行了,还得想另外的办法。
下面一段代码放在my_module.module中就可以实现对原来的title进行翻译然后显示在页面中:
/* * modify <h1>title</h1>, translate */ function my_module_preprocess_page(&$vars){ if (isset($vars['node']) && $vars['node']->type == 'product'){ $title=$vars['node']->title; $title_t=t($title); drupal_set_title($title_t); } }
补充另外一个不算正规但简单有效的办法:添加一个block,在block的php程序中对页面显示title进行设置,例如:
<?php $nid = arg(1); $node = node_load($nid); $title = check_plain($node->title); $title_t = t($title); drupal_set_title($title_t); ?>
还有面包屑,也可以在block中用drupal_set_breadcrumb进行设置。
评论2
请教下您的面包屑是怎么做的?
请教下您的面包屑是怎么做的?在block中修改breadcrumb的例子
可以设置一个名为breadcrumb的block专门用来修改面包屑,block就放在内容(Content)里面,设置文本格式为php以便添加下面的程序来修改面包屑:
上面是一个例子,放置了这个block的页面中,会读取category的内容,添加面包屑为category的链接以及页面标题本身,另外,最后一句也修改了页面标题。