[Решено] Аргумент с термином таксономии views

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

Аватар пользователя Pasha92 Pasha92 1 октября 2012 в 12:34

Всем привет!
Подскажите пожалуйста, как указать термин таксономии блоку views. Мне нужно, чтобы в блоке отображались превью материалов с материалом таксономии, в которой мы находимся. URL адрес выглядит следующим образом /category/Видеоархив/{выбранный термин}. Как я понял, мне нужно передать в блок аргумент {выбранная категория} с помощью URL, чтоб потом по нему указать нужный термин.
Как можно передать этот аргумент блоку? Или я пошёл не правильным путём?

Комментарии

Аватар пользователя sg85 sg85 1 октября 2012 в 13:43

Если тоже самое перевести на русский(примерно) - Жмете на аргумент -> Ищете "Если аргумента нет..." -> "Брать аргумент по умолчанию" -> дальше думаю разберетесь

Аватар пользователя Pasha92 Pasha92 1 октября 2012 в 13:50

"Pasha92" wrote:
Если тоже самое перевести на русский, - Жмете на аргумент -> Ищете "Если аргумента нет..." -> "Брать аргумент по умолчанию" -> дальше думаю разберетесь

Именно так я и сделал, но это не помогло. Когда я пишу {выбранная категория} в аргументах предварительного просмотра всё ок, а на сайте не работает. Может быть, нужно где то ещё указать на arg(2) или дело в чём-то другом?

Аватар пользователя Pasha92 Pasha92 1 октября 2012 в 14:04

"sg85" wrote:
В вашем случае надо было Выбрать ID термина.

Попробовал, теперь не работает даже в предварительном просмотре. Мне кажется, что вместо нужного аргумента бралось что-то другое или arg(2) встречается где-то ещё

Аватар пользователя Pasha92 Pasha92 1 октября 2012 в 14:14

Возможно, мне стоит спросить, что указать в фильтрах? Сейчас там Материал: Тип = Видеоархив
Таксономия: Словарь = Видеоархив. Может быть, нужно как нибудь указать на arg(2)в фильтрах?

Аватар пользователя sg85 sg85 1 октября 2012 в 14:28

Вообще странно, у меня все работает, одна вьюха taxonomy/term/% другая сидит в блоке на том же пути и берется именно ID термина.

Аватар пользователя Pasha92 Pasha92 1 октября 2012 в 14:49

"q2_faith" wrote:
не надо.

q2_faith, спасибо, а то я реально думал, что ошибка в этом.
"sg85" wrote:
Вообще странно, у меня все работает, одна вьюха taxonomy/term/% другая сидит в блоке на том же пути и берется именно ID термина.

Когда я пытаюсь добавить в адрес своей страницы % у меня просто исчезает ссылка на неё из меню. Вбивал в ручную, всё как прежде: блок пустой.
Сейчас в пути написано Видеоархив, весь остальной путь сделан ЧПУ.

Аватар пользователя q2_faith q2_faith 1 октября 2012 в 14:53

"Pasha92" wrote:
Когда я пытаюсь добавить в адрес своей страницы % у меня просто исчезает ссылка на неё из меню.

причем здесь блок и меню?

Аватар пользователя sg85 sg85 1 октября 2012 в 16:23

Под "путем блока" обычно подразумевается область видимости блока, ибо по умолчанию он будет отображаться вообще везде

Аватар пользователя q2_faith q2_faith 1 октября 2012 в 16:34

"sg85" wrote:
Под "путем блока" обычно подразумевается область видимости блока, ибо по умолчанию он будет отображаться вообще везде

если используется аргумент, то не обязательно это делать)

Аватар пользователя sg85 sg85 1 октября 2012 в 17:06

"q2_faith" wrote:
если используется аргумент, то не обязательно это делать)

Т.е. если аргумент не подходит по типу, то блок скроется?(хотя для PHP мне кажется, все равно придется скрыть)

Аватар пользователя q2_faith q2_faith 1 октября 2012 в 17:28

"sg85" wrote:
Т.е. если аргумент не подходит по типу, то блок скроется?(хотя для PHP мне кажется, все равно придется скрыть)

если при отсутствии результата не выводится какая то инфа, то не надо определять видимость дополнительно

Аватар пользователя Pasha92 Pasha92 2 октября 2012 в 9:13

Спасибо sg85 и q2_faith за помощь!
Проблема решена следующим образом:выбираем в аргументах "таксономия: ID термина"->"подставить аргумент по умолчанию"->"РНР код". Код:
$url = implode ('/', arg());
return arg(2);

Прочитать про arg можно тут

Аватар пользователя q2_faith q2_faith 2 октября 2012 в 12:11

"Pasha92" wrote:
Прочитать про arg можно тут

<?phpif ((arg(0) == 'taxonomy') && (arg(1) == 'term')) {
    $myterm = arg(2); 
    return $myterm;
  }?>

должно работать. если не будет работать, то посмотрите что возвращает. так как вы делаете, слегка не правильно)