Вывожу с помощью views в блок материал, добавляю аргумент для таксономии, для урлов использует taxonomy redirect. Блок не реагирует. Пытаюсь передать php код для аргумента в блок таким образом:
<?phpif ( arg(0) == 'catalog' && is_numeric(arg(1))) {
$tax = arg(1);
return 'taxonomy/term/'.arg(1);
}?>
Что я не так делаю?
Комментарии
arg(2)
Почему arg(2), цифра как раз arg(1) ?
У меня урл, благодаря taxonomy redirect имеет вид catalog/tid
Если я ставлю Default argument type:Taxonomy Term ID from URL то на странице taxonomy/term/24 все выводится, но на странице catalog/24 - ничего.
Помогите, в чем может быть проблема?
Недавно я решал эту пробему - чуть позже напишу как.
Если забуду а будет актуально - стукните в личку
Спасибо, разобрался, нужно так:
<?php$node = node_load(arg(1));
if($node){
return $node->nid;
}?>
return arg(1)
Очень странно. Для всех терминов таксономии не работает, работает только если сделать так:
<?php
$node = node_load(arg(1));
if($node) {
return $node->nid;
} else {return arg(1);}
}?>
Кто-то сможет объяснить в чем причина. Причем, как я заметил, проблема с большими номерами таксономии 223..., и к ним не создается синоним.
Возможно все дело в сниппете, которым я вывожу родителей термина:
<?php
$vid = 2; // id словаря
$tree = taxonomy_get_tree($vid, 0, -1, 1);
if (!empty($tree)) {
$output = '
';- '. $item .'
foreach ($tree as $tid => $term) {
$item = l($term->name, taxonomy_term_path($term));
$output .= '
';
}
$output .= '
';
return $output;
}
?>
Что я упускаю?
ошибка в генетическом коде
вы совсем не понимаете, что происходит, совершенно
грузите ноду по первому аргументу, естественно нид этой ноды будет равен первому аргументу, потому что нод_лоад так работает, а потом пытаетесь вернуть именно нид, который естественно равен первому аргументу
само собой ноды может и не быть, она может быть удалена
тогда возвращаете именно первый аргумент
в обоих случаях возвращается первый аргумент, но за каким-то хреном происходит вызов нод_лоад
при чём тут это?
Да может и в коде, только не работало по-другому, если просто первый аргумент вернуть, не знаю, может глюк какой-то.