2012-02-23 50 views
0

我正在開發一個模塊,它需要對同一模塊定義的菜單路徑進行ajax調用。Drupal 7菜單,但沒有清潔的網址

下面是hook_menu功能:

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代碼:

(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); 

第一行(調用我定義的菜單)失敗,並在Firebug返回404錯誤。

所以,我嘗試了一個現有的隨機菜單,它是以下2個菜單。但是我用乾淨的網站做了一件作品,另一件沒有。 用一個乾淨的URL設置的現有菜單也失敗,但不是一個乾淨的URL相同的菜單工作正常。

因爲我的本地安裝是不愉快的乾淨的網址工作,無論我怎麼努力,我需要一種技術來使我的模塊靈活的,無論該網站是否使用或不乾淨的URL(特別是當我結束工作放開它)。

我很感激任何幫助。

回答

0

您可以使用Drupal函數URL。如果幹淨的URL打開或關閉,這將相應地進行調整。

例如:

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

將返回:

?q=NODE_ALIAS如果需要啓用乾淨的URL是關閉

OR

NODE_ALIAS

這節省了我很多麻煩,因爲我有我的本地主機類似的問題。有關URL功能的更多信息 - http://api.drupal.org/api/drupal/includes%21common.inc/function/url/7

+0

謝謝。像魅力一樣工作 – sisko 2012-02-24 11:23:11