[РЕШЕНО]Передача в блок нестандартного аргумента

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

Аватар пользователя Rim Rim 31 мая 2011 в 23:04

Вывожу с помощью views в блок материал, добавляю аргумент для таксономии, для урлов использует taxonomy redirect. Блок не реагирует. Пытаюсь передать php код для аргумента в блок таким образом:

<?phpif ( arg(0) == 'catalog' && is_numeric(arg(1))) {
$tax = arg(1);
return 'taxonomy/term/'.arg(1);
}?>

Что я не так делаю?

Комментарии

Аватар пользователя Rim Rim 1 июня 2011 в 0:02

Если я ставлю Default argument type:Taxonomy Term ID from URL то на странице taxonomy/term/24 все выводится, но на странице catalog/24 - ничего.
Помогите, в чем может быть проблема?

Аватар пользователя Rim Rim 1 июня 2011 в 19:39

Очень странно. Для всех терминов таксономии не работает, работает только если сделать так:

<?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 = '

';

return $output;
}
?>

Что я упускаю?

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 2 июня 2011 в 11:55

"Rim" wrote:
Кто-то сможет объяснить в чем причина.

ошибка в генетическом коде

вы совсем не понимаете, что происходит, совершенно

грузите ноду по первому аргументу, естественно нид этой ноды будет равен первому аргументу, потому что нод_лоад так работает, а потом пытаетесь вернуть именно нид, который естественно равен первому аргументу
само собой ноды может и не быть, она может быть удалена
тогда возвращаете именно первый аргумент
в обоих случаях возвращается первый аргумент, но за каким-то хреном происходит вызов нод_лоад

"Rim" wrote:
Возможно все дело в сниппете, которым я вывожу родителей термина:

при чём тут это?

Аватар пользователя Rim Rim 9 июня 2011 в 23:00

"Punk_UnDeaD" wrote:
Кто-то сможет объяснить в чем причина.

ошибка в генетическом коде


Да может и в коде, только не работало по-другому, если просто первый аргумент вернуть, не знаю, может глюк какой-то.