我可以在drupal中为不同的页面更改不同的徽标

时间:2016-07-18 04:18:39

标签: drupal drupal-7 drupal-theming

我想为drupal中的每个不同页面更改不同的徽标,我也想隐藏某些页面的徽标。我怎么能这样做?我已经搜索了可能的答案,但我没有找到任何答案。

2 个答案:

答案 0 :(得分:1)

正如MilanG所述,使用page.tpl.php变量在您的页面模板(默认$logo或主题建议)中呈现徽标。此变量在template_preprocess_page()中设置,更改它的最佳方法是在主题中使用相同的预处理函数:

function mytheme_preprocess_page(&$variables) {
  $logo_path = '/' . drupal_get_path('theme', 'mytheme') . '/logos/';
  // Alter logo under some conditions
  if ($first_condition) {
    $variables['logo'] = $logo_path . 'logo1.png';
  } elseif ($second_condition) {
    $variables['logo'] = $logo_path . 'logo2.png';
  } elseif ($third_condition) {
    // Hide logo. Your page.tpl.php must contain 
    // something like <?php if ($logo): ?>
    $variables['logo'] = null;
  }
  // etc.
}

答案 1 :(得分:0)

打印徽标的“标准”方式是从$logo模板打印page.tpl.php变量。但你根本不需要这样做。

即。你可以添加你的PHP代码,它将以你喜欢的方式改变logo html代码。

或者,您可以将logo html放在静态块中,并为每个块设置它应出现的页面(在块设置中)。当然,为您的主题创建“徽标”区域。