2011-02-01 1 views
2

나는 CCK를 통해 검색하기 위해 Drupal6에서 사용자 정의 검색 모듈을 만들고 싶습니다. 나는 노드 (node.uid = x)와 특정 유형 (type = 'xyz') 사이에서 검색 할 사용자가 필요합니다. hook_search를 구현해야한다고 생각하지만 필자는 필터를 넣을 위치를 모른다. .. 누가 도와 줄 수 있니? 미리 감사드립니다. c.Drupal : 컨텐트 유형에 대해서만 hook_search

답변

1

노출 필터가있는 Views을 만들 수도 있습니다. 아이디어를 구현하는 가장 쉬운 방법입니다.

0

또한 CCK Facets을 사용해보세요. 뷰는 물론 간단합니다.

2

이미 답변을 수락하셨습니다 (아마도 가장 좋은 방법 일 수 있습니다).하지만이를 수행하는 데는 몇 가지 다른 방법이 있습니다.

IIRC, Custom Search 모듈은 원하는대로 작동합니다.

hook_search 함수를 사용자 정의 모듈에 복사하고 쿼리를 수정할 수 있습니다. 당신이 뭔가를 할 수 있습니다


// ... 
case 'search': 
    // Build matching conditions 
    list($join1, $where1) = _db_rewrite_sql(); 
    $arguments1 = array(); 
    $conditions1 = 'n.status = 1'; 

    // NEW BIT START 
    $allowed = array(
     'content_type_1', 
     'content_type_2', 
     'content_type_3', 
    ); 

    $types = array(); 
    foreach ($allowed as $t) { 
     $types[] = "n.type = '%s'"; 
     $arguments1[] = $t; 
    } 
    $conditions1 .= ' AND ('. implode(' OR ', $types) .')'; 
    $keys = search_query_insert($keys, 'type'); 
    // NEW BIT END 

이 실제 쿼리 문자열에서 유형을 추출 비트를 대체합니다.

n.uid으로 다시 작성하려면 비트를 추가해야합니다. 최근에이 방법을 사용 해왔다. 사용자의 관점에서 보면 사용자 지정 검색이 더 간단하기 때문이다.

HTH

+0

감사합니다. 정말 분명하고 유용합니다 !! – Cris