Вывод меню в зависимости от страницы в node.tpl.php

Главные вкладки

Аватар пользователя rmо rmо 27 июля 2011 в 0:48

Доброго времени суток, коллеги!

Помогите разобраться — нужно что бы на определенной странице выводилась программно одна из менюшек
блоками выводить не вариант!

эта на странице art/*
echo menu_tree('menu-art');

или эта на items/*
echo menu_tree('menu-items');

шаблон — node-product.tpl.php
в нем все и выводится, только для разных страниц

думал через констукцию if else, если честно в PHP «не бум-бум»)))

буду очень благодарен за помощь!

Комментарии

Аватар пользователя drupby drupby 29 июля 2011 в 13:21

"rmо" wrote:
нужно что бы на определенной странице выводилась программно одна из менюшек
блоками выводить не вариант!

Почему не вариант?Стандартный и самый логичный вариант и условие можно любое задать в настройках блока.

Аватар пользователя rmо rmо 30 июля 2011 в 10:04

условие для показа в блоке — возращает 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')

Аватар пользователя SplasH SplasH 1 августа 2011 в 20:55

Пишешь в 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; ?> - и выводится нужное меню

Аватар пользователя rmо rmо 2 августа 2011 в 9:05

Жень, где-то ошибка
в коде для template.php

themeName, исправил на название своей темы и «phptemplate» пробовал — белый экран,
и в админке даже не показывает ошибки (админка другая тема)

Аватар пользователя rmо rmо 9 августа 2011 в 21:08

решилось путем создание 2 типов страниц (node-item_product_page.tpl.php и node-art_product_page.tpl.php) для 2 похожих типов контента