상황에 맞는 필터에서 Global : Null을 사용하여 404를 반환하도록 뷰를 설정하려면 어떻게합니까?


14

표준 Drupal 동작은 요청 여부에 관계없이 모든 인수를 전달하는 것입니다. 때때로이 동작이 바람직합니다. 그러나 쿼리 문자열 외에는 404를 반환해야합니다.

문제의 예 http://drupal.org/project/modules http://drupal.org/project/modules/google.com <-404를 반환해야합니다. 주어진 200. 콘텐츠 페널티가 중복되었습니다!

전망 (404) 모듈은 기본적으로 당신이 인수가 통과하지 않는 것으로 가정합니다. 그러나 모듈의 D7 버전은 없습니다.

그러나 프로젝트 페이지에 따르면 인수에 대한 Global : Null을 설정하여 뷰에 대한 404도 수행 할 수 있다고합니다.

분명히 D7에서 "인수"는 "컨텍스트 필터"이지만, 원하는 결과를 얻기 위해 Global : null 컨텍스트 필터에 어떤 설정을 추가할지 확실하지 않습니다.

도움을 주시면 감사하겠습니다.

답변:


22

에서 콘텐츠 필터 를 선택 추가 ; 대화 상자가 나타나면 Global : Null을 선택하십시오 .

스크린 샷

상황 별 필터 추가 및 구성을 클릭하십시오 .

FIELDSET에, 옆에 표시되는 대화 상자에서 필터 값을 사용할 수 또는 기본값이 제공되는 경우 , 확인 검증 기준을 지정 , 선택 - 기본 검증을 - 위한 검사기 , 선택 "페이지를 찾을 수 없습니다"쇼를 위한 액션이 경우 수행 필터 값이 유효하지 않습니다 . FIELDSET에서 확인 어떤 인수가 주어진다면 실패 기본 검증을 .

스크린 샷

내가 만든 "기사"보기로 테스트했으며 작동합니다.

스크린 샷

스크린 샷

"Global : Null"인수는 마지막 인수 여야합니다. 예를 들어, 사용자 ID가 필요한 경우 먼저 사용자 ID를 인수로 추가 한 다음 "Global : Null"인수를 추가하십시오.

기사 기사 목록을 필터링하는 데 사용되는 사용자 ID를 인수로 허용하도록 "Article"보기를 변경했습니다. 추가 인수를 허용하지 않으므로보기가 여전히 작동합니다.

스크린 샷

스크린 샷


1
403이 아닌 404 코드 오류를 반환합니다. 선택 "쇼"페이지 "옵션 대신 찾을 수 없습니다
유진 Fidelin

DO의 스레드에서 누군가 arg (1) == NULL; PHP에서 코드를 확인하십시오. 이것이 더 좋거나 거의 같은 것입니까?
Nigel Waters

1
@EugeneFidelin "마스터"디스플레이를 편집하고 있는데 "페이지를 찾을 수 없음" 옵션 이 표시되지 않았습니다 . 나는 내 대답을 수정했다.
kiamlaluno

@NigelWaters 이전 답변을 잊어 버려요. :)잘못된 디스플레이를 편집하고 있는데보기가 제대로 작동하지 않았습니다. 인수를 검증하기 위해 PHP 코드를 사용할 필요는 없습니다. 업데이트 된 답변을 참조하십시오.
kiamlaluno

아직 의견을 말로 충분하지 않습니다-@kiamlaluno에게 감사를 표하기 위해 여기에 게시하십시오. 훌륭하게 작동하며 잠시 동안 머리를 두드리고있었습니다.
Blue Waters

1

즉시 사용 가능한보기 기능을 사용하여이 작업을 수행 할 수 있습니다. 모든 상황 별 필터 설정에서 "확인 기준 지정"확인란을 선택하면 더 많은 설정을 확인할 수 있습니다.

그런 다음보기 조건에 따라 "유효성 검사기"를 선택할 수 있습니다. 사용자 정의 유효성 검사를하려면 PHP 코드를 선택하십시오. 유효성 검사 조건에 따라 PHP 코드에서 True 또는 False를 반환하십시오.

마지막으로 디스플레이 액세스가 거부됨에 따라 "수행 할 작업"을 선택하십시오! nid 상황 별 필터는 아래 스크린 샷을 참조하십시오.

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


내가 추가 한 PHP 코드는 무엇입니까?
Nigel Waters

난 단지 글로벌을 사용하고 있습니다 : 널 (null) 상황에 맞는 필터
나이젤 워터스

3
보기 또는 다른 UI 도구에서 PHP 코드를 사용하지 마십시오 !!!
hugronaphor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.