1 自定义一个字段类型

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

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在本章,我们将通过创建一个自定义的字段类型,来学习Field API相关的各种知识。我们先来介绍一下这个模块的背景知识:
​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我以前在给客户做网上书店的时候,就遇到过这样的需求,图书内容类型下面包含一个“拼音名称”字段,用来输入图书名称的拼音,那个时候我们采用了这样的解决办法,使用专门的软件,将书名转换为拼音,这方面有很多现有的工具可用,然后将这一信息导入到Drupal系统中来。那个时候我就在想,如果能够开发一个第三方模块,自动地生成拼音字段,就可以省去很多的麻烦。后来又遇到了这样的一个需求,对节点标题按照拼音的a、b、c、d…z进行检索,此时如果我们自带了一个拼音字段,那么实现起来就会方便很多。这就是我们这个模块的实际的背景。

Drupal版本:

第9章 Field API

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

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

对于熟悉Drupal6的用户来说,CCK应该是必选的第三方模块,使用这个模块,可以方便的扩展内容类型的字段信息。Drupal7最大的一个改进,就是将CCK模块核心化,在Drupal7里面,它的名字已经换成了Field,并成为Drupal7下面的核心必选模块。有了这个模块,我们就可以方便的为节点、评论、分类术语、用户添加扩展字段了,是的,它可以应用于节点、评论、分类术语、用户等等,而不像Drupal6下面的CCK那样只适用于节点类型。

Drupal版本:

14 总结

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com​
在本章中,你学到了以下几点:

Drupal版本:

13 扩展阅读

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
为了帮助大家进一步的了解区块系统,建议大家有空的时候研究使用一下这么几个第三方模块。

Drupal版本:

12 PHP代码的形式

admin 的头像
Submitted by admin on 星期五, 2015-06-26 09:54

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在前面提到过,不需要定义模块,只需要使用PHP filter模块,在自定义区块的内容里面,使用PHP代码,也可以实现动态的区块。我们以上面的例子作为对比,采用PHP代码的方式,实现同样的功能。
为此我们需要在区块管理界面添加一个自定义区块,配置信息如图所示:

Drupal版本:

11 钩子hook_block_view

admin 的头像
Submitted by admin on 星期五, 2015-06-26 09:52

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
通过使用Drupal函数variable_set(),我们将帖子数量和基路径的配置保存了下来。最后添加hook_block_view的实现,当区块显示时,返回Discuz最新帖子:

Drupal版本:

10 钩子hook_block_save

admin 的头像
Submitted by admin on 星期五, 2015-06-26 09:50

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
当区块配置表单被提交后,区块系统并不会自动的保存我们新增的设置,此时我们还需要实现钩子hook_block_save,使用它来保存我们新增表单字段的值:

Drupal版本:

9 钩子hook_block_configure

admin 的头像
Submitted by admin on 星期五, 2015-06-26 09:49

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
接下来,我们需要为区块创建相关的配置选项,这个配置选项不是必须的,根据需要选用。我们打算帖子数量是可以配置的,同时对于帖子链接到的论坛网址的基路径,我们也希望能够配置,为此,需要实现hook_block_configure钩子,向module文件中添加以下代码:

Drupal版本:

页面

Subscribe to Think in Drupal RSS