16 通过继承views_handler_field,定制自己的视图字段处理器
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们这里给出一个最简单的例子,field_collection_views_handler_field_host_entity_id,这个和我们在前面实现的,简易程度差不多,都非常简单:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们这里给出一个最简单的例子,field_collection_views_handler_field_host_entity_id,这个和我们在前面实现的,简易程度差不多,都非常简单:
在field_collection_views.views_default.inc文件中,我们实现了hook_views_default_views,这里放置我们导出的代码。我把中间的代码,省略掉了:
/**
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在field_collection_views.views.inc,我们实现了hook_views_data这个钩子,为['field_collection_item']追加了几个新的字段,追加这些字段的目的是,为了在Views里面拼凑出来用来编辑、删除、添加的链接。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们这章,就主要讲Views了。刚才提到,我们受Field collection views模块的启发,我们这里介绍一个这个模块的代码。这个模块的用法,我们在Think in Drupal的第二集,里面已经介绍过了,是对Field Collection模块的一个很好的补充。Field collection views模块的主要功能,就是为Field collection类型的字段,提供一个formatter(格式化器),使用Views来呈现Field collection items。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
前面讲到,我们在module文件中,使用include_once,通过直接加载breadcrumb2.views.inc文件解决的问题,如果你到drupal.org/project/ breadcrumb2上面下载beta4以前的版本时,你会发现include_once这行代码都是存在的。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
清空缓存,向Views里面添加新的字段,此时就会看到我们这里定义的字段了:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们在前面的Views的配置里面,已经看到,现有的功能已经基本能够满足我们的需求了。有时候,我们还需要为Views提供更多地字段,这里的更多,指的是超出了Entity API默认提供的那一部分。比如面包屑的编辑、删除链接,我们想直接提供出来,而不是通过字段覆写的方式实现。