2013-03-15 1 views
1

ModX에서 사용자가있는 페이지를 기반으로 간단한 리디렉션을 만들려고합니다. 내 사이트에는 "About Us", "Careers"등과 같은 페이지에 대한 다양한 링크가 있습니다.이 척은 사이트의 모든 페이지에서 사용됩니다.modx php 현재 페이지 이름을 얻으십시오.

내 이슈가 여기에서 시작됩니다 - 채용 정보 페이지에는 사용 가능한 모든 채용 정보가 포함 된 새 페이지로 연결되는 링크가 있습니다. 사용자가 채용 정보 페이지에있을 때 청크의 채용 정보 페이지로 연결되는 링크를 클릭하면 직무 게시 페이지로 바로 연결되는 대신 직무 게시 페이지로 바로 연결됩니다.

경력 페이지 URL은 다음 형식으로되어 있습니다 :

www.example.com/index.php?q=careers.html 

그래서, 사용자가 채용 정보 페이지에있는 경우의 덩어리에 내 코드, 작업 목록에 리디렉션 :

<?php 
    if ($_SERVER['PHP_SELF'] == "index.php?q=careers.html") { 
     echo '<p><a href="www.joblistsite.com">Careers</a></p>'; 
    } 
    else { 
     echo '<p><a href="index.php?q=careers.html">Careers</a></p>'; 
    } 
?> 

하지만 이것은 작동하지 않습니다. 작업 목록 페이지 대신 커리어 페이지로 다시 연결됩니다. 나는 페이지의 ID를 사용하여 시도했지만, 그 중 하나도하지 않습니다. ModX에서 현재 페이지를 가져 오는 경우 문을 사용하면 에 무엇을 사용해야합니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

echo_ing $ _SERVER [ 'PHP_SELF']를 시도 했습니까? –

+0

'www.' 대신'http : // www.'를 사용 해보려고 했습니까? –

+1

modx에 대한 경험이 없지만 $ _SERVER 변수를 디버깅하고 그 안에있는 다양한 '키'의 내용을 확인하는 것이 최선의 방법입니다. 'echo '

'; print_r($_SERVER); echo '
';' – thaJeztah

답변

0

modx에 대한 경험이 없지만 변수를 디버그하고 그 안에있는 다양한 '키'의 내용을 확인하는 것이 가장 좋습니다.

echo '<pre>'; print_r($_SERVER); echo '</pre>'; 
1

여러분은 MODX를 처음 접했을 것입니다. 일반적으로 Wayfinder은 동적 메뉴를 작성하는 데 사용되므로 수행중인 것과 같은 하드 코드 된 솔루션의 필요성을 피할 수 있습니다.

을 시작하려면 : 당신이 원하는 것처럼 http://rtfm.modx.com/display/ADDON/Wayfinder+Introductory+Examples

는 현재 페이지에 관한 메뉴 항목이 표시됩니다 다른 &hereTpl 매개 변수를 지정할 수 있습니다, href 속성을 전환합니다. www.joblistsite.com url은 각 페이지에 설정된 템플릿 변수에 포함되어있을 수 있습니다.

+0

친숙한 URL을 사용하면 도움이됩니다. http://rtfm.modx.com/ display/revolution20/+ Friendly + URLs 사용하기 – okyanet

3

위의 솔루션은 (특히 WayFinder) 작동하지만 MODO를 사용하여 페이지 별칭을 지정하여 SEO 친숙한 URL을 생성 할 수있는 기능을 사용하는 것이 좋습니다. 이러한 별칭을 사용하면 현재 페이지를 쉽게 찾을 수 있습니다. 당신은 멀티 레벨 페이지를 처리하는 경우

$page_alias = $modx->resource->get('alias'); // get alias of the current page 

if($page_alias == 'something'){ 
// do something 
} 

것은 위의 작업을하기 위해 자원 부모를 취득 할 수 있습니다 :

간단하면서도 효과적인 솔루션은 현재 페이지 별칭을 사용하고 비교하는 것입니다 보다 효율적으로 :

$parent = $modx->resource->get('parent');