Доброго времени суток, коллеги!
Помогите разобраться — нужно что бы на определенной странице выводилась программно одна из менюшек
блоками выводить не вариант!
эта на странице art/*
echo menu_tree('menu-art');
или эта на items/*
echo menu_tree('menu-items');
шаблон — node-product.tpl.php
в нем все и выводится, только для разных страниц
думал через констукцию if else, если честно в PHP «не бум-бум»)))
буду очень благодарен за помощь!
Комментарии
Ребят,что никто не знает что-ли?
Почему не вариант?Стандартный и самый логичный вариант и условие можно любое задать в настройках блока.
условие для показа в блоке — возращает TRUE, а надо что бы выводилось echo menu_tree('menu-art'); при array(5,6,7,8,9)
и echo menu_tree('menu-items'); при array(1,2,3,4)
<?php
$desired_terms = array(5,6,7,8,9); // 1,2,3,4
if ( arg(0) == 'node' and is_numeric(arg(1)) ) {
$node = node_load(arg(1));
foreach ($node->taxonomy as $term) {
if (in_array($term->tid, $desired_terms)) {
return TRUE;
}
}
}
return FALSE;
?>
вот накопал так, а как их соединить — незнаю
в коде выводится TRUE а надо menu_tree('menu-art')
Пишешь в template.php:
<?php
function themeName_preprocess_page(&$vars) {
$desired_terms = array(5,6,7,8,9);
if ($vars['node']) {
foreach ($vars['node']->taxonomy as $term) {
if (in_array($term->tid, $desired_terms)) {
$vars['my_menu'] = menu_tree('menu-art');
break;
}
}
}
if (!isset($vars['my_menu']) {
$vars['my_menu'] = menu_tree('menu-items');
}
}
?>
Логику конечно можешь поменять, но главное передать все в $vars['my_menu']. Далее в page.tpl.php в нужном месте пишешь <?php echo $my_menu; ?> - и выводится нужное меню
Жень, где-то ошибка
в коде для template.php
themeName, исправил на название своей темы и «phptemplate» пробовал — белый экран,
и в админке даже не показывает ошибки (админка другая тема)
решилось путем создание 2 типов страниц (node-item_product_page.tpl.php и node-art_product_page.tpl.php) для 2 похожих типов контента