Внутри ноды вывести название таксономии

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

Аватар пользователя clubwave.ru clubwave.ru 20 февраля 2007 в 16:56

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

навскидку сам написал следующее:

alt="<?php foreach ((array)$taxonomy as $itemt) { ?><?php print $itemt->name ?><?php }; ?>"

ни ответа ни привета..

модуль contamplate показывает следующее:

$taxonomy (array)

$taxonomy[15] (object)

$taxonomy[15]->tid
15
$taxonomy[15]->vid
4
$taxonomy[15]->name
Volkswagen
$taxonomy[15]->description
$taxonomy[15]->weight
0

$taxonomy[7] (object)

$taxonomy[7]->tid
7
$taxonomy[7]->vid
3
$taxonomy[7]->name
Легковые
$taxonomy[7]->description
$taxonomy[7]->weight
0

ну и собственно предлагает вывести название термина следующим образом:

<?php print $taxonomy[15]->name ?>

но результатов это не даёт.. причём даже если прописать данный код не в альте, а просто в тело ноды, рядом с картинкой, всеравно ничего не выводится.. отсюда вопрос, что я делаю не так и как всётаки вывести название термина внутри ноды?

Комментарии

Аватар пользователя clubwave.ru clubwave.ru 22 февраля 2007 в 12:15

ок! лишние запросы для меня страшны в данный момент, но мне кажется информация содержится в ноде уже, только как вывести? кто знает?

Аватар пользователя Dan Dan 4 апреля 2007 в 14:49

> Правда я не знаю идут запросы или нет?
И да и нет.
<?php
function taxonomy_node_get_terms($nid, $key = 'tid') {
static $terms;

if (!isset($terms[$nid])) {
$result = db_query(db_rewrite_sql('SELECT t.* FROM {term_node} r INNER JOIN {term_data} t ON r.tid = t.tid INNER JOIN {vocabulary} v ON t.vid = v.vid WHERE r.nid = %d ORDER BY v.weight, t.weight, t.name', 't', 'tid'), $nid);
$terms[$nid] = array();
while ($term = db_fetch_object($result)) {
$terms[$nid][$term->$key] = $term;
}
}
return $terms[$nid];
}
?>

Аватар пользователя Dan Dan 4 апреля 2007 в 15:32

Перевод.
Запрос делается в том случае, если в массиве $terms нет ещё терминов для запрошенной ноды.