2

我有一个节点(节点 a),各种其他节点(节点 b/c/d/e)引用它。

我可以创建一个带有参数的视图作为我正在查看的节点(节点 a),并获取引用该节点的节点列表。

基本上在节点上查看节点列表。

我想仅为该节点的节点引用创建一个视图页面。但是我怎样才能将论点传递到新页面呢?

谢谢。

编辑:我为这个令人困惑的问题道歉。

基本上我有一个电影节点。我有很多评论引用了电影节点。

在电影节点上,我使用参数: content: review_of 来获取该电影的评论列表。

这很棒,但是因为在电影节点上只有几条评论,所以我需要一个页面来查看每部电影的所有评论。问题是将电影的论点从视图块(例如,电影的 3 条评论)传递到视图页面(包含所有评论)。

理想情况下,视图页面的 URL 是:/movies/movie-name/reviews

我已经在欧文的回答中尝试过这种关系,但无法完成这项工作。

4

2 回答 2

3

如果我理解您的意思,您想创建一个视图页面,允许您查看与父节点关联的节点(通过 CCK 节点参考字段)?

设置视图后,您可以将 nid(或标题,或您选择作为参数的任何字段)传递给 URL。

因此,假设您在以下位置设置了“视图”页面:http: //yourinstall.com/related-nodes

只需将参数传入:http: //yourinstall.com/related-nodes/5

以上(假设您的关系/参数是正确的)将显示所有具有 NID 5 的关联节点。

这是我使用的视图配置的图像。

您会注意到视图上的“路径”设置是“movies/%/reviews”。我有两部电影“电影一”和“电影二”,每部电影都有一些评论。然后,您可以使用http://yourinstall.com/movies/movie-one/reviews等...查看评论的标题。

编辑:好的,所以问题的澄清是,您有一个 Views 块,它显示特定于电影的评论列表。同样,您希望“更多...”链接链接到显示特定于该电影的所有评论的视图页面。

这可以通过 Views 管理员实现,但确实涉及一些 PHP 代码。

  1. 您的 Views 块可以设置类似于上面的 Views 页面。
  2. 覆盖您的视图块参数(审查)节点:标题,并在“如果参数不存在时采取的措施”下,选择“提供默认参数”->“PHP 代码”。
  3. 您使用的代码是:

    if (arg(0) == 'node' && is_numeric(arg(1) ) ) {
      $node = node_load(arg(1) );
      return str_replace(' ', '-', strtolower($node->title) );
    }
    

本质上,Views 块的作用相同(期望电影节点标题),但将使用上面的代码尝试从 URL 中提取标题(注意这适用于路径别名)。电影节点标题也以“movies/[movie-title]/reviews”的格式放置在更多链接中(参见上图),它将按预期链接到“视图”页面。

于 2010-01-16T23:22:56.843 回答
0

我是否正确理解了这个问题?

真正的问题是块中的“更多”链接没有链接到正确的视图?

换句话说,如果您的视图是“movie_reviews”,并且在电影节点页面上您有:movie_reviews->block 添加在侧面,在此 movie_reviews->block 中,“更多”链接将访问者定向到 movies/all/reviews ?

您是否考虑过模板化这些更改?(操作块内的链接以使用当前正在观看的电影节点的节点。)块很容易主题化。

如果这对您的网站有意义,我可以提供有关如何实现此类功能的参考。

于 2010-01-19T01:23:26.193 回答