특정 날짜 전후로 Views에 Date 필터 조건 걸기

부제 : Views 필터 Filter 에 날짜 관련 Date CCK 필드가 안보이는 경우 (6.x 전용?)

한 컨텐츠 타입(이하 "강의 컨텐츠")의 목록을 보여주는 뷰가 있는데,
이 목록에서 강의 개시일이 오늘 이후로 작성된 강의 컨텐츠는
화면에서 보이지 않았으면...,
즉 강의가 이미 끝난 것은 뷰에서 빼라는 의뢰를 고객이 해 왔다.

그거야 쉽지 하고,
강의 컨텐츠의 등록일(Node : Posted Date)을 조정하려는 실수를 했다.
가만 보니 컨텐츠 등록일과 컨텐츠의 "강의 개시일"은 다른 것이었다. 당연!

그래서 이번에는 강의 개시일 CCK(강의 컨텐츠의 필드 중 하나)를
뷰로 조작하려 했다. 통상적으로는 Filter에 가서 해당 CCK 필드를
고르고 등호,부등호,또는 교집합/합집합 등의 설정으로 뷰 변경하면 되는데...

이게 왠일인가? 뷰의 필터 항목에 "강의컨텐츠 타입 : 강의 개시일"이
나타나지 않는 것이 아닌가. 그 뿐만 아니라 Date 형태의 다른 필드들도
보이지 않았다. 이러면 어떻게 날짜로 필터링을 걸지? 싶어 drupal.org에서 검색했다.

생각보다 많은 기사들이 검색됐다.
그만큼 이 문제가 많은 드루팔 이용자들에게 이슈가 된 증거다.
결정적인 답은 아래 기사가 가지고 있었다. 첫 번째 답변 부분.

http://drupal.org/node/391120

*** 해결책은, "Content: 필드명"을 이용하는 대신
"Date : Date"를 이용하는 것이었다.

이 필드를 추가하고 나면 설정이 조금 복잡해 지는데...
다른 것은 건드리지 않고(상황에 따라 Trial and Error 바람),
- OR / AND가 있는 Method 부분은 AND로 하고,
- Date 형태를 이용하는 컨텐츠 필드 Date field(s):중에
"강의컨텐츠 타입 : 강의 개시일"을 선택해 주었다.

그 다음에 나오는 상세 설정(필터 조건)에서는,
Is greater than or equal to을 선택하고,
Relative value의 Date Default에는 now +0 day를 입력해 주었다.
이는 오늘 날짜를 지난 컨텐츠를 보여주지 않겠다는 필터 조건이다.

이로써 고객이 원하는 사양을 만족하는 뷰를 만들 수 있었다.
드루팔 뷰, 역시나 복잡하고 강력했다.

Your rating: None 평균 : 5 (2 votes)