【问题标题】: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。

【问题讨论】:

  • 听起来你在正确的轨道上,你具体有什么问题?
  • 我在显示类似产品时遇到了问题。我不知道处理这个问题的最佳方法。我不知道如何处理参数,如果我必须处理它们。

标签: drupal views panels


【解决方案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 模块。模块链接和下面的一些教程:

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

【讨论】:

    【解决方案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,而不是使用 ','

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多