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

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

Аватар пользователя Колобок33 Колобок33 24 июля 2011 в 20:31

Искал решение проблемы, нужное не нашел. Доработал то, что отыскал. А именно:

Нужно было вывести в блоке названия материалов в виде ссылок отдельного термина словаря таксономии. Пока понятно? Это можно сделать при помощи Views, но это когда несколько, а когда много таких блоков. То по моему проще вставить php код. Я нашел такое решение побродив по интернету.

<?php
$tid = 1;
$sql = "SELECT n.title, n.nid
FROM {node} AS n
INNER JOIN {term_node} AS tn USING (nid)
WHERE tn.tid=%d AND n.status = 1
ORDER BY n.created DESC";
$result = db_query($sql, $tid);
while ($n = db_fetch_object($result)) {
$term_links[] = l($n->title, 'node/'. $n->nid, array('attributes' => array('class' => 'vocabulary-list')));
}
echo theme('item_list', $term_links);
?>
Вставив данный код в блок или в тело ноды, заменив значение $tid на значение Вашего термина, выведет в столбик все его содержимое. Но!
Выведет по дате создания в обратном порядке. А мне нужно было по алфавиту в нормальном порядке. Искал долго, в сторону запросов к базе данных вывода содержимого различными способами. Докопался что ORDER BY - фодмирует то что мне нужно, но осталось подставить значение, "Волшебное слово"...:)) И вот оно!!! Оказывается
DESC - формирует обратный порядок, а
ASC - нормальный, по умолчанию.
Поскольку я выводил заголовки, стало быть строку -
ORDER BY n.created DESC", меняем на
ORDER BY n.title ASC"... и "усё у шоколаде". Ура!!!

Способов формирования выводов масса, главное уметь найти тебе нужный.

Не стыдно чего то не знать, главное уметь всегда находить решение, ведь вокруг столько умных людей.(с)