뷰 컨텍스트 필터를 사용하는 방법 또는


18

net과 SE를 잠시 탐색 한 후에 2 contextual filters와 OR 을 결합하는 좋은 해결책이 없습니다 (기본 AND 대신).

이 포스팅은 언급 PHP 해킹게시물 대한 링크가 문제 의 최근 변화라는 전망 7.x의-3.1 . 또한 hook_views_query_alter(&$view, &$query)뷰를 수정하는 데 사용 하는 방법에 대해서도 언급 합니다.

누구든지 실제 사례 또는 더 나은 솔루션을 가지고 있습니까?


현재로서는 더 나은 해결책이 없다고 생각합니다. 당신이 지적한 스레드에서 말했듯이, 그것은 분명히 진행중인 문제입니다. 이번 주에 같은 문제가 발생하여 첨부 파일이있는 해결 방법을 찾아야했습니다. 그러나 그것은 혼합 된 목록을 제공하지 않지만 두 개의 연결된 목록을 제공하므로 모든 요구 사항에 맞는 것은 아닙니다.
Countzero

답변:



7

시작 주석 스레드 여기에는 효과적인 해결 방법을 설명합니다. 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로 묶어 위 함수의 코드가 더 이상 영향을 미치지 않습니다.


1
최소한 OP의 질문에 대한 언급의 관련성을 역설적으로 표현하는 것이 좋습니다. 링크가 지속되지 않을 수 있으므로 링크 만 답변하지 않는 것이 좋습니다.
Triskelion

@Triskelion : 아, 그렇습니다. 그 문제를 해결하기 위해 응답을 편집했습니다.
coredumperror


2

상황 별 필터필터 그룹 의 상황 은 실제로 어둡습니다. 이 Toppic에 대한 Do의 스레드는 다음과 같습니다. @CoreDumpError와 동일한 솔루션을 제공합니다.

https://drupal.org/node/1451218

또한 여기에 충돌하는 상황에 맞는 필터와 노출 된 필터를 해결하는 데 도움이되는 모듈이 있습니다 ... Views Filter Harmonizer

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.