Date típusú CCK mezőre nem tudok szűrni Views-ban

zorgoz képe

Sziasztok!

Van egy tartalomtípusok (Hírek, események), amihez felvettem egy mezőt CCK-val (lejarat). Ez egy dátum mező a Date modul segítségével, lehet, hogy ez fontos.
Ez idáig szép, mivel a tartalom beküldésekor a mező meg is jelenik, meg minden.
De amikor a Views-ban fel akarom használni, akkor megjelenítendő mezőnek és rendezési elvnek is fel tudom használni, csak épp szűrőfeltételnek nem. Egyszerűen nem jelenik meg a listában a többi mező között.
Mit lehet ilyenkor tenni?

Előre is kösz, ZéZé

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
nevergone képe

Gyorsan kipróbáltam egy tesztkörnyezetben, és találtam egy lehetséges megoldást.

Az én mezőm neve "field_date" az adatbázisban, és CCK -val rendeltem egy már létező tartalomtípushoz.
Utána a Views -ban a mezők hozzáadásánál ki tudtam választani:
"Tartalom: Datetime: dátum (field_date)"

Ha ez megtörtént, akkor a szűrőknél elérhető volt egy mező:
"Dátum: Dátum
Filter any Views date field."

Ezt kiválasztva és hozzáadva már tudtam választani a lehetséges dátum mezők közül:
Tartalom: Datetime: dátum (field_date)

Picit furán van megoldva, de nekem működni látszik. :)

0
0
Pasqualle képe

tenyleg nagyon furan, de mukodik..

0
0
zorgoz képe

Ó, kösz. Valóban ott van és már választható is.
Csak az a sok baj vele, hogy a query-t elég kucifántosan gyártja össze

SELECT ... WHERE ... AND
DATE_FORMAT(STR_TO_DATE(node_data_field_outdate.field_outdate_value, '%Y-%m-%dT%T'), '%Y-%m-%d') >= '2008-10-29')
...

És így az, ahol ez a mező NULL, mert örökérvényű hír, nem kerül be. Próbáltam beírni a filterbe egy OR IS NULL-t de nem hatotta meg, amin kellmetlen, de nem meglepő.
Ok, feltettem a Views Or modult is, mert hát azzal majd tudok OR IS NULL-t hozzárakni. OR-t igen, de IS NULL nincs a választható operátorok között a dátum mezőnél (ez szerintem elég komoly hiányosság). Ha meg beírom a mezőbe, akkor abból is a mai dátum lesz :)
((DATE_FORMAT(STR_TO_DATE(node_data_field_outdate.field_outdate_value, '%Y-%m-%dT%T'), '%Y-%m-%d') >= '2008-10-29') OR (DATE_FORMAT(STR_TO_DATE(node_data_field_outdate.field_outdate_value, '%Y-%m-%dT%T'), '%Y-%m-%d') = '2008-10-29'))

Ez fölöttébb szomorú.

A megérzésem szerint két három van:

  1. kibővítem a Date modult
  2. berakom a mezőnek alapértelmezetten a világ végét
  3. vagy nekiállok és írok magamnak egy modult

Valami ötlet, hogy hogyan tovább? Előre is kösz.

0
0

SirZeZe

Pál úr képe

Küldesz egy issue-t a Views-hez, ami elképzelhető, hogy bekerül a fejlesztésbe.

0
0
Pasqualle képe

ez nem views kod, ez a date modul resze.

0
0
Pál úr képe

Sorry. Azért azt hiszem, a lénytegen nem sokat változtat... De akkor javítom magam: issue a date modulhoz :D

0
0
zorgoz képe

Valóban Date és nagyjából meg is van, hogy hol kellene ezt beletenni, de az SQL összerakós résznél belefulladtam, úgyhogy hagyom az eredeti fejlesztőjére. A projekt Issue-i között már szerepel, és a fejlesztő szerint támogatott is a 6.x-ben, de ez sajnos egyelőre nem terjed ki a Views integrációra. Remélem előbb-utóbb ki fog.
De azt nekem nincs türelmem megvárni úgyhogy áttérek a III. alternatívára és írok saját modult a feladatra.
Minden esetre köszönöm a hozzászólásokat és a segítséget.

0
0

SirZeZe