菜单项的种类

当你在菜单钩子中添加一个菜单项时,经常用到的一个键就是type。如果你没有定义类型,那么将会使用默认类型MENU_NORMAL_ITEM。Drupal将根据你指定的类型来对菜单项进行不同的处理。每一个菜单项类型都有一系列的标记或者属性组成。表4-2列出了菜单项类型的标记。

 
4-2. 菜单项类型标记
二进制        十六进制   十进制        常量
000000000001    0x0001      1               MENU_IS_ROOT
000000000010    0x0002      2               MENU_VISIBLE_IN_TREE
000000000100    0x0004      4               MENU_VISIBLE_IN_BREADCRUMB
000000001000    0x0008      8               MENU_LINKS_TO_PARENT
000000100000    0x0020      32              MENU_MODIFIED_BY_ADMIN
000001000000    0x0040      64              MENU_CREATED_BY_ADMIN
000010000000    0x0080      128             MENU_IS_LOCAL_TASK
 
    例如,常量MENU_NORMAL_ITEM拥有标记MENU_VISIBLE_IN_TREE和MENU_VISIBLE_IN_BREADCRUMB,如表4-3所示。看一下不同的标记在单个常量中是如何表示的,你看出来了吗?
 
4-3.菜单项类型MENU_NORMAL_ITEM的标记
二进制            常量
000000000010        MENU_VISIBLE_IN_TREE
000000000100        MENU_VISIBLE_IN_BREADCRUMB
000000000110        MENU_NORMAL_ITEM
 
    因此,MENU_NORMAL_ITEM拥有下列标记:0000000001104-4展示了可用的菜单项类型和它们所表示的标记
 
 
4-4. 菜单项类型表示的标记
菜单标记              菜单类型常量
                      MENU_                 MENU_            MENU_            MENU_
                            NORMAL_    MENU_      SUGGESTED_             LOCAL_           DEFAULT_
                            ITEM       CALLBACK  ITEM*            TASK             LOCAL_TASK
MENU_IS_ROOT
MENU_VISIBLE_IN_TREE        X
MENU_VISIBLE_IN_BREADCRUMB  X          X          X
MENU_LINKS_TO_PARENT                                                                X
MENU_MODIFIED_BY_ADMIN
MENU_CREATED_BY_ADMIN
MENU_IS_LOCAL_TASK                                                 X                X
*这个常量是由位逻辑运算符OR和0x0010创建的
 
    当你定义自己的菜单项类型时,应该使用哪一个常量呢?查看表4-4,在里面看一下你想启用哪些标记,然后使用包含这些标记的常量。对于每个常量的详细描述,参看includes/menu.inc里面的注释。最常用的为MENU_CALLBACK, MENU_LOCAL_TASK, 和 MENU_DEFAULT_LOCAL_TASK。更多详细,请仔细阅读里面的注释。
 
老葛的Drupal培训班 Think in Drupal

Drupal版本: