Allegato | Dimensione |
---|---|
![]() | 8.44 KB |
Premessa.
Ho un contenuto messaggio con un campo ggmm che contiene giorno e mese nel quale quel messaggio deve essere visualizzato.
Problema.
Devo realizzare una view/blocco che mi mostri un solo elemento, in base al giorno/mese odierno, ad esempio, il 15 marzo di qualsiasi anno visualizzerà sempre lo stesso messaggio.
Soluzione piuttosto semplice.
Il campo ggmm è di tipo data formattato in modo da richiedere solo giorno e mese (anche se ovviamente nel DB viene comunque memorizzato anche l'anno); nella view creo un filtro con data relativa impostata =today.
Funziona per 365 giorni all'anno, ma non per il 29 Febbraio!
Il problema è che l'utente non riesce ad inserire un messaggio per il giorno 29 Febbraio se l'anno corrente non è bisestile (vedi immagine allegata).
Ho anche pensato di sostituire il campo data ggmm con un textfield, ma non so come poter confrontare testo e data odierna nel filtro della view.
Qualcuno ha già affrontato il problema? Altre soluzioni?
Grazie 1000
Nessuna anima pia?
In attesa di qualche vostro input, ho trovato altre due possibili strade:
Poi dovrei aggiungere una condizione WHERE alla query della view:
WHERE field_ddmm = DATE_FORMAT(now(),'%m%d')
Ho provato il modulo Views Custom Conditions, ma è non mi permette di utilizzare la funzione DATE_FORMAT()
ma in questo caso non so come associare il filtro con il campo in questione (la vista è in un blocco, quindi non c'è URL)
Ovviamente riesco benissimo ad estrarre il record corretto con una query diretta sul db:
SELECT * FROM `field_data_field_mmdd` WHERE field_mmdd_value = DATE_FORMAT(now(),'%m%d')
Qualsiasi suggerimento sarebbe molto apprezzato!
EDIT: risolto con contextual filter.
Posto la soluzione nel caso dovesse servire a qualcuno:
Ciao