Creare blocco view che legge l'url

6 contenuti / 0 new
Ultimo contenuto
Creare blocco view che legge l'url

Ciao
ho capito come creare una page view utilizzando gli argomenti.
Per esempio nel sito http://www.inmobiliariaeurogarden.eu riesco a visualizzare gli immobili che appartengono a una sottocategoria (es Pisos/Aticos) oppure a tutta la categoria (Alquileres).
Per ottenere questo risultato mi baso su l'url .../propiedades/alquileres/pisos_aticos dove propiedades è il nome della vista e utilizzo gli argomenti.

Volevo fare la stessa per un altro sito costruendo un blocco invece di una pagina. Non riesco però a capire come, attraverso gli argomenti, leggere l'url e passare i vari elementi del percorso come parametri.
Ho cercato un pò in giro ma non capisco se la cosa è fattibile

Grazie

uhm, hai provato a creare una view con un display pagina che ti gestisce gli argomenti nel path e un display blocco che visualizza quello che vuoi mostrare ed eredita gli argomenti dal display default?
Se non dovesse funzionare, puoi sempre creare una view con gli argomenti che ti interessano e poi fare l'embed della view in un blocco fatto di PHP code, in cui usi arg() per estrarre i pezzi dell'URL e passi gli argomenti a views_embed_view

Molto interessante la seconda soluzione :-)
Vi farò sapere a presto

Ciao
ecco la mia soluzione.
PREMESSE
- il blocco deve essere visualizzato in un ecommerce solo quando sto vedendo un singolo prodotto
- il blocco deve visualizzare i prodotti della stessa sottocategoria
ES creme > viso > crema occhi
se sono sul prodotto "crema occhi" visualizzerò anche tutti i prodotti relativi a "viso"
- i termini delle categorie possono contenere apostrofi ecc
ES "l'acqua rinfrescante"

Questo significa che per sapere in che categoria si trova il prodotto è meglio basarsi su numero invece che il testo a causa delle sostituzioni fatte da pathauto (il carattere ' diventa - ecc)

SOLUZIONE
- utilizzare pathauto
- per quanto riguarda i prodotti il patthern di sostituzione è
prodotto/[term-id]/[termpath-raw]/[title-raw]

- creare una vista "barraprodotti". La vista deve mostrare l'immagine e il titolo di ogni prodotto.
Inoltre si imposta come argomenti Taxonomy: ID Termine. In questo modo la vista si baserà sul numero della categoria del prodotto ([term-id])
- attivare nei moduli PHP filter
- creare un blocco con il seguente corpo

<?php
function myarg($i) {
$myargs = explode('/', request_uri());
$output = array_slice($myargs, 2); // If you use i18n use 3 else use 2
return $output[$i];
}
$viewName = 'barraprodotti';
$display_id = 'default';
$myNodes = myarg(0);
print
views_embed_view($viewName, $display_id, $myNodes);
?>

e indicando in Mostra il blocco su pagine specifiche: Mostra solo sulle pagine elencate.
prodotto/*

NOTE
ho dovuto utilizzare la funzione myarg perchè arg(2) non mi restituiva nessun valore

che differenza cè tra myarg e arg come funzioni?

Purtroppo ho visto che con arg non riuscivo a leggere tutti gli argomenti presenti nella barra url.
Per esempio se inserivo nella barra degli indirizzi www.miosoto.com/prodotto/2/libri/drupa-6 la funzione arg(2) non mi restituiva nessun valore.
La funzione personalizzata myarg, che ho trovato in giro, si basa invece sull'indirizzo url e quindi nell'esempio precedente myarg(0) restituisce come valore "2" che posso utilizzare correttamente nella view