2017-12-12 7 views
1

URL 경로를 확인하고 문자열이 exact/page가 부모 인 경우에만 작동하는 템플릿 파일 (Drupal 7) 내에 간단한 조건부를 구현하려고합니다. 현재 조건부 작업이 있지만 조건이 충족되면 URL 문자열의 하위 페이지에 대해 조건이 계속 실행됩니다. 예컨대 :PHP 일치 문자열 상위 수준 URL 문자열 만. 하위 디렉토리 경로 무시 ​​

$url_vars = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 
if (strpos($url_vars, 'parent-page') !== false) { 
// Do something 
} 

이 여전히 아무것도 계층에 대한 운영 : 조건이 엄격 만이 아니라 하위 디렉토리를 상위 디렉토리를 관리하도록

parent-page/sub-page 

가 어떻게이 일을해야합니까? 어떤 지침이나 아이디어라도 큰 도움이 될 것입니다. 이 프런트 엔드가 아닌 서버 측을 처리하는 것을 선호합니다.

감사합니다. 마크.

답변

1

나는 당신의 REQUEST_URI 문자열이 달라집니다 얼마나 정확하게 잘 모르겠지만,이 충분할 수있다 :

if(strpos($_SERVER['REQUEST_URI'],'parent-page')!==false && strpos($_SERVER['REQUEST_URI'],'parent-page/')===false){ 

이 단지 parent_page (정적 문자열)이 REQUEST_URI에 있는지 확인하고는이 없음을 후행 /

트릭을 수행하지 않는다면 URI 값에 대한 자세한 정보를 제공하십시오.

잠재적으로 유용한 참고 자료 : https://stackoverflow.com/a/4731027/2943403

+0

이 완벽하게 작동합니다. 나는 이것을 간과했다고 믿을 수 없다. 고맙습니다! –

0

당신은 '부모 - 페이지'와 URL을 폭발하고 하위 수준 인 경우에 볼 수있는 배열을 셀 수 있습니다. 제거합니다 '부모 페이지를'폭발하고 "HTTP : //"를 보유하고 하나 개의 항목으로 끝낼해야 나머지의 배열을 생성

$arr = explode("parent-page", $url_vars); 
If(count($arr) <= 1) { 
     // Parent-page 
} 

입니다.
두 번째 항목이 서브 페이지 인 경우.

-1

$_GET['q'] 변수는 현재 페이지 경로를 포함해야합니다. $url_vars 대신이 번호를 사용해보세요. 상황에 맞는 모듈에 좀 더 고급의 사용 검사에 대한

는 :

https://www.drupal.org/project/context