노출 된 필터보기와 검색을 결합하는 방법은 무엇입니까?


18

고객이 두 가지 방법으로 작동하는 단일 필드를 요청했습니다.

  • 분류를 기반으로 한 자동 완성 필터.
  • 사이트 방문자가 분류에없는 것을 입력하는 경우 컨텐츠 본문에서 전체 텍스트 검색을 수행하고 적절한 정보 메시지를 표시해야합니다.

이렇게하면 사용자가 카테고리 이름을 입력하면 직접 선택한 노드가 표시되고 다른 항목이 있으면 최소한 일부 컨텐츠를 얻게됩니다.

별도로 쉽습니다. 그러나 이러한 행동을 한 분야에서 결합하는 방법은 무엇입니까?


1
분류법에 따라 자동 완성 기능을 사용하는 모듈은 별도로 간단합니까? 나를 위해 트릭이 어떤 결과 변화가 없다가에 / 검색 / yourkeywordsearch 리디렉션되도록 버튼 액션을 제출 여부를 확인하는 작은 자바 스크립트 코드가 될 것입니다
sel_space

답변:


17

파인더 모듈은 요구 사항을 정확하게 수행합니다. 분류 제목과 노드 제목, 본문, 필드 등을 선택하여 검색을 수행 할 수 있습니다.

필요한 검색 양식을 얻기 위해 파인더 기능을 조합하는 방법에는 여러 가지가 있습니다. 파인더의 출력을 완전히 사용자 정의 할 수있는 많은 후크 및 테마 기능도 있습니다.

다음과 같은 목적으로 사용됩니다.

As a search tool to find a group of nodes or users.
As a way to navigate to a specific node or user page that matches criteria.
As an alternative to exposed filters for a Views module display.

아래 스크린 샷을 참조하십시오. 파인더 필드 에서 노드 본문뿐만 아니라 분류 체계 용어를 선택하여 자동 완성 노출 필드에서 검색을 수행 할 수 있으며 쉼표로 구분 된 여러 키워드 검색을 수행 할 수도 있습니다. 자세한 내용 은 Finder 설명서 를 참조하십시오.

여기에 이미지 설명을 입력하십시오

요소를 추가하면 목록에서 파인더 필드 를 선택할 수 있습니다 .

노드 : 본문 뿐만 아니라 분류 용어 를 선택하는 Ctrl 키


조금 낡았 고 공동 유지 보수가 필요하지만 내 요구를 모두 채우는 것처럼 보입니다. 테스트해야하지만 지금까지는 내 유스 케이스에 대한 완벽한 답변 인 것 같습니다.
Mołot

작동하는 것 같습니다. 약간 조정해야하지만 작업을 수행 할 수 있습니다.
Mołot

3

나는 테스트하지 않고 글을 쓰고 있지만 적어도 시작점으로 사용할 수 있다고 생각합니다.

뷰 필드 뷰 모듈을 사용하면 뷰를 다른 뷰에 포함시킬 수 있으며 컨텍스트 필터를 포함 된 뷰로 전달할 수도 있습니다.

귀하의 경우 주어진 필터를 검색하는 상황 별 필터가있는 다른보기 만 만들 것입니다. 문맥 필터를 통해 검색 할 수 있다면 그 시점에 확실하지 않지만 '검색 : 용어'와 같은 옵션을 보았습니다.

그럼에도 불구하고, 당신이 어쨌든이 첫 단계를 달성 할 수 있다면 나머지는 비교적 간단합니다.

원래보기에서 고급 옵션 섹션 아래에 '결과 없음 동작'을 추가하고 '전역 :보기 (보기 필드보기)'를 추가하고 이전에 작성한보기를 선택한 후 노출 된 필터의 토큰을 임베디드 뷰에 대한 컨텍스트 필터 (대체 패턴의 목록에서 토큰을 찾을 수 있음).


1
재미있는 아이디어이지만 작동시키지 못했습니다. 많은 구성과 Bala는 기성품 모듈을 게시했는데 마음이 아 lost습니다.
Mołot

예, Finder 모듈 에 대해 몰랐습니다 . 내 프로젝트에서도 사용할 것이라고 생각합니다. Finder가 원하는 것을 수행하면 의견을 알려주십시오.
Елин Й.

3

위의 논의를 거쳤으며 아래 시나리오는 '노출 된 필터와 검색을 결합하는 방법?'이라는 게시물을 해결할 수 있습니다. 구현에는 약간의 사용자 지정 코딩이 필요합니다.

  1. URL http://www.seedandspark.com/studio를 고려 하십시오 .
  2. 여기 왼쪽에 검색 양식이 있습니다. 이것은 사용자 정의 양식 ( form_id = 'sns_studio_form_filter')입니다.
  3. 콘텐츠 영역에는 약 7-8 개의 뷰 블록과 모든 동적 정보 생성 (익명 사용자의 경우 3 블록 만)
  4. 이제 각 뷰 블록에서 활성화 된 필터를 노출했습니다.
  5. 노출 된 필터를 보이지 않게 숨겼습니다.
  6. 뷰 노출 필터를 사용할 때 URL 구조를 기록했습니다.
  7. 사용자 정의 양식 제출 핸들러에서는 사용자 정의 양식의 필드에서 정보를 가져와 6 단계에서 언급 한 것과 유사한 URL을 생성합니다. 그리고 마지막으로 해당 URL로 리디렉션합니다. 제출 핸들러에서 다음과 같습니다.

    $form_state ['redirect'] = array(
      $path, 
      array(
        'query' => $params // $params is the url
      )
    );
    drupal_redirect_form( $form_state );

이제 7 단계가 실행되면 설정 한 필터 기준에 따라 모든 뷰 블록이 필터링됩니다.

도움이 되길 바랍니다.


3

또 다른 방법이 있습니다 : Concat Field 모듈을 사용해 볼 수 있습니다. 기본적으로 필드를 컨텐츠 유형에 추가 한 후이 필드를 기준으로 필터를 검색으로 사용할 수 있습니다.

Finder와 매우 유사하지만 동의하지만 여전히 언급 할 가치가 있다고 생각합니다.

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