Drupal Views的魅力

当人们问我为什么总是使用Drupal,而不是其他像WordPress或Movable Type来建立网站,我通常有一个答案,“CCK和Views”。这也可以解释为两个答案,但由于模块相互协作我将称之为之一个。我之前已经写了CCK的基础,如果你对更好地了解CCK感兴趣,我建议你看看。这篇文章是关于Views模块的。

Views是一个为站点开发人员(我相信你就是)提供极大的灵活性来选择怎样显示内容的模块。Views提供了提供了一个图形用户界面(如图所示),允许你查询Drupal数据库获取内容并选择内容显示格式,而无需编写SQL查询语句。我过去已经写了很多用于商业目的的SQL查询,如果我从来没有写一条我也不会感到失望。

基本的Views类型

有三种基本的Views类型可用在现有的基础模块上。您可以显示一个内容成页面,区块,或RSS FEED。当我说“内容”我的意思是整个Drupal节点或个别字段。例如,页面http://learnbythedrop.com/cckandviews的“views”列出x个节点。当你列出节点你得到的是标题+正文,当您正在查看一个节点时也会显示到评论的链接和任何其他字段。如果您选择显示字段而不是节点,那么你可以选择从你的节点选择显示个别字段。例如,在页面http://learnbythedrop.com/archives显示标题(链接到节点),浏览量,评论数和投票人数。

本段所述的Views的一个共同点是,他们是“页面”视图。页面视图不同于其他的视图,因为您给一个页面视图指定一个路径(如http://learnbythedrop.com/archives)显示在您的网站。您也可以创建“区块”形式的视图列表。如果您选择区块形式,内容添加到视图后将可在区块页面(在 admin/build/block)中配置和摆放它们,就和站点上其他的区块一样。

你应该稍微思考一下什么类型的内容应该放在页面(page)上或者区块(block)上,区块适合于列出(见右边的“最近的文章”和“评论”区块),而一个页面可能适合于整个节点的显示或者一个字段的集合。幸运的是,views模块有一个非常实用的实时预览功能允许你在建立视图时随时预览查询结果。

第三类标准视图是RSS feed视图。这种视图输出节点列表作为RSS feed供人们使用feed阅读器(如Google reader)订阅。如果您已设置了一个页面视图,它具有与RSS feed相同的内容,您可以使RSS feed关联到该网页,并且一个小橙色的RSS图标将出现在页面上。看看http://learnbythedrop.com/gallery 页面的底部,这就是一个例子。

样式选项

Drupal views也有几个标准的“样式”的选项,他们的不同由您选择的view类型而定。以RSS为例,确实是你的views样式的一个选项。但是如果你选择设定为页面或区块视图,您有不同的选择来控制最终如何显示。样式选项的一些“未格式化”例子,列表,网格和表。如果要创建一个显示整个节点的页面那么你很可能会选择“未格式化的”样式。但是如果你选择一个只有个别字段页面(如http://learnbythedrop.com/archives),那么“表”样式可能最好。对于区块中块连接到节点的标题列表我通常选择“列表(list)”样式。再说一次,在做这些决定时实时预览功能将会使你的好朋友。
如果你仅仅是显示两个字段,想在水平和竖直方向上重复网页内容,那么“网格”样式是一个有趣的选择。我已经在此处http://iheartmets.com/metstweets的视图中实施了这种样式,这以网格显示了关于纽约大都会最近的tweets。

控制显示

Drupal views为内容如何以及怎样准确地显示提供了很好的控制。在“过滤器”部分允许你控制内容显示规则。例如您可以选择只显示某个节点类型。或者,您可以从一个只显示特定类别的文章。你可以混合和匹配各种控制选项来选择,例如,仅类别为“狗”的blog节点。您也可以选择只显示已经发布了的,这将排除已保存为草稿的节点。这可能是个好主意。

你还可以控制您的内容排序。您可以基于任意字段数的排序。大多数情况,但并不总是,我选择基于发布日期来排序,降序排列以让最新的内容显示在列表的顶部。您也可以选择按照最近更新来排序这样内容每次被更新它会自动被移到列表的顶端。如果你正在创建一个显示在表格中的视图,你也可以使用户可以以每个表头排序,就像我在 http://learnbythedrop.com/archives 已经做过的。

其他功能

虽然views模块已经集成了有许多有价值的功能,但您可能还需要探索一些其他模块,扩展Drupal Views的功能。以下我列出了一些我喜欢的模块。

  • Views Slideshow 允许您以幻灯片的形式显示视图中的项目。这可以很好地与照片一起工作(见这个例子),但也能与文字一起工作。我在http://iheartmets.com的首页放了两个views slideshow 。views 动态显示tweets和博客列表
  • Views Accordion允许您显示内容为当点击头部展开,我在该网页使用此模块http://learnbythedrop.com/gettingstarted。
  • Media RSS是一个非常有用的图片发布模块。它添加社会化应用标志允许你发布的照片很容易地被订阅者找到,以及其他网站到哦如你的feed。我在我的图片库订阅http://learnbythedrop.com/gallery/feed 使用该模块
  • iTunes让您发布的iTunes兼容的播客feed,它提供了feedburner之类服务的自制替代品。我目前没有使用它,但我在我的测试站点使用它。

还有许多其他的模块可供添加,允许你使用Views做更多的事情。例如,当您添加的投票模块,像plus 1,你可以通过views查看投票数据并展示那些数据就像我在http://learnbythedrop.com/archives 页面做的一样。如果你想浏览并随时知道所有的可添加到views的模块,我建议你查看Drupal.org上的views module category 页面。

学习更多

views有许多功能并且是任何希望超越基本的发布的drupal站点非常重要的一部分。虽然您可以不使用views建立一个不错的站点,但可能会到某个时候,你想显示一些不同的东西,而同时你实现它时不希望被SQL查询玩弄。那么,我建议您先学习一些views的基础知识(和它的兄弟模块cck),在你有信心在作业站点使用它们之前,你付出的时间的努力将是非常值得的。

在Lullabot团队有views视频产品,可能会有帮助,他们已经发布了两个免费的章节,这样你可以尝试他们的产品。我的 CCK和views 页面(当然使用views创建)也能给你提供一些资料。

查看原文