0

我今天在使用 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。

4

3 回答 3

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

于 2011-01-20T17:40:30.777 回答
0

看看 RelatedContent 模块。模块的链接和下面的几个教程:

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

于 2011-01-20T18:16:27.520 回答
0

当您更改为时,您可以有多个术语

$node = node_load(arg(1));
if ($node) {
    $ret = array();
    foreach ($node->taxonomy as $term) {
        $ret[] =  $term->tid;
    }   
    return implode('+', $ret);
}
return '';

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

于 2011-05-13T10:30:05.157 回答