我有一个含分类条款的内容类型。这是一个选择列表,所以它只能有一个分类 - 至少是那个词汇。现在我需要构建一个列出具有相同分类标准的所有节点的视图。Drupal Views:获取与当前节点具有相同分类的节点
认为这不会太难,因为它听起来很基本。但我无法得到它的工作。有任何想法吗?我试图避免为此写一个模块。
我有一个含分类条款的内容类型。这是一个选择列表,所以它只能有一个分类 - 至少是那个词汇。现在我需要构建一个列出具有相同分类标准的所有节点的视图。Drupal Views:获取与当前节点具有相同分类的节点
认为这不会太难,因为它听起来很基本。但我无法得到它的工作。有任何想法吗?我试图避免为此写一个模块。
此答案适用于Views 2或更高版本。首先你需要安装视图附加(http://drupal.org/project/views_attach)。请在继续阅读之前阅读有关Views的附加信息。视图附加是最好的解释通过这个视频http://mustardseedmedia.com/podcast/episode37
现在我们到视图附加。在继续之前请启用视图附加模块。本质上,Views attach
在节点的末尾附加一个视图。在我们的案例中,我们的观点将会是同一个术语的其他文章的列表。
我们将基本上需要将节点的分类术语“传递”给视图。让你的词汇的名称被称为MyVocab
。
制作视图的步骤。
display_other_articles_with_same_taxonomy
。Node Content
类型的显示(启用视图附加后可用)。这是一个像块和页面显示一样的显示,但具有将其自身附加到节点的特殊功能。进行如下设置在Node Content Display
Node content settings
Node types: [select the content types you are interested in seeing the list of nodes with same taxonomy term]
Build modes: Teaser, Full node
Arguments: token
Show title: No
你应该在参数选择Use tokens from the node the view is attached to
。令牌为[term-id]
这是“顶级分类术语的标识”。这个非常重要!!基本上,您将要通过MyVocab
节点的分类术语(请参阅http://groups.drupal.org/node/11788#comment-38332)。如果权重最低,则分类词汇表将成为节点编辑表单的分类部分中的第一个词汇表。添加一个参数Taxonomy: Term Id
。
添加您感兴趣的领域例如Node: Title
。确保Node: Title
由滴答作响Link this field to its Node
做成超链接那么这种观点是要做的是:
MyVocab
词汇当前正在观看display_other_articles_with_same_taxonomy
那就是它!
如果您使用浏览3(目前在素α3写作的时候)和你想有一个块(现在的文章具有相同的分类项来在节点的主体的末尾),你可以做到这一点在用以下方式:
Node Content
显示相同的参数,字段和过滤器。Taxononomy: Term Id
的设置:在Action to take if argument is not present:
下选择[x] Provide Default Argument
。选择[x] Taxonomy Term ID from URL
。现在确保[] Load default argument from term page
未选中,并且[x] Load default argument from node page, thats good for related taxonomy blocks.
也[x]Limit terms by vocabulary
并选择Series
词汇表。注:这个答案是我在How to just show NodeQueue block on included nodes?提供在该方案的要求是,相关的文章了明确选择,并按照特定的顺序列出的答案的子集。它稍微复杂一点,使用我们根本不需要的Nodequeue。
视图为您提供了添加过滤器的选项。单击视图admin UI的过滤器区域中的加号,从列表中选择Taxonomy,检查Term或ID,然后填写您需要过滤的值。
Edit(对于明确指示):
首先,添加要根据你想从你试图过滤,如结题的节点显示的字段部分必要的字段,等
在参数,单击加号,然后选择分类
检查分类:术语,然后单击添加
单击更新
在预览区中加入参数,并点击预览测试它。如果它不起作用,那么您的节点没有附加的分类,视图模块已损坏,或者您没有遵循指示。
使用关系
非常简单。 – Evans 2011-03-25 10:25:49
这看起来可能是最好的解决方案,但它非常简洁,我无法遵循它。多一点细节将会有所帮助。 – 2011-09-26 19:41:16
尽管这在技术上是可能的,如一些其他的答案中描述的意见2,查看3具有这种整合内置的。
您可以创建的分类项ID参数,然后选择“提供默认参数“。那么这会给你“从网址分类期限ID”和为选项“从节点页面加载默认参数......”
这将允许你把一个页面的分类和传递为您的视图块的一个参数。
注意:视图3目前在Alpha 3中,但是根据我的经验,它处于相对稳定的状态,我正在生产站点上使用它。如果它具有上面那些您认为有用的功能,请使用它,测试它并在出现任何问题时提交错误/修补程序!
-1:视图3未处于稳定版本。 Drupal模块有一个很稳定的趋势,即使在测试阶段。这不是为了诋毁视图团队所做的任何事情,但总体而言,使用稳定软件只是最佳做法。 – 2010-10-14 12:08:36
尽管您认为Views 3尚未移至最终版本,但视图3被列为“支持”。 Drupal模块经过测试并从开发通道,到alpha版,到beta版,到正式发布版的方式是让社区使用它们,测试它们,并报告它们可能遇到的任何问题。只要通过选择视图3而不是视图2(视图项目页面做得相当好)来清楚你所得到/放弃的内容,我并不认为我的答案对这个问题的回答没有那么有效。 – markdorison 2010-10-14 20:51:41
+1赞同@markdorison – 2010-10-15 14:54:09
只有一两件事:
构建模式:预告,全部节点
更好试试这个:
构建模式:全节点
仿佛添加传情在这里,我认为它会获得每个挑逗项目条款的帖子,我以这种方式解决了内存错误。但是当我从这里删除Teaser时,它可以正常工作。
嗯,我不想为每个学期构建一个块。我想到在某处使用参数。 – 2010-10-13 15:07:54
然后添加一个参数 - 视图可以让你做到这一点。只要按照相同的程序。你不需要建立一个块 - 它可以放在一个页面或任何其他地方。 – 2010-10-13 15:10:00
显然,我尝试过,但我无法得到它的工作。我也尝试过使用关系......你能给出一些更详细的解释吗? – 2010-10-13 15:17:38