2012-02-23 8 views
0

동일한 모듈에서 정의한 메뉴 경로로 ajax 호출을해야하는 모듈을 개발하는 중입니다.Drupal 7 메뉴, clean-urls 없음

function staff_filter_menu(){ 
     return $items['staff/filtering/results'] = array(
      'page callback' => 'staff_filter_function', 
      'type' => MENU_CALLBACK, 
     ); 
    } 

    function staff_filter_function(){ 
     drupal_json(array('status' => 0, 'data' => "staff_filter_function RESPONDING!")); 
    } 

그리고 JS 코드 :

는 아래 hook_menu 기능입니다

(function($){ 

$(document).ready(
function(){ 
    $results = $.get('http://localhost/test1.localhost/?q=staff/filtering/results'); 

    //$results = $.get('http://localhost/test1.localhost/?q=admin/config/people'); 
    //$results = $.get('http://localhost/test1.localhost/admin/config/people'); 
}); 

})(jQuery); 

첫 번째 줄 (내 정의 메뉴 호출이) 실패하고 불을 지르고에서 404 오류를 반환합니다.

그래서 나는 2 개의 다음 메뉴 인 기존의 임의 메뉴를 시도했습니다. 하지만 나는 깨끗한 URL로 하나의 작품을 만들었고, 다른 작품은없이 만들었습니다. 깨끗한 URL로 설정된 기존 메뉴도 실패했지만 깨끗한 URL이 아닌 동일한 메뉴가 정상적으로 작동했습니다. 내 로컬 호스트 설치에 관계없이 내가 무엇을하려고의 깨끗한 URL을 함께 일할 행복하지 않기 때문에

, 나는 관계없이 사이트 또는 내가 끝낼 경우 특히 (깨끗한 URL을하지 않고 작동하는지 내 모듈을 유연하게하는 기술이 필요 그것을 공개).

감사합니다.

답변

0

Drupal 함수 URL을 사용할 수 있습니다. 클린 URL이 켜져 있거나 꺼져있는 경우 적절히 조정됩니다. 예를 들어

:

<a href="<?=url('node/' . $node->nid, array('alias' => FALSE))?>"> 

중 하나를 반환합니다 :가 켜져있는 경우 깨끗한 URL의 전원이

또는

NODE_ALIAS

입니다

?q=NODE_ALIAS합니다.

내 로컬 호스트에서 비슷한 문제가 발생하여 번거 로움이 줄어 들었습니다. URL 기능에 대한 자세한 내용은 http://api.drupal.org/api/drupal/includes%21common.inc/function/url/7

+0

감사합니다. 매력처럼 작동했습니다. – sisko