Видимость блока в одном термине и нодах с этим термином
Прислано: xchea01
ср, 10/03/2010 - 15:01
Нужно, чтобы блок отображался только в списке нод термина, например, 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; }?>, но не сработало.
- xchea01's blog
- Для комментирования войдите или зарегистрируйтесь
Да точно так же - через arg:
Примерно так.
- Для комментирования войдите или зарегистрируйтесь
Раньше тоже вставлял 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
- Для комментирования войдите или зарегистрируйтесь


Комментарии