Answers:
不确定“创建”视图的确切含义。
首先,如果您有自定义表/数据,则可以使用hook_views_data()以及自定义插件和处理程序来告诉视图如何访问这些表。一些教程/例子:http://treehouseagency.com/blog/neil-hastings/2010/01/19/views-handler-easy-way(Drupal的6)和http://larsolesen.dk/node/273(Drupal的7)。但是同样,只有在要将自己的表公开给视图时,才需要这样做。
然后,有许多预渲染和alter钩子,使您可以更改用户界面中无法执行的某些操作。Drupal 6中的视图挂钩列表。
也就是说,没有“ API”可以创建实际的视图(据我所知)。我认为每个人都为此使用视图UI(毕竟,在Drupal 7中现在是一个很棒的UI)。您可以做的是导出在UI中创建的视图,以将其与您的模块或作为新模块一起分发。这也有助于贡献/标准模块不仅将其表公开给视图,而且还提供示例视图,这些视图可以针对特定站点进行自定义/扩展。
除了手动导出它们,您还可以使用功能模块,该模块允许您将各种配置(视图,内容类型,字段,权限等)导出到所谓的功能(基本上是自动生成的模块)中。当将类似视图的配置从开发迁移到生产安装或在多个站点上重复使用相同的视图/配置时,这特别有用。
确定挂钩从何处开始的一个好方法是查看挂钩及其执行顺序。某处有一个图(不幸的是我找不到它),但是这篇文章是一个很好的替代品:它在解释视图的生命周期方面做得很好,该视图显示了挂钩事件发生的顺序。
看看Views Earl Miles的作者撰写的Drupal构建块这本书,它同时包含Views 2和Views 3的示例。