2010-06-02 4 views
2

기존 Drupal 설치를 대신했으며 사이트 검색 결과에서 단일 페이지를 제거하도록 요청 받았습니다. 나는이 질문을 통해 lullabot 튜토리얼을 알고있다. : Hide Drupal nodes from search,하지만 실제로는 단일 페이지를 제외하고 싶을 때 콘텐츠 클래스를 제외시키는 것에 대해 이야기하고있다.Drupal - 검색 색인에서 단일 페이지 숨기기

search_index 테이블에서 노드를 수동으로 삭제하려고 시도했지만 작동하지 않는 것 같습니다.

검색 색인에서 단일 정규 콘텐츠 페이지를 제외하기위한 권장 사항은 무엇입니까?

답변

0

문제는 검색 색인이 1) 액세스 권한을 따릅니다. 사용자를 위해 단일 페이지를 숨기는 모듈은 개인 모듈입니다. 노드 단위 액세스 설정을 허용하는 모듈입니다. 검색은 액세스 설정을 따르고 검색 결과에서 숨겨진 페이지를 숨 깁니다. 기술적으로 완전히 정확하지

1)

+0

자체가되지 않은 인증 된 사용자가 액세스 할 수 있어야 페이지를 필요위한 완벽한 도구입니다 (이 규정을 준수하기 위해 필요한 것 양식의), 그러나 우리 직접적인 사람들 만 원한다. 그것을 사용하도록 초대되었습니다. 따라서 메뉴에 없거나 어디서나 연결되어 있지만 이메일의 직접 링크로만 제공됩니다. 색인에서 이것을 어떻게 수동으로 제거 할 수 없습니까? – ilowe

+0

두 가지 : 1.이 작업이 잘못되었습니다. 그런 초대 만하는 물건을 원한다면 당신은 정말로 orivacy 시스템이 필요합니다. 개인 모듈은 그 해결책의 일부이지만, 일종의 일회성 URL 시스템이 필요합니다. 그렇지 않으면 안심할 수없는 안목이 있습니다. 드루팔 (Drupal은 도움이되지 않습니다. 2. 때문에 Drupal은 당신을 도울 수 없습니다. 드루팔 (Drupals) 인덱싱은 액세스 시스템을 따르기 때문에 검색에서만 삭제할 수 없습니다. "적절한"시스템을 사용하는 경우 페이지에 액세스 할 수없는 사용자를 위해 페이지가 색인에 표시되지 않습니다. 당신은 그것을 "무료로"얻을 – berkes

+0

도움 주셔서 감사합니다, berkes. 이 사이트는 현재 유지 보수 전용이며 앞으로 2 개월 내에 재개발 될 예정이므로 개인 정보 보호 모듈을 구현하지 않을 것입니다. – ilowe

2

나는 단지 비슷한 (노드별로 노드에서 검색 색인에서 특정 CCK 필드를 숨기기)를 해결 했어 - 일부 추적했다,하지만이 밝혀졌다 답 수 :

<?php 
function mymodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { 
    switch ($op) { 
    case 'view': 
     $nid = ---insert your node id here---; 
     if ($node->build_mode == NODE_BUILD_SEARCH_INDEX && $node->nid == $nid) { 
     unset($node); 
     }  
    break; 
    } 
} 
?> 
+0

이 방법이 효과가있을 수 있지만 어떤 경우에는 그렇지 않을 수 있습니다. 문제는 nodeapi가 인덱싱 중에 호출되는 후크 중 하나에 불과하다는 것입니다. 일부 입력란 (예 : 스스로 검색 인덱스에 정보를 제공하면 노드가 다시 인덱스에있게됩니다. 게다가 emty는 여전히 색인에 앉아 있지만 노드 자체. 작동하지 않을 수있는 추한 솔루션 :) – berkes

+0

나는 여기에 관련된 다른 후크를 알고 싶습니다. – lazysoundsystem

+0

... 왜 추악하다고 생각하니? – lazysoundsystem