13 钩子hook_field_formatter_info

admin 的头像
Submitted by admin on 星期二, 2015-06-30 09:55

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
这就是我们想要的效果。不过,当我们访问节点页面时,并没有看到这个字段的内容,系统已经为其生成内容了阿。对于字段的显示,仍然需要由我们的模块来负责,谁让这个字段是由这个模块定义的呢。我们添加最后的两个钩子函数:

Drupal版本:

12 钩子hook_field_presave

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们完成了字段的验证以后,还有一项工作要做,那就是在将字段的值,保存到数据库之前,重新设置一下,在不是手动输入的情况下,将其设置为源字段经过transliteration模块转换后的值。为此,我们还需要实现一个钩子函数,在module文件中添加以下代码:

11 钩子hook_field_validate

admin 的头像
Submitted by admin on 星期二, 2015-06-30 09:51

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
接下来,我们需要检查用户的输入是否正确,我们主要检查用户手动输入的情况,看用户输入的字符是否是ASCII字符,因为经transliteration模块转换后的字符串只包含ASCII字符。我们来看看这个字段的验证函数

Drupal版本:

8 钩子hook_element_info

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
这段代码看起来有点简单,加进来以后,并没有得到我们想要的效果,是的。我们还需要实现更多一点的钩子。在Drupal的表单元素中,部分表单元素是由其它表单元素复合而成的,比如date、file,以及一些第三方的表单元素。其实我们可以把我们的这个输入控件,定义成为一个表单元素类型,这样更有利于复用。我们来看看这个表单元素类型的定义:

Drupal版本:

7 钩子hook_field_widget_form

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
现在,该向字段里面输入信息了,此时,我们点击创建节点链接,来创建一个该类型下面的一个节点,此时在添加节点的表单中,并没有我们这个字段对应的表单元素。现在就让我们定义具体的输入控件,向module文件里面添加以下代码:

Drupal版本:

页面

Subscribe to Think in Drupal RSS