2010-04-14 2 views
2

깨끗한 URL을 사용하여 GET 값을 받아 들일 수있는 Drupal 페이지 (컨텐츠 유형 페이지)가 있습니다.사용자 정의 페이지의 Drupal 클린 URL GET 요청

PHP 코드 입력 형식을 사용하여 페이지 본문에 다음 코드를 입력했습니다.

<?php 
    $uid = $_GET['uid']; 
    $user = user_load($uid); 
    print $user->name; 
?> 

다음 링크 http://www.example.com/mypath/?uid=5은 사용자 5의 이름을 표시합니다. 큰.

내 질문은 : http://www.example.com/mypath/5으로가는 것이 동일한 결과를 갖도록 깨끗한 ​​URL을 사용하여 수행 할 수 있습니까? (보기에서 인수 사용과 비슷 함)

+0

사용하여 example.com – Greg

+0

할 것 URL을 참조하십시오. 감사. – draenen

답변

2

모듈에서 hook_menu을 사용하여 메뉴 시스템에서 묻는 것을 할 수 있지만 그 일부가 이름 인 별칭은 만들 수 없습니다. 전체 별칭은 이름이므로 정보를 추출 할 수 없습니다. hook_menu 사용하여이 작업을 수행 할 수 있습니다

function my_module_menu() { 
    $items = array(); 

    $items['path/%user'] = array(
    'title' => 'Title', 
    'page callback' => 'callback', 
    'page arguments' => array(1), 
    'access callback' => '...', 
    'access arguments' => array(...), 
); 

    return $items; 
} 

그런 다음 콜백 함수에서 당신은 (실제로이 때문에 %user의로드 된 사용자 개체 것)이 UID에 해당하는 경로의 값 또는 인수 일을해야합니다.

0

Views를 사용하여 이러한 페이지를 어셈블하는 경우 UID를 URL에 제공된 인수로 넣어 쉽게 작성할 수 있습니다.

2

예. $ _GET 대신 arg()를 사용하십시오.

arg()는 기본적으로 $ _GET [ 'q']을 사용하므로 결과를 반환하기 전에 별칭을 효과적으로 변환합니다. 따라서 액세스하려는 매개 변수가 다른 위치에있을 수 있습니다.

예를 들어 경로 myalias/5는 taxonomy/term/5로 변환 될 수 있습니다. 이 경우, 인수 (2) 드루팔 인수() 함수에 대한 자세한 내용은 5

을, 예를 들어 http://api.drupal.org/api/function/arg/6

+0

좋은 아이디어. 그러나 http://api.drupal.org/api/function/arg/6에서는 googletorp에서 제안한 것처럼 arg()를 사용하는 것이 메뉴 콜백보다 읽기 쉽지 않습니다. 두 가지 방법을 시도하고 어떤 것이 가장 잘 작동하는지 봅니다. – draenen