Drupal 6 Drupal6:在主题预处理页面(&;vars)中,$vars来自哪里?(如何操作面包屑)

Drupal 6 Drupal6:在主题预处理页面(&;vars)中,$vars来自哪里?(如何操作面包屑),drupal-6,themes,breadcrumbs,Drupal 6,Themes,Breadcrumbs,当面包屑只是一个条目(“主页”)时,我想删除它。我在我的主题的theme\u preprocess\u页面(&$vars)函数中$vars['breadcrumb']是可用的,但它只是HTML。这是一个有点笨拙的工作。我宁愿将其作为面包屑列表中的项目数组,并执行以下操作: if (count($breadcrumb) == 1) { unset($breadcrumb); } function THEMENAME_breadcrumb($breadcrumb) { if (coun

当面包屑只是一个条目(“主页”)时,我想删除它。我在我的主题的
theme\u preprocess\u页面(&$vars)
函数中$vars['breadcrumb']是可用的,但它只是HTML。这是一个有点笨拙的工作。我宁愿将其作为面包屑列表中的项目数组,并执行以下操作:

if (count($breadcrumb) == 1) {
    unset($breadcrumb);
}
function THEMENAME_breadcrumb($breadcrumb) {
  if (count($breadcrumb) > 1) { // This was:  if (!empty($breadcrumb))
    return '<div class="breadcrumb">'. implode(' » ', $breadcrumb) .'</div>';
  }
}

$vars
来自哪里?如何重写最初创建它的代码?

在所有预处理函数之间传递$vars数组。对于_preprocess_页面函数,$vars中的大多数值都是在模板_preprocess_页面中创建的(请参阅)。在该函数中,您将看到:

  $variables['breadcrumb']        = theme('breadcrumb', drupal_get_breadcrumb());
在这里,drupal_get_breadcrumb返回一个breadcrumb元素数组,然后由theme_breadcrumb()函数(或其重写)对其进行主题化

获取所需内容的最简单方法是重写theme_breadcrumb函数。为此,您使用原始的theme_breadcrumb函数(),将其复制到您的template.php,将函数名称中的“theme”替换为您的主题名称,并更改代码,使其如下所示:

if (count($breadcrumb) == 1) {
    unset($breadcrumb);
}
function THEMENAME_breadcrumb($breadcrumb) {
  if (count($breadcrumb) > 1) { // This was:  if (!empty($breadcrumb))
    return '<div class="breadcrumb">'. implode(' » ', $breadcrumb) .'</div>';
  }
}
函数THEMENAME\u breadcrumb($breadcrumb){
if(count($breadcrumb)>1{//这是:if(!empty($breadcrumb))
返回“”。内爆(“»”,$breadcrumb)。“”;
}
}
要更好地了解Drupal主题覆盖和预处理函数,请参阅和