Решено: блок виден на нодах термина и не виден определенной ноде, принадлежащей этому термину

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

Аватар пользователя IrinaStasuk IrinaStasuk 15 июля 2016 в 14:58

Добрый день, знатоки! Друпал 6. Есть снипетт видимости блока в зависимости от термина:

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

Все работает. Но нужно исключить показание блока на одной из страниц с этим же термином. Php не знаю (уж простите). Піталась разобраться в логике, но не получается. У меня получилось:

<?php
$desired_terms 
= array(27);
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) &&
!
drupal_match_path($request_path'node/21494')) {
    return 
TRUE;
  }
        }
    }
  return 
FALSE;
?>?>

Но не работает. Может кто подскажет что не так?

Комментарии

Аватар пользователя dgastudio dgastudio 15 июля 2016 в 15:06
<?php
    $desired_terms 
= array(27);
    
$non_desired_nid '123';
    if ( 
arg(0) == 'node' and is_numeric(arg(1)) && arg(1) != $non_desired_nid) {
        
$node node_load(arg(1));
            foreach (
$node->taxonomy as $term) {
            if (
in_array($term->tid$desired_terms)) {
                return 
TRUE;
            }
        }
    }
    return 
FALSE;

?>