欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

hook_menu 的 $items items 路径 百分号 % 有大用 有大大用 有大大大用

  $items['breadcrumb/%breadcrumb2'] = array(

    'title' => 'Breadcrumb',

    'page callback' => 'breadcrumb2_page_view',

    'page arguments' => array(1),

    'access arguments' => array('administer breadcrumbs'),

    'file' => 'breadcrumb2.admin.inc',

  );

  $items['breadcrumb/%breadcrumb2/view'] = array(

    'title' => 'View',

    'type' => MENU_DEFAULT_LOCAL_TASK,

    'weight' => -10,

  );

   这里面我们使用了通配符%breadcrumb2,当我们传递过来一个bid以后,系统会自动的调用breadcrumb2_load函数,将bid转换为相应的面包屑对象。

接下来,我们看breadcrumb2_page_view的具体实现,向breadcrumb2.admin.inc里面添加以下代码:

/**

 * Breadcrumb view page.

 */

function breadcrumb2_page_view($breadcrumb, $view_mode ='full'){

  return $breadcrumb->view('full');

}



1)通配符  %node 

这里面我们使用了通配符%node,当我们传递过来一个nid以后,系统会自动的调用node_load函数,将nid转换为相应的节点对象。

$items['node/%node'] = array(
 'title callback' => 'node_page_title',
 'title arguments' => array(1),
 'page callback' => 'node_page_view',
 'page arguments' => array(1),
 'access callback' => 'node_access',
 'access arguments' => array('view', 1),
 'type' => MENU_CALLBACK);


2) 通配符 %

这里面我们使用了通配符%,当我们传递过来一个参数以后,系统不会调用任何函数,直接把参数传过去 

$items['test/%'] = array(
    'title' => t('Test'),
    'description' => t('Test'),
    'page callback' => '_test',
    'page arguments' => array(1),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK
  );


以上 1) 和 2)  就是 通配符  % 与 %node 的区别

普通分类: