Come scrivere "xx risultati della ricerca per la categoria yy" ??

12 contenuti / 0 new
Ultimo contenuto
Come scrivere "xx risultati della ricerca per la categoria yy" ??

Ciao
nella vista che sto creando ho diversi filtri esposti e vorrei che comparisse il numero dei risultati ottenuti dalla ricerca seguito dalla categoria selezionata nel filtro ... cioè una cosa del genere:

45 risultati nella categoria abbigliamento, abbigliamento uomo-donna

dove "abbigliamento" è la categoria ed "abbigliamento uomo-donna" la sottocategoria , utilizzati nel filtro per effettuare la ricerca.

So che in Views3 il numero dei risultati si può far comparire semplicemente inserendo nell'intestazione un "Global:result summary" (o come si scrive) opportunamente impostato, ma dal momento che vorrei vedere anche a quale categoria appartengono i risultati penso che sia più semplice inserire tutto in codice ... e fin'ora ho trovato questo di seguito, che fa comparire il numero dei risultati per le ricerche che abbiano 1 o più record

<?php
  $view
= views_get_current_view();
$count = ( $view->total_rows );
if (
count($view->exposed_input))
print
"$count risultati per la categoria";
?>

Come posso implementare questo codice per mostrate anche la categoria ed eventuale sottocategoria selezionate per ricerca ??

grazie
ciao

Drupal Version:

Non sono ancora riuscito a risolvere, qualcuno sa come fare?

Ciao,
se i filtri sono esposti li dovresti prendere direttamente da $_GET, se non ricordo male. Com'è l'url dopo aver fatto una ricerca?

ciao gioppy
i filtri sono esposti e l'url dopo la ricerca è

"?circle_op=%3C&circle[value]=&circle[location]=&title=&term_node_tid_depth_1=17724&sort_by=last_updated&sort_order=DESC&items_per_page=10"

Mi potresti fare un esempio di come scrivere il codice per fare ciò che vorrei ...

grazie
ciao

Ciao,
il termine della tassonomia dovrebbe essere term_node_tid_depth_1. Leggo ora però che è un term with depth quindi la cosa diventa un pelo più complicata. Pensavo avessi un menu tendina con tutti i termini della tua tassonomia, settato nella tua vista semplicemente come Taxonomy: Term. La tua vista come l'hai settata?

ciao,
cosa intendi per come ho settato la vista?
E' semplicemente una page con diversi filtri esposti fra cui una tendina term_node_tid_depth (che mostra gerarchicamente categoria e sottocategoria).
Per ora come ho scritto nel primo messaggio riesco solo a mostrare il numero dei record corrispondenti alla ricerca ... ma non ho capito come dovrei utilizzare $_GET che mi sugggerivi per mostrare anche la categoria/sottocagoria corrispondenti alla ricerca ...
Se ti servono delle informazioni, chiedimi tutto quello che vuoi, ma considera che non sono un programmatore , ma un semplice utilizzatore autodidatta ;)

grazie
ciao

Ciao,
molto probabilmente, vedendo il risultato di term_node_tid_depth, hai messo un filtro esposto Taxonomy: Term with depth. Se metti il filtro esposto semplicemente com Taxonomy: Term riesci a recuperare l'id del termine della tassonomia dal GET.

<?php
 
print $_GET['term_node_tid_depth'];
?>

Se metti questo sul template della vista ti ritorna lo stesso numero che vedi sull'url dopo l'uguale. Da qui poi, tramite le api di Drupal, puoi far caricare il termine associato a quell'id.
Con i filtri della tassonomia impostati in questo modo però diventa tutto più complesso...
;)

ciao gioppy
grazie per il tempo e l'aiuto che mi dedichi.
Ho provato ad inserire il tuo codice, mantenendo però il filtro come Term with depth, ma ricevo questo errore:

Notice: Undefined index: term_node_tid_depth_1 in eval()

Purtroppo per il mio scopo non posso utilizzare un unico filtro semplice per la tassonomia, ma avendo una gerarchia mi serve il tipo depht.

Che dici ... ci devo rinunciare ??

grazie ancora
ciao

Quote:
Ho provato ad inserire il tuo codice, mantenendo però il filtro come Term with depth, ma ricevo questo errore:

Notice: Undefined index: term_node_tid_depth_1 in eval()


Molto probabilemente ti da quell'errore perchè accedi alla pagina senza aver cercato nulla, per cui quel valore in $_GET non esiste ancora. Basta un semplice if(isset($_GET['term_node_tid_depth_1'])) prima del print.
Per quanto riguarda il tuo quesito, purtroppo non ho mai lavorato con i Term with depth, per cui non saprei dirti... a meno che non mi dici che 17724 (il valore di term_node_tid_depth_1) non è l'id di un termine, anche se dubito tu abbia più di 17000 termini.
;)

Grazie Gioppy
ho visto solo adesso la tua risposta.
Sì 17724 è proprio l'ID del termine, ma non mi chiedere perché ... Drupal ha creato numeri molto alti in maniera autonoma (forse sono così alti perché sono termini gerarchici padre-figlio).
Pensi che questa informazione possa esserti utile ad indicarmi come scrivere il codice?

Ti ringrazio di nuovo per tutto l'aiuto e ti auguro Buone Feste
ciaoo

Ciao,
Drupal non fa distinzione (con gli id) se si tratta di padre o figlio. La gerarchia viene gestita da una tabella a se stante. Se l'id della categoria è 17724 significa proprio che sono stati inseriti 17724 termini (a meno che non ci sia qualche modulo di mezzo che va ad alterare questa cosa, ma la vedo dura!).
Se quello è il termine, allora potresti utilizzare le api di Druapl, sempre tenendo per buono che il 17724 sia il tid dell'ultima figlio:

<?php
/*
* carichiamo tutti i genitori di questo termini
* la funzione ritorna un'array di oggetti di termini
*/
$tree = taxonomy_get_parents($_GET['term_node_tid_depth']);
foreach(
$tree as $item){
 
//ciclo tra gli oggetti e li stampo uno ad uno a video
}
?>

Più o meno la logica dovrebbe essere questa (non te lo dire con precisione, dovrei provarlo!)
;)

Ciao Gioppy
e Buone Feste !!
Ripensandoci hai ragione ... gli ID inseriti sono molti perchè ho creato anche la tassonomia per i termini Regione-Province-Città-Comuni-Cap ... lo avevo dimenticato.

Riprovo il codice e ti dico.

Grazie di nuovo
ciaoo