显示相似节点
Posted
技术标签:
【中文标题】显示相似节点【英文标题】:Displaying similar nodes 【发布时间】:2011-01-20 16:32:18 【问题描述】:我今天在使用 Drupal 时遇到了一些问题。
我想在页面上显示一个节点(产品),在该节点下方,我想显示 3 个相似的节点(产品)。相似之处:具有相同的分类 ID 或附加了“提升”标签。
我尝试将相关节点制作成一个视图,该视图仅在我们在产品页面上时显示为块。我没有走太远。
我的第二个想法是制作一个面板页面,其中包含 2 个视图,一个用于产品,一个用于相关产品。我也没有走多远。
有人知道最简单的方法吗?
更新:
我已经尝试了这两个答案,但我没有收到任何相关产品。执行的 SQL 查询(term id = 1)是:
SELECT node.type AS node_type, node.title AS node_title, node.nid AS nid, node.created AS node_created FROM node node INNER JOIN taxonomy_index taxonomy_index_value_0 ON node.nid = taxonomy_index_value_0.nid AND taxonomy_index_value_0.tid = :views_join_condition_0 WHERE (( (node.type IN ('product')) AND (taxonomy_index_value_0.tid AND '') AND( (taxonomy_index_value_0.tid IN ('1')) ))) ORDER BY node_created DESC LIMIT 10 OFFSET 0
当我手动执行查询并从查询中删除 AND (taxonomy_index_value_0.tid AND '')
时,我确实收到了相关产品。
有谁知道是什么原因导致代码被添加到查询中以及如何修复它?
更新 2: 我已删除“每个参数允许多个术语”,现在正在获取相关产品。不过我不知道这对我的网站意味着什么。
更新 3: 顺便说一下,我正在使用 Drupal 7。
【问题讨论】:
听起来你在正确的轨道上,你具体有什么问题? 我在显示类似产品时遇到了问题。我不知道处理这个问题的最佳方法。我不知道如何处理参数,如果我必须处理它们。 【参考方案1】:使用面板覆盖您的节点视图。并使用“分类 ID 参数”创建一个视图块,您需要选择默认参数选项作为 php 代码并放置此代码。
$node = node_load(arg(1));
if($node)
foreach($node->taxonomy as $term)
$term = $term->tid;
return $term;
我刚刚使用面板 + 视图魔法启动了一个网站。 http://sgigulf.org/culture/synopsis-of-performers-showcased-by-sgi-gulf
【讨论】:
您能详细说明一下吗?我是 drupal 新手。 使用面板,您可以覆盖默认节点显示。转到 admin/build/pages,启用“节点视图”,单击编辑并添加一个变体。单击“选择规则”并选择您要覆盖的节点类型。如果你做得正确,你应该得到你的节点的空白页。现在在一侧添加您的节点内容,并使用上面提到的 PHP 代码的默认参数放置您的视图。我希望这会有所帮助。【参考方案2】:看看 RelatedContent 模块。模块链接和下面的一些教程:
http://drupal.org/project/relatedcontent http://drupaleasy.com/blogs/ryanprice/2008/06/using-views-2-drupal-6-create-a-related-pages-block http://www.hankpalan.com/blog/drupal/related-content-views-2-drupal你说你的显示器有问题。在这种情况下,将上述说明中的视图设置为一个块,并将其显示在节点内容下方的区域中,尽管这假设您的主题中有一个区域直接位于您的内容下方。
【讨论】:
【参考方案3】:更改为时可以有多个术语
$node = node_load(arg(1));
if ($node)
$ret = array();
foreach ($node->taxonomy as $term)
$ret[] = $term->tid;
return implode('+', $ret);
return '';
implode 中的“+”是 OR。如果你想要 AND,而不是使用 ','
【讨论】:
以上是关于显示相似节点的主要内容,如果未能解决你的问题,请参考以下文章