Query personalizzata in blocco

10 contenuti / 0 new
Ultimo contenuto
Query personalizzata in blocco

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:

<?php
  $vid
= 12;
 
$tree = taxonomy_get_tree($vid, 37, 0);
?>

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...

Quote:
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

Quote:
o aspettavamo ancora due anni per avere D7 o è stato meglio così ;)

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:

<?php
// Configurazioni ============
$vid = 1; // $vid = Vocabolario
$parent = 52; // $parent = Termine
$max_depth = 1; // $max_depth = Profondità
$pole = array();
// Ottengo i termini ============
$terms = taxonomy_get_tree($vid, $parent, $max_depth, FALSE);
// Numero di nodi per ogni termine ============
foreach ( $terms as $term ) {
 
$count = db_query("SELECT COUNT(nid) FROM {taxonomy_index} WHERE tid = :tid", array(':tid' => $term->tid) )->fetchField();
  if(
$count > 0) {
   
$pole[] = Array(l($term->name, "taxonomy/term/$term->tid") . " ($count)", $term->depth, $count, $term->tid);
  }
}
// Genera la lista ============
print theme('item_list', $pole);
?>

Ciao
Marco
--
My blog
Working at @agavee

perchè print al posto di echo?