显示相似的节点

时间:2011-01-20 16:32:19

标签: drupal views panels

我今天有点遇到了Drupal的问题。

我想在页面上显示一个节点(Product),在该节点下面,我想显示3个类似的节点(Products)。类似的情况是:拥有相同的分类标识或附加“升级”标记。

我尝试将相关节点制作成一个显示为块的视图,只有当我们在产品页面上时才会显示。我对此并不了解。

我的第二个想法是制作一个包含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。

3 个答案:

答案 0 :(得分:1)

使用面板覆盖节点视图。并使用'taxonomy id argument'创建一个视图块,您需要选择默认参数选项作为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

答案 1 :(得分:0)

看一下RelatedContent模块。该模块的链接和以下几个教程:

你说你的显示器有问题。在那种情况下,将上述说明中的视图作为一个块,并将其显示在节点内容下方的区域中,尽管假设主题中的某个区域直接位于您的内容之下。

答案 2 :(得分:0)

更改为

时,您可以拥有多个字词
$node = node_load(arg(1));
if ($node) {
    $ret = array();
    foreach ($node->taxonomy as $term) {
        $ret[] =  $term->tid;
    }   
    return implode('+', $ret);
}
return '';

内爆中的'+'是OR。如果你想要AND,而不是使用','而不是