1创建一个菜单项

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:29

作者:老葛,北京亚艾元软件有限责任公司,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文件中添加一下内容:

Drupal版本:

第3章 Drupal 菜单系统

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:19

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
菜单就是网站的导航链接,Drupal自带的菜单模块,允许我们添加、编辑、删除菜单和菜单项。这里的菜单项,就是通常所说的导航链接,通常菜单中的导航链接是有层级关系的。Drupal7自带了四个菜单,主菜单、管理菜单、导航菜单、用户菜单。Drupal的菜单系统,除了包含前面菜单模块所提供的功能以外,还蕴含着其它含义。为了更好的理解Drupal的菜单系统,我们可以从它提供的功能入手,菜单系统提供了三种功能:1、回调映射,2、访问控制,3、菜单定制。菜单系统的基本代码位于includes/menu.inc中,主要包含了前两点功能;而可选代码则位于modules/menu,这就是菜单模块提供的普通用户可见的菜单功能。

Drupal版本:

8贡献我们的代码

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:03

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
尽管贡献自己的代码在中国这样的环境中,并不是很流行,但是环境还是在逐步的改善,通过向Drupal社区贡献自己的模块,如果你的模块被其它用户使用的话,也是可以为你带来很多潜在的机会的。开发好了block_morelink模块以后,我们可以在drupal.org上创建一个项目,然后将这个模块通过GIT上传上去,这样我们就将这个模块分享出去了。项目地址:http://drupal.org/project/block_morelink/。注意drupal.org上的模块,需要遵守GPL协议。

Drupal版本:

7继续改进我们的代码

admin 的头像
Submitted by admin on 星期一, 2015-06-01 02:52

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
​我们在前面的代码中,morelink的标签t(‘More’)是写死在里面的,通过翻译机制我们可以将其翻译成任意的中文。但是如果这一文本,能够配置的话,那么这个模块就会更通用一点。如果你觉得现在已经足够好的话,那么也无需改进,我们这里仅仅是作为一个例子,让大家接触更多的钩子和API函数。

Drupal版本:

6 改进我们的代码

admin 的头像
Submitted by admin on 星期五, 2015-05-29 02:08

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在我们的预处理函数中,在为morelink属性赋值时,我们直接使用了 l() 函数并附加了一些html标签,我们把html标签写死在了里面,如果别人使用我们的代码,他们想修改这一输出时,只有通过修改module文件中的对应代码才能实现。我们可以采用Drupal的主题函数的方式,来改进我们的代码:

Drupal版本:

5 创建自己的预处理函数

admin 的头像
Submitted by admin on 星期五, 2015-05-29 02:06

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

对于我们的这个模块来说,现在已经到了万事俱备只欠东风的阶段了。我们已经准备好了数据,现在我们需要在区块中将其显示出来。对于区块,我们首先想到的是区块的模板文件,下面是Drupal核心中自带的区块模板文件:

Drupal版本:

4 创建自己的数据库表结构

admin 的头像
Submitted by admin on 星期五, 2015-05-29 02:02

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

模块中存储所用数据的常用方式,就是为这些数据创建一个单独的数据库表。当我们决定为模块创建数据库表结构时,应该问问自己:我们需要存储哪些数据?如果我们要对这个表进行查询,那么会用到哪些字段和索引?最后,还要考虑一下,将来对这个模块,有没有可能会作些扩展?

Drupal版本:

页面

Subscribe to Think in Drupal RSS