Ragazzi ho un problemino.. su D6 usavo questo codice in un blocco per visualizzare una tassonomia specifica..
Ho provato su d7,ma qualcosa è cambiato infatti mi dice che la variabile di return $out è sbagliata... perchè ?..
<?php
$vid = 12;
$voc = taxonomy_get_vocabularies();
$tree = taxonomy_get_tree($vid, 37, 0, Null);
foreach ($tree as $term) {
$count = taxonomy_term_count_nodes($term->tid);
if($count > 0) {
$url = "taxonomy/term/$term->tid";
$link = l(t($term->name), $url, array("title" => t($term->description)));
$out .= "<ul><li> $feed $link";
{$out .= " ($count)";}
$out .= "</li></ul>";
}
}
return $out;
?>
Niente.. nn capisco perchè... nessuno mi presta un'aiutino??...
Up :(
Gli up non sono mai graditi ;)
A parte questo:
tu gli stai dando dei parametri che sono cambiati dalla versione 6 alla 7, in particolare il load entity, dovrebbe diventare una cosa TIPO:
inoltre non esiste più la funzione taxonomy_term_count_nodes, quindi devi procedere in altro modo per estrarre quell'informazione.
Per il resto il codice regge :)
PS: io penserei ad usare una views per fare quella cosa, meno codice in giro nel DB, centralizzi il tutto nella gestione delle views.. e ti togli il problema di scriverti il codice :D
Ciao
Marco
--
My blog
Working at @agavee
Eccallà..mi sembrava strano infatti...
Usare views l'avevo pensato anche io infatti avevo provato,ma anche su questa cosa views da ancora problemi... Assieme a questo ho un'altro problema che views ancora nn mi risolve,e la cosa peggiore è che sull'altra ho aperto una issue su d.org... a loro funziona e a me no... e nn capisco proprio xchè... mah... rimango dell'idea che Views voleva integrato nel core...
Voleva chi? :)
Comunque c'erano evidenti problemi tecnici nel farlo, per questo o aspettavamo ancora due anni per avere D7 o è stato meglio così ;)
Ciao
Marco
--
My blog
Working at @agavee
Punti di vista.. :)
Ho risolto.. l'idea di farlo con views mi piaceva di piu,ma nn ci riesco.. nn riesco a filtrare per un termine specifico da me predefinito..A forza di provare ho risolto in questo modo e cosi funziona alla stragrande..
Lo posto per chi avesse la stessa necessità.. Ricordo che funziona solo su D7..
<?php
$vid = 1; // $vid = Vocabolario $parent = Termine $max_depth = Profondità
$pole = array();
$terms = taxonomy_get_tree($vid, $parent = 52, $max_depth = 1, $load_entities = FALSE);
foreach ( $terms as $term ) {
$count = db_query("SELECT COUNT(nid) FROM {taxonomy_index} WHERE tid = :aid", array(':aid' => $term->tid) )->fetchField();
if($count > 0) {
$pole[]=Array (l($term->name, "taxonomy/term/$term->tid") . " ($count)", $term->depth, $count, $term->tid) ;}
}
foreach ($pole as $list)
{ echo "\n<li>$list[0]"; }
?>
@morxe: occhio, innazitutto non usare echo ma print, poi una versione leggermente più pulita potrebbe essere:
Ciao
Marco
--
My blog
Working at @agavee
perchè print al posto di echo?