Drupal: Преобразувайте името на таксономичния термин в идентификатор на термин

Използвам „таксономия: идентификатор на термин“ като аргумент в един от моите изгледи на Drupal и имам проблем да го накарам да работи правилно.

На страницата за администриране на изгледи се посочва, "ако се използва име на термин, обикновено е по-ефективно да се преобразува в идентификатор на термин и да се използва Таксономия: ИД на термин вместо Таксономия: Име на термин."

Как се преобразува името на термина от URL в идентификатор на термин?


person imgrgry    schedule 30.04.2010    source източник


Отговори (1)


не показахте как да направите връзка към този изглед с agruments, ако е така: http://site.com/views_page/taxonomy_name, след това: arg(1) - това сте вие ​​term_name, вземете идентификатор чрез: $term = taxonomy_get_term_by_name(arg(1));
резултатът е $term->tid

Но ако http://site.com/views_page/taxonomy_name - е псевдоним път към термините на таксономията, изгледите трябва да виждат директно tids при обработка на аргументи чрез arg(2 ) в пътя на таксономия/термин/TID.

person Nikit    schedule 30.04.2010
comment
но как да предам тази стойност на моя аргумент за изглед? - person imgrgry; 30.04.2010
comment
Добавете аргумент в Views, вижте опциите на валидатора, изберете PHP код: прочетете внимателно коментара там: можете да промените аргумента, като зададете $handler-›argument. Така че можете да промените името на tid тук. - person Nikit; 30.04.2010
comment
Имайте предвид, че $term-›tid е null, когато изпълнявате. някаква идея как да реша това? - person claire; 31.01.2012
comment
2claire: if (!$term-›tid) return false; - person Nikit; 06.02.2012