2012-02-23 52 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