Precedentemente avevo scritto una patch per views che pemetteva di andare ad indicare delle classi specifiche alle singole righe delle views. Considerato che modificare il codice di un modulo lo considero una delle cose più pericolose nonché sbagliate, e in considerazione del fatto dell'enorme modularità raggiunta da Drupal 7 con le funzioni di autoloading, ho deciso di separare la patch creando un modulo apposito. Attualmente questo modulo si trova in una sandbox, vediamo come ottenerlo e come usarlo (e perché!).
Ultimamente, lavorando con Omega in diversi siti, mi è capitato di dover fare un pò di "magie" per riuscire ad ottenere il risultato desiderato. Il problema principale che ho riscontrato è che le views permettono di aggiungere classi ai singoli field, al wrapper della vista stessa, o una classe uguale per tutti le righe, ma non permette di inserire classi personalizzate per ogni riga. Questo, nelal versione per Drupal 6 e views 2, era risolvibile ricorrendo a Semantic Views, ma per Views 3 non abbiamo ancora uno strumento che ci permette di fare quanto richiesto. Per risolvere questo problema ho scritto una piccola patch (attenzione, non mi assumo responsabilità in merito :) ) che permette di definire per ogni singola riga, o per righe particolari (prima/ultima, pari/dispari) delle classi specifiche. Vediamo come applicare questa patch e come funziona.
Chi avesse iniziato ad utilizzare Drupal 7 si sarà senz'altro d'accordo che stanno nascendo dei temi di partenza molto sofisticati da cui partire per la realizzazione di temi, in particolare sta emergendo sempre più Omega 3.
Questi temi, però possono avere necessità di essere estesi per aggiungere nuove funzonalità, in particolare potremmo avere necessità di usare una griglia differente da quelle che queesto tema di partenza ci mette a disposizione; vediamo quindi come aggiungere una griglia customizzata nel nostro sottotema di Omega 3.
Negli articoli precedenti ho ampiamente fatto capire che come editor utilizzo il nostro amato (e leggero) gedit.
Ho anche fatto vedere le potenzialità offerte da un metalinguaggio come SASS per la scrittura dei CSS, ovviamente la potenza è nulla senza controllo, quindi vediamo come mettere tutto sotto il controllo di gedit ;)
Come indicato nell'articolo precedente abbiamo visto la comodità di usare un metalinguaggio per i CSS come SASS. Ovviamente i browser non sono in grado di utilizzare direttamente questi file, ma necessitano di ricevere del codice CSS standard.
Questa operazione (NdA:la conversione da SASS a CSS) viene effettuata compilando i file SASS in modo da ottenre i CSS. Il fatto di dover compilare per ottenre dei CSS non deve affatto spaventarci, è un operazione che viene compiuta in automatico in maniera del tutto trasparente a chi scrive i file.
Vediamo ora come installare il tutto e automatizzare questo processo.
I CSS sono uno degli elementi che nel corso degli anni, nel settore del web, si sono meno evoluti dal pundo ti vista della struttura utilizzata. Nelle corso delle diverse versioni sono state aggiunge solo proprietà e selettori nuovi.
Probabilmente penserete:
Se non sono cambiati tantomeglio, evito di dover imparare qualche cosa di nuovo!Purtroppo, non essendosi evoluti non abbiamo a disposizione cose che potremmo ritenere molto comodo, pensate ad esempio alla possibilità di creare variabili con larghezze, poter effettuare dinamicamente operazioni sulle stesse (per esempio questa colonna è pari alla metà della larghezza della colonna principale), oppure il colore di un selettore è pari al colore definito come colore-base a cui viene rimosso "un pò" del colore rosso.
Bene, vediamo cosa si può fare per migliorare (e semplificare) il nostro lavoro di realizzazione di CSS.
La tagcloud, elemento molto in voga fino a poco tempo fa e che un pò alla volta sta scemando, ma che comunque non va mai dimenticata per diversi motivi (aiuta gli utenti, fa bene al SEO, ...) Vediamo ora come realizzarla tramite views.
Se vi fosse mai capitato di lavorare con Panels (o Panels2) quasi sicuramente vi sarà capitato di dover creare un pagina con una struttura completamente diversa da quelle presenti tra le disponibili di default del modulo, come possiamo ovviare a questo problema?
Le soluzioni sono molteplici, usare una struttura simile a quella che ci interessa e poi sopperire alla diversa visualizzaione con dei CSS, oppure usare dei panels all'interno di altri panels (obrobrio!) o l'ultima soluzione, e secondo me più pulita, è quella di andare a creare un nuovo layout, in modo che rispetti la struttura che abbiamo in mente. Vediamo come fare.