我可以为 drupal 中的不同页面更改不同的徽标吗
Can I change different logo for different pages in drupal
我想为 drupal 中的每个不同页面更改不同的徽标,我还想隐藏某些页面的徽标 too.How 我可以这样做吗?我已经搜索了可能的答案,但我没有找到任何。
打印徽标的"standard"方式是从page.tpl.php
模板打印$logo
变量。但你根本不必那样做。
即您可以添加您的 php 代码,这将按照您喜欢的方式更改徽标 html 代码。
或者,您可以将徽标 html 放在静态块中,并为每个块设置它应该出现在哪些页面上(在块设置中)。当然,还要为您的主题创建 "logo" 区域。
正如 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.
}
我想为 drupal 中的每个不同页面更改不同的徽标,我还想隐藏某些页面的徽标 too.How 我可以这样做吗?我已经搜索了可能的答案,但我没有找到任何。
打印徽标的"standard"方式是从page.tpl.php
模板打印$logo
变量。但你根本不必那样做。
即您可以添加您的 php 代码,这将按照您喜欢的方式更改徽标 html 代码。
或者,您可以将徽标 html 放在静态块中,并为每个块设置它应该出现在哪些页面上(在块设置中)。当然,还要为您的主题创建 "logo" 区域。
正如 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.
}