Во вьюхе в шапке надо получить tid. У представления адрес a.com/brands/pepsi в шапке нужно вывести описание термина для этого нужен tid (идентификатор термина)
нашел функцию taxonomy_get_term_by_name она собственно это и делает возвращает массив термина по имени.
<?php
$view = views_get_current_view(); // определение имени термина
$term = taxonomy_get_term_by_name($view->args[0],'brands'); // tid по имени
$tid = $term->tid; // значение tid
?>
сколько искал у всех вроде работает, у меня нет
у меня вылетает ошибка Notice: Trying to get property of non-object в функции eval()
функция
<?php print_r(var_dump($term));?>
выдает:
[30]=>
object(stdClass)#228 (9) {
["tid"]=>
string(2) "30"
["vid"]=>
string(1) "2"
["name"]=>
string(5) "pepsi"
["description"]=>
string(863) "
описание описание описание описание описание описание описание описание описание описание описание описание описание описание описание описание описание описание описание описание "
["format"]=>
string(9) "full_html"
["weight"]=>
string(1) "0"
["taxonomy_subterms"]=>
string(2) "-2"
["taxonomy_subterms_map"]=>
string(2) "-2"
["vocabulary_machine_name"]=>
string(6) "brands"
}
}
значит данные функция возвращает, как все таки вытащить tid?
Комментарии
Разобрался сам...
Если надо во вьюху которая выбирает материалы по ИМЕНИ термина вставить описание термина то в шапку вьюхи нужно вставить код
<?php
$view = views_get_current_view();
$term = taxonomy_get_term_by_name($view->args[0],'brands'); // Узнаем tid по имени
$term = array_shift($term); // оставляем первый элемент массива
$tid = $term->tid; // определяем идентификатор термина
if ( is_numeric( $tid ) ) {
$term = taxonomy_term_load($tid);
if (module_exists('i18n_taxonomy') && i18n_taxonomy_vocabulary_mode($term->vid) == I18N_MODE_LOCALIZE) {
$description = i18n_string("taxonomy:term:$term->tid:description", $term->description);
} else {
$description = $term->description;
}
print $description;
}
?>
И еще одна особенность если со страниц сайта в ручную создавать ссылку на термин например "black pen" (в термине есть пробел), то адрес должен выглядеть так:
site.com/brands/black%20pen или site.com/brands/black+20pen пробелы нужно заменять на "%20" или "+"
Как много открытий чудных несёт нам знание матчасти http://www.php.net/manual/ru/function.urlencode.php
RxB
Очередное спасибо! не знал что есть такая функция, возьму на заметку
Но в моем случае ссылки на термины будет формировать менеджер сайта вручную, 90% процентов его работы будет производится в CKeditor