Personalizzare con Views la visualizzazione della tassonomia in Drupal 5.3

[UPDATE] Purtroppo, come temevo, la procedura descritta in questo post non è riproducibile, quindi eventualmente qualcuno riesca a trovare una soluzione standard è pregato di segnalarmelo, grazie.

Torniamo a parlare di Drupal su un blog Wordpress :-D

Nello sviluppo del solito sito della mia comitiva, mi son trovato dinanzi al problema di rendere la gestione delle foto un po’ più flickr-like, che fa tanto figo oltre che essere molto usabile. Partiamo!

Ingredienti:

Inutile stare a disquisire su come installare Drupal coi suoi moduli, quindi partiamo con il sistema già pronto e configurato. Nel prosieguo mi riferirò a concetti legati alla categorizzazione delle foto, ma il tutto può essere ovviamente astratto per l’uso con qualsiasi tipo di documento.

  1. Come prima cosa, creiamo il nuovo tipo di nodo chiamandolo foto e usando i moduli imagefield e imagecache per fargli gestire le foto, appunto.
  2. Poi aggiungiamo un bel vocabolario: foto tags e associamolo al tipo di nodo foto.
  3. Ora andiam nel pannello di impostazione di pathauto e impostiamo i percorsi per i nodi foto e i relativi tags:
    • Pattern for all foto paths: foto/[user]/[nid]
    • Pattern for all foto tags paths: foto/tags/[cat]
  4. Bene, prima di tutto, popoliamo un po’ il nostro foto-blog ché sennò non possiamo visualizzare niente :-D
  5. Ora andiamo a creare la nostra bella query tramite il modulo Views. Senza star qui a scrivere a vanvera, sappiate che potete tranquillamente importare la vista da usare usando questo file qui. Giusto per conoscenza, con questa query viene usato come argomento il nome del termine della tassonomia, che nel nostro caso è il tag associato alle foto. Inoltre, io ho usato la classica list view (molto maneggevole), ma sentitevi liberi di usare le visualizzazioni che più vi aggradano :-D L’unica cosa importante, ora, è che l’url di questa vista sia uguale a quella usata con pathauto per il path dei tags associati alle foto, escluso il parametro [cat] (quindi in questo caso l’url deve essere foto/tags)!
  6. Bene, salviamo la nostra nuova vista e proviamola: niente di nuovo, la classica pagina della tassonomia. Ora, quindi, dobbiam indirizzare l’url foto/tags non verso la tassonomia, ma verso la nostra vista personalizzata. Per fare questo, useremo il modulo taxonomy redirect opportunamente modificato.
  7. Apriamo il file sites/all/modules/taxonomy_redirect/taxonomy_redirect.module con un buon editor di testo (ehm… no, non intendo né Notepad né Word) e andamo alla riga 6 dove troviamo:
    return ($path == NULL ? 'taxonomy/term' : $path) . "/$term->tid";

    e sostituiamola interamente con questa riga:

    return ($path == NULL ? 'taxonomy/term' : $path) . "/" . strtolower($term->name);

    Cosa abbiamo fatto? Il modulo taxonomy redirect di per sé reindirizza tutte le chiamate alla tassonomia verso un url personalizzato, ma lo fa aggiungendo alla fine dell’url l’ID del termine della tassonomia (il nostro caro tag); ma a noi serve che aggiunga il nome del termine (il tag stesso) e con questa modifica lo abilitiamo a farlo*

  8. Ora andiamo nella pagina di configurazione di taxonomy redirect, mettiamo il segno di spunta in corrispondenza del nostro vocabolario (qui foto tags) e nel campo Destination inseriamo la stessa url messa nella vista (ossia foto/tags).
  9. Salviamo il tutto e andiamo di nuovo a vedere la pagina associata al nostro tag e sperando che tutto sto popò di procedura sia riproducibile, dovreste vedere la vostra vista personalizzata della tassonomia ;-)

Scherzi a parte, tutto questo bel girotondo l’ho verificato solo in locale, ma sembra aver funzionato bene finora. Più che una guida, questa vuole essere un’esortazione a provare questo procedimento, in modo da vedere se il tutto funziona correttamente, quindi sono molto ben accetti suggerimenti e critiche.

*in più occasioni l’autore del modulo taxonomy redirect ha ribadito che il suo modulo non dovrebbe essere in grado di fare quello che gli stiamo chiedendo, forse perché la modifica crea nel sistema vulnerabilità che non son ancora state verificate, quindi procedete con cautela e fatelo a vostro rischio. Se proprio non volete rischiare, potreste usare comunque l’ID del tag modificando in pathauto [cat] con [tid] e nella vista l’argomento Taxonomy by term con Taxonomy by ID, in modo da continuare a vivere tutti felici e contenti! :-P

3 Commenti

  1. 1

    Grandissimo! Questa è la prova che views è un modulo potentissimo, e che sotér è un gravo genio drupallatore ;)

    24 Ott 2007 21:53

  2. 2

    Eh, vabè, però potrebbero evitare di far fare tutti sti salti mortali. Mi son dimenticato di aggiungere che in questo modo non si toccano i file del template, così da fare tutto via web. Però, ovviamente, il modo per fare tutto questo via PHP c’è… solo che non mi va di trovarlo :-P

    24 Ott 2007 22:18

  3. 3

    soter dai, ora basta…. DU PAL! :P

    25 Ott 2007 01:16

Scrivi un commento