【发布时间】:2016-07-18 04:18:38
【问题描述】:
我想为 drupal 中的每个不同页面更改不同的徽标,我也想隐藏某些页面的徽标。我该怎么做?我已经搜索了可能的答案,但我没有找到任何答案。
【问题讨论】:
标签: drupal drupal-7 drupal-theming
我想为 drupal 中的每个不同页面更改不同的徽标,我也想隐藏某些页面的徽标。我该怎么做?我已经搜索了可能的答案,但我没有找到任何答案。
【问题讨论】:
标签: drupal drupal-7 drupal-theming
正如 MilanG 所说,使用 $logo 变量在您的页面模板(默认 page.tpl.php 或主题建议)中呈现徽标。这个变量是在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.
}
【讨论】:
打印徽标的“标准”方式是从page.tpl.php 模板打印$logo 变量。但您根本不必这样做。
即您可以添加您的 php 代码,该代码将按照您喜欢的方式更改徽标 html 代码。
或者,您可以将徽标 html 放在静态块中,并为每个块设置它应该出现在哪些页面上(在块设置中)。当然,为您的主题创建“徽标”区域。
【讨论】: