net과 SE를 잠시 탐색 한 후에 2 contextual filters
와 OR 을 결합하는 좋은 해결책이 없습니다 (기본 AND 대신).
이 포스팅은 언급 PHP 해킹 이 게시물 대한 링크가 문제 의 최근 변화라는 전망 7.x의-3.1 . 또한 hook_views_query_alter(&$view, &$query)
뷰를 수정하는 데 사용 하는 방법에 대해서도 언급 합니다.
누구든지 실제 사례 또는 더 나은 솔루션을 가지고 있습니까?
net과 SE를 잠시 탐색 한 후에 2 contextual filters
와 OR 을 결합하는 좋은 해결책이 없습니다 (기본 AND 대신).
이 포스팅은 언급 PHP 해킹 이 게시물 대한 링크가 문제 의 최근 변화라는 전망 7.x의-3.1 . 또한 hook_views_query_alter(&$view, &$query)
뷰를 수정하는 데 사용 하는 방법에 대해서도 언급 합니다.
누구든지 실제 사례 또는 더 나은 솔루션을 가지고 있습니까?
답변:
이 문제의 패치를 사용해보십시오 : 인수에서 필터 값 가져 오기
컨텍스트 필터에서 "일반 필터"로 값을 전달할 수 있습니다. 거기서 당신은 당신의 고급 조건을 할 수 있습니다.
시작 주석 스레드 여기에는 효과적인 해결 방법을 설명합니다. MotoTribe는 동일한 스레드에 연결되었지만 질문 당시에는 해당 페이지에 실제 예제가 없었습니다. 이제 다음과 같이 있습니다.
모듈에서 다음을 구현하십시오 hook_views_api()
.
function MODULENAME_views_api() {
return array(
'api' => 3,
);
}
그런 다음 MODULENAME.views.inc라는 새 파일을 모듈에 추가하고 다음을 구현하십시오 hook_views_query_alter()
.
function MODULENAME_views_query_alter(&$view, &$query) {
if ($view->name == 'whatever_your_view_is_called') {
$query->where[0]['type'] = 'OR';
}
}
이 경고에 유의하십시오.
모든 뷰와 함께 제공되는 "콘텐츠 : 게시 (예)"필터는 상황 별 필터 (그룹 0)와 동일한 필터 그룹의 일부로 간주됩니다. 따라서 컨텍스트보기 (게시 된 AND (arg1 OR arg2 OR ...))로 지정된 그룹에 속하는 게시 된 노드 만 뷰에 표시 하려면 "Content : Published (Yes)"를 새 필터 그룹 ( "및 / 또는 재정렬"대화 상자 사용). 새 그룹 (다른 그룹은 없었 음)으로 이동 한 후 UI에 "Content : Published (Yes)"필터가 다르게 표시되지 않았지만, 전달 된 쿼리 객체에서는 hook_views_query_alter()
이동했습니다. 그룹 0에서 그룹 1로 묶어 위 함수의 코드가 더 이상 영향을 미치지 않습니다.
AND 대신 컨텍스트 필터를 OR 과 함께 사용하도록 뷰 핸들러를 변경하는 모듈이 있습니다. 뷰 컨텍스트 필터 OR
상황 별 필터 및 필터 그룹 의 상황 은 실제로 어둡습니다. 이 Toppic에 대한 Do의 스레드는 다음과 같습니다. @CoreDumpError와 동일한 솔루션을 제공합니다.
https://drupal.org/node/1451218
또한 여기에 충돌하는 상황에 맞는 필터와 노출 된 필터를 해결하는 데 도움이되는 모듈이 있습니다 ... Views Filter Harmonizer