Здравствуйте.
Возник вот такой вопрос, как скрыть блок если определенный термин из словаря возращает значение 1 (true). То есть есть тип материала и два словаря voc1 и voc2, которые классифицируют этот тип материала, если термин из voc2 отдает какое либо значение отличное от "нет" - блок должен быть скрыт. Подскажите, как это php кодом в настройке блока сделать или ссылкой поделитесь, если есть такая)
Спасибо за внимание.
Комментарии
up
http://www.google.ru/search?q=drupal+block+visibility+taxonomy+term&ie=u...
загвоздка в том что на одном типе материала висят два словаря и поэтому этот модуль не подходит, надо скрыть блок, если словарь дает какой-нибудь термин отличный от нулевого значения, а не показать. остальная инфа не под d7(.
поменяй в поисковой строке гугла drupal -> drupal7
таки вы думаете шо я не менял?)
Нет.
мда, а какая страница в выдаче то?)
может это модуль context или pathuto (не подходят которые)?
нашел вот такое
$term_id_to_trigger_show_block = 109;
$object = get_menu_item();
if (isset($object->taxonomy)) {
foreach($object->taxonomy as $term) {
if ($term->tid == $term_id_to_trigger_show_block) {
return TRUE;
}
}
}
?>
но как его настроить от обратного без 500 ошибки я не знаю
а ведь просил просто ссылкой поделиться... эх
up
Вряд ли в гугле найдется прямо твой пример, но идейно близких не может не быть.
Смотри первую ссылку в выдаче Гугла -- http://drupal.org/node/69076 -- How to control Block visibility by Vocabulary ID.
Там код для Drupal 4.7.x, Drupal 5.x и не совсем 1-в-1 что тебе требуется, но не может быть гигантских проблем портировать его на 7 и под твою задачу. Правда. )
Скопипастчу код для упрощения...
<?php
$node = node_load(arg(1)); // cached
// This snippet returns TRUE if the node we are
// currently viewing is tagged with a term which belongs
// to the 'desired_vocab' and we are not in edit mode (arg(2)).
// put here the vocabulary ID you're interested in
$desired_vocab = 1;if (
arg(0) == 'node' and is_numeric(arg(1)) and arg(2) == FALSE ) {// Yes, we're viewing a node in view mode.
// If the term does not exist we're done
if (is_array($node->taxonomy)) {
foreach ($node->taxonomy as $term) {
if ($term->vid == $desired_vocab) {
return TRUE;
}
}
}
}
return FALSE;
?>
ну да... это я тож нашел... только я не знаю как его адаптировать под d7 (
Я терясь... по-моему, там все прозрачно.
Ставь модуль devel. Проверяй ключевые точки из этого кода через dpm();
Пока не заработает.