3调整菜单项所属的菜单
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果我们不想把这个菜单项放置在导航区块中,而是向放置在主菜单里面,此时我们可以这样:
function menu_abc_menu() {
内容包括drupal7教程,drupal7汉化,drupal7主题,drupal7模板,drupal7中文手册,drupal7 views,drupal7中文,drupal7安装,drupal7开发,drupal7视频,等
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果我们不想把这个菜单项放置在导航区块中,而是向放置在主菜单里面,此时我们可以这样:
function menu_abc_menu() {
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果我们觉得这个菜单项的放置位置不合适,那么可以使用' weight '来进行相应的调整,增加菜单项的重量,可以使它向下移动;减少菜单项的重量,可以使它向上移动。
function menu_abc_menu() {
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在前面一章,学习过hook_menu这个钩子函数,通过这个钩子函数,我们可以定义自己的菜单项(回调映射)。我们现在编写一个简单的实例模块menu_abc.module,通过这个模块来学习菜单API。首先让我们在sites/all/modules/custom目录下面创建一个文件夹menu_abc,然后创建两个空白文件,分别为menu_abc.info、 menu_abc.module,让我们向menu_abc.info文件中添加一下内容:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
菜单就是网站的导航链接,Drupal自带的菜单模块,允许我们添加、编辑、删除菜单和菜单项。这里的菜单项,就是通常所说的导航链接,通常菜单中的导航链接是有层级关系的。Drupal7自带了四个菜单,主菜单、管理菜单、导航菜单、用户菜单。Drupal的菜单系统,除了包含前面菜单模块所提供的功能以外,还蕴含着其它含义。为了更好的理解Drupal的菜单系统,我们可以从它提供的功能入手,菜单系统提供了三种功能:1、回调映射,2、访问控制,3、菜单定制。菜单系统的基本代码位于includes/menu.inc中,主要包含了前两点功能;而可选代码则位于modules/menu,这就是菜单模块提供的普通用户可见的菜单功能。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
尽管贡献自己的代码在中国这样的环境中,并不是很流行,但是环境还是在逐步的改善,通过向Drupal社区贡献自己的模块,如果你的模块被其它用户使用的话,也是可以为你带来很多潜在的机会的。开发好了block_morelink模块以后,我们可以在drupal.org上创建一个项目,然后将这个模块通过GIT上传上去,这样我们就将这个模块分享出去了。项目地址:http://drupal.org/project/block_morelink/。注意drupal.org上的模块,需要遵守GPL协议。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在前面的代码中,morelink的标签t(‘More’)是写死在里面的,通过翻译机制我们可以将其翻译成任意的中文。但是如果这一文本,能够配置的话,那么这个模块就会更通用一点。如果你觉得现在已经足够好的话,那么也无需改进,我们这里仅仅是作为一个例子,让大家接触更多的钩子和API函数。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在我们的预处理函数中,在为morelink属性赋值时,我们直接使用了 l() 函数并附加了一些html标签,我们把html标签写死在了里面,如果别人使用我们的代码,他们想修改这一输出时,只有通过修改module文件中的对应代码才能实现。我们可以采用Drupal的主题函数的方式,来改进我们的代码: