Сниппет вывода терминов таксономии в блоке

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

Аватар пользователя Heihachi88 Heihachi88 5 сентября 2010 в 18:18
<?php
$query 
"SELECT tid,name from {term_data} ORDER BY name ASC";
$result db_query($query);
while (
$term db_fetch_object($result)) {
  
$items[]= l($term->name"taxonomy/term/$term->tid");
}
if(
count($items)) {
  return 
theme('item_list',$items);
}
?>

Сниппет с content-management-systems.info . Подскажите пожалуйста, что нужно дописать чтобы сниппет отображал не все термины сайта, а только из определенного словаря?

Комментарии

Аватар пользователя Heihachi88 Heihachi88 5 сентября 2010 в 19:01

2 xxandeadxx,

<?php
$query 
"SELECT tid,name from {term_data} 
WHERE vid = %d
ORDER BY name ASC"
,
vocab_ID;
$result db_query($query);
while (
$term db_fetch_object($result)) {
  
$items[]= l($term->name"taxonomy/term/$term->tid");
}
if(
count($items)) {
  return 
theme('item_list',$items);
}
?>

Вот так?

Аватар пользователя reynholm reynholm 5 сентября 2010 в 20:29

Меня мама в детстве учила, что сниппеты, запросы к БД в шаблонах и изобретание своих велосипедов - зло, дурной тон и не "Drupal-way" Smile

Аватар пользователя xxandeadxx xxandeadxx 5 сентября 2010 в 20:40

"reynholm" wrote:
... сниппеты ... дурной тон и не "Drupal-way"

а на drupal.org то и не догадываются. в саратове видимо какой-то свой "Drupal-way", особенный, с местным менталитетом — поставь модуль на 4 мегабайта, вместо 10 строчек кода, и спаси уссурийского тигра.

Аватар пользователя reynholm reynholm 5 сентября 2010 в 20:42

О да, радиация от Балаковской АЭС, видимо, сказывается.

Вы много сайтов с таксономией и без Views видели?

Ну или если уж так хочется сниппет, почему бы не воспользоваться API: taxonomy_get_tree(), например?

З.Ы. Выразился я конечно не совсем точно: сниппеты бывают необходимы, но не тогда, когда задачу можно решить стандартными средствами.

Аватар пользователя xxandeadxx xxandeadxx 5 сентября 2010 в 20:49

"reynholm" wrote:
О да, радиация от Балаковской АЭС, видимо, сказывается.

видимо да, пора бы подумать о здоровье то, потом поздно будет

"reynholm" wrote:
Вы много сайтов с таксономией и без Views видели?

достаточно

"reynholm" wrote:
почему бы не воспользоваться API: taxonomy_get_tree(), например?

да можно и taxonomy_get_tree, никто не запрещает

"reynholm" wrote:
сниппеты бывают необходимы, но не тогда, когда задачу можно решить стандартными средствами.

стандартное средство это кокраз сниппет а не сторонний модуль

Аватар пользователя dys@drupal.org dys@drupal.org 6 сентября 2010 в 13:55

А подскажите если я хочу, организовать фильтр на основе таксономии
урл вида /type/catalog/term1/terms2/ --- terms2 это термины через запятую 1,2,45

$terms = taxonomy_get_tree($vid,$parent = arg(2), $depth = -1, $max_depth = NULL);
foreach ( $terms as $term ) {
$count = db_result(db_query("SELECT COUNT(t.nid)
FROM {term_node} t
INNER JOIN {node} n
ON t.nid=n.nid  
WHERE t.tid = %d
AND t.tid = '1'
AND t.tid = '2'
AND t.tid = '45'
AND n.type = 'price_item'
AND n.status = 1"
,
$term->tid, price_item ));
/*Этим запросом я хочу подсчитать количество нод
 * у которых есть термы 1,2,45 и термин $term->tid,
 * если ноль то не показывать.
 * Интересует сам запрос правильно создан
 * А то у меня что то не работает.
*/

}