Нужно, чтобы блок отображался только в списке нод термина, например, 1 и в самих нодах, принадлежащих данному термину.
Для самих нод использую сниппет
<?php
$desired_terms = array(1, 2, 6);
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; }?>
, но не сработало.
Комментарии
Да точно так же - через arg:
foreach ($terms as $term) {
if (arg(2) == $term) return TRUE;
}
Примерно так.
Раньше тоже вставлял php-коды, но давно уже использую http://drupal.org/project/context для таких целей
Oleksa@drupal.org, а что запишите в преимущества? То, что написал graker плюс код, который я предоставил раньше прекрасно работают. Использовалось для 4 блоков. Простой копипаст с изменением одной цифры.
Вот посмотрите видео и все преимущества будут видны http://developmentseed.org/blog/2008/apr/09/context-ui
испробовал отключить в определенной рубрике и статьях этой рубрики
скомбинировал код приведенный выше
<?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