Привет всем!
У меня есть кусок кода на php.. он вставляется в блок и соответственно его прямая функция - вывод категории и его терминов.
Вот он код:
<?php
// accordion taxonomy menu
// by Chris Herberte
// ** don't forget to change $vocabulary --vv
//
$vocabulary = 3; // <-- change ########## to your vid (e.g 1)
drupal_add_js('misc/collapse.js');
$lastdepth = 1;
$topoflist = 1;
$nid = 0;
if ( arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2) ) {
$nid = arg(1);
$terms = taxonomy_node_get_terms($nid);
rsort($terms);
$tid = $terms[0]->tid;
}
elseif (arg(0) == 'taxonomy' && arg(1) == 'term') {
$terms = preg_split('/[+ ,]/', arg(2));
$tid = $terms[0];
}
$parents = taxonomy_get_parents($tid);
foreach ($parents as $parent) {
$i++;
}
$tree = taxonomy_get_tree($vocabulary);
foreach ($tree as $term) {
if ($lastdepth == 1 && $term->depth == 0 ) {
$legend = $term->name;
if ($topoflist == 0) {
print "
";
}
if ( $term->tid == $parent->tid) {
print "$legend
- ";
}
else {
print "$legend
";
?>
Мне нужно сделать так, чтобы у меня рядом с терминами выводилось кол-во материалов, например:
DVD
-- Комедия (12)
-- Мелодрама (10)
-- Ужастики (5)
Заранее благодарен тому, кто сможет мне помочь с этим вопросом...
Ещё раз повторяю, мне нужно именно в ЭТОМ коде сделать такую возможность!
Реально ли это сделать и сложно ли??
Комментарии
не сложно, берешь внедряешь цикл выборки и селекты и все
гы, не силён я в коддинге ((
Зачем изобретать велосипед - используйте модуль Taxonomy_dhtml: http://drupal.org/project/taxonomy_dhtml
я бы с радостью, и кстати на будущее я буду знать, но теперь поздно, и мне нужно поменять именно тот код, что я выставил =(((
Попробуй вот это, хотя я коряво написал, но должно работать
<?php
// accordion taxonomy menu
// by Chris Herberte
// ** don't forget to change $vocabulary --vv
//
$vocabulary = 3; // <-- change ########## to your vid (e.g 1)
drupal_add_js('misc/collapse.js');
$lastdepth = 1;
$topoflist = 1;
$nid = 0;
if ( arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2) ) {
$nid = arg(1);
$terms = taxonomy_node_get_terms($nid);
rsort($terms);
$tid = $terms[0]->tid;
}
elseif (arg(0) == 'taxonomy' && arg(1) == 'term') {
$terms = preg_split('/[+ ,]/', arg(2));
$tid = $terms[0];
}
$parents = taxonomy_get_parents($tid);
foreach ($parents as $parent) {
$i++;
}
$tree = taxonomy_get_tree($vocabulary);
foreach ($tree as $term) {
if ($lastdepth == 1 && $term->depth == 0 ) {
$legend = $term->name;
if ($topoflist == 0) {
print "
";
}
if ( $term->tid == $parent->tid) {
print "$legend
";
}
else {
print "$legend
";- " . l($term->name, "taxonomy/term/$term->tid") . "(". $count .")
- " . l($term->name, "taxonomy/term/$term->tid") . "(". $count .")
}
$topoflist = 0;
}
if ($term->depth > 0) {
$result = db_query("SELECT nid FROM term_node WHERE tid=\"$term->tid\"");
$count = mysql_num_rows($result) + 1;
if ($term->tid == $tid) {
print "
\n";
}
else {
print "
\n";
}
}
$lastdepth = $term->depth;
}
print "
";
?>
$vid = 3;
$items = array();
$terms = taxonomy_get_tree($vid);
foreach ( $terms as $term ) {
$count = db_result(db_query("SELECT COUNT(nid) FROM {term_node} WHERE tid = %d", $term->tid));
$count2 = db_result(db_query("
SELECT COUNT( n.nid )
FROM weblinks_node n
LEFT JOIN weblinks_term_node tn ON n.nid = tn.nid
WHERE tn.tid = $term->tid
AND n.status =1"));
$items[] = l($term->name, "taxonomy/term/$term->tid") . " ($count2)";
}
if ( count($items) ) {
print theme('item_list', $items);
}
?>
Всё отлично работает...
ВСЕМ ОГРОМНОЕ СПАСИБО! )))