2010-01-16 124 views
2

我有一个节点(节点a)与其他各种节点(节点b/c/d/e)引用。drupal链接查看依赖于参数

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

基本上在节点a上查看节点b-e的列表。

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

谢谢。

编辑:我对这个令人困惑的问题表示歉意。

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

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

这太好了,但是因为在电影节点上只有几条评论,所以我需要一个页面,在那里我可以看到每部电影的所有评论。问题是从视图块(例如,3个电影评论)到观看页面(包含所有评论)将电影参数传递给观看者。

理想的看法页面的网址是:/电影/电影名称/评论

我曾与在欧文的回答关系试过,但没能完成这项工作。

回答

3

如果我明白你在说什么,你想创建一个视图页面,允许你查看与父节点相关联的节点(通过CCK节点引用字段)?

一旦你设置了你的视图,你可以只传递nid(或标题,或者你选择的任何字段作为参数)到URL中。

因此,假设你有一个浏览页面设置:http://yourinstall.com/related-nodes

只是传递参数中:http://yourinstall.com/related-nodes/5

以上(假设你的人际关系/论点是正确的)会显示与NID 5所有相关节点。

这是我使用的image of the views configuration

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

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

这是可以通过视图管理员,但确实涉及到一些PHP代码。

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

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

在本质上,查看块作用相同(期望一个电影结题),但将使用上面的代码,试图从拉标题网址(请注意这适用于路径别名)。电影节点标题也会以“movies/[movie-title]/reviews”的格式放入更多链接(请参阅上面的图像),它将按照预期链接到Views页面。

+0

谢谢你,是否有任何方式让网站中的节点标题? – Jourkey 2010-01-17 01:41:07

+0

是的,只需使用节点标题作为参数而不是nid。有一个选项可以将空格转换为破折号以及URL目的。我在答案中加入了一个例子。 – Owen 2010-01-17 03:26:32

+0

谢谢你,但我不明白这是如何工作的。我的参数不是nid,而是节点引用字段。如果我将标题设置为参数,那不会给我什么。谢谢你的帮助。 – Jourkey 2010-01-17 06:16:02

0

我是否正确理解此问题?

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

换句话说,如果您的视图是“movie_reviews”,并且在电影节点页面上有:movie_reviews-> block添加在侧面,在此movie_reviews-> block中,“more”链接将访问者导向电影/所有/评论?

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

我可以给如何实现这样的东西,如果我这对你的网站有意义的参考。