Видимость блока в одном термине и нодах с этим термином

Прислано: xchea01

ср, 10/03/2010 - 15:01

Нужно, чтобы блок отображался только в списке нод термина, например, 1 и в самих нодах, принадлежащих данному термину.
Для самих нод использую сниппет

<?php
$desired_terms 
= array(126);
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;
?>

Но тогда блок не выводится на странице mysite.com/taxonomy/term/1
Как вывести еще и на эту страницу?
С php увы не знаком.
Пробовал <?phpif ($term->tid == 1) { return TRUE; }?>, но не сработало.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано graker в ср, 10/03/2010 - 15:44.

Да точно так же - через arg:

$terms = array(1, 2, 6);
foreach ($terms as $term) {
  if (arg(2) == $term) return TRUE;
}

Примерно так.


Опубликовано Oleksa@drupal.org в ср, 10/03/2010 - 18:06.

Раньше тоже вставлял php-коды, но давно уже использую http://drupal.org/project/context для таких целей


Опубликовано xchea01 в ср, 10/03/2010 - 19:12.

Oleksa@drupal.org, а что запишите в преимущества? То, что написал graker плюс код, который я предоставил раньше прекрасно работают. Использовалось для 4 блоков. Простой копипаст с изменением одной цифры.


Опубликовано Oleksa@drupal.org в ср, 10/03/2010 - 19:21.

Вот посмотрите видео и все преимущества будут видны http://developmentseed.org/blog/2008/apr/09/context-ui


Опубликовано Заводской раб в чт, 24/11/2011 - 18:39.

испробовал отключить в определенной рубрике и статьях этой рубрики

скомбинировал код приведенный выше

<?php

$terms 
= array(4);
foreach (
$terms as $term) {
  if (
arg(2) == $term) return FALSE;
}

$desired_terms = array(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 
FALSE;
        }
    }
}

return 
TRUE

?>

этот код тоже работает но длинный
http://www.drupal.ru/node/66872


Новое на сайте