You are here

16 使用通配符的值

admin 的头像
Submitted by admin on 星期二, 2015-06-02 03:02

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

我们新增一个菜单项:

function menu_wildcard_menu() {

 

  $items['wildcard/%'] = array(

    'title' => '简单的通配符',

    'description' => '一个简单的包含通配符的菜单项.',

    'page callback' => 'menu_wildcard_callback_page',

'page arguments' => array(1),

'file' => 'menu_wildcard.pages.inc',

    'access callback' => TRUE,

  );

  $items['wildcard/%/b'] = array(

    'title' => '普通的通配符',

    'description' => '一个普通的包含通配符的菜单项.',

    'page callback' => 'menu_wildcard_callback_page',

'page arguments' => array(1),

'file' => 'menu_wildcard.pages.inc',

    'access callback' => TRUE,

  );


  return $items;

}

    清空缓存后,让我们再次访问路径wildcard/123/b/c/d,得到如图3-19所示的结果。

 

图片1.png 

 3-19.通过URL只传递了两个参数c,d

 

第一个参数,123,是通过页面回调传递过来的。array(1)的意思是,“不管路径中的部分1是什么,请将它传递过来”。我们是从0开始算起的,所以部分0就是'wildcard ',部分1就是通配符所匹配的任何东西,部分2就是'b',依次类推。此时,b是Drupal路径中的一部分了,不再通过URL传递。后面的c,d,也被传递了过来,它的传递原理我们在前面已经学过了,那就是Drupal路径后面的一部分将会作为参数传递给回调函数,注意图3-18和图3-19之间的区别。


Drupal版本: