вобщем имеется галерея, сконструированная из 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 ?>
но результатов это не даёт.. причём даже если прописать данный код не в альте, а просто в тело ноды, рядом с картинкой, всеравно ничего не выводится.. отсюда вопрос, что я делаю не так и как всётаки вывести название термина внутри ноды?
Комментарии
Можно сделать так, например:
foreach(taxonomy_node_get_terms(arg(1)) as $itemt) {
print $itemt->name;
}
?>
Только так будет лишний sql-запрос. Как сделать оптимальней пока не знаю
ок! лишние запросы для меня страшны в данный момент, но мне кажется информация содержится в ноде уже, только как вывести? кто знает?
собственно искал тоже решение данного вопроса . Правда я не знаю идут запросы или нет?
> Правда я не знаю идут запросы или нет?
И да и нет.
<?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];
}
?>
а как вывести без запросов?
Перевод.
Запрос делается в том случае, если в массиве $terms нет ещё терминов для запрошенной ноды.