4

我在drupal中设置了一个视图,列出了这样的项目:

IMAGE 1 | IMAGE 2 | IMAGE 3 | IMAGE 4
 desc   |  desc   |   desc  |  desc

你猜对了,“desc”是节点的描述。我需要的是结束这样的事情:

IMAGE 1 | IMAGE 2 | IMAGE 3 | IMAGE 4
 desc   |  desc   |   desc  |  desc
 EDIT   |  EDIT   |  EDIT   |  EDIT  
 ACTION | ACTION  | ACTION  | ACTION

EDIT 转到各个节点的编辑页面。此外,ACTION 表示我希望出现在导航到页面的项目下方的按钮,我们称其为http://www.mysite.com/action并将 id 作为参数,最终得到如下内容:http://www.mysite.com/action/1

我希望这一切都有意义。

解决这个问题的痛苦方法是创建一个主题文件 views-view-NAME.tpl.php 并操纵 $rows 变量。我只是认为必须有更好的方法,我显然只是错过了一些东西。

那么,有人知道该怎么做吗?

4

2 回答 2

9

您可以添加链接,然后通过执行以下操作将它们设置为按钮(如果您真的需要它看起来像一个按钮):

将以下字段添加到您的视图中:

  • 节点:编辑链接(这将为您处理权限,仅为有权编辑的用户显示链接)
  • 节点:Nid

为了使第二个字段成为包含节点 ID 的任意链接,请在配置字段时选择将此字段输出为链接选项。在链接路径框中,输入所需的链接,如下所示:

action/[nid]

或者,您可以使用绝对网址

http://www.example.com/action/[nid]
于 2009-08-06T21:26:45.040 回答
0

对于 Drupal 8,我构建了 Views Any Route 模块,它允许您基于路由创建按钮:https ://www.drupal.org/project/views_any_route 。该模块的主要用途是访问检查包含在链接的构造中,否则需要自定义字段或 Views Field View 等。

在这种情况下,如果您使用 Devel 模块,您可以查找“路由信息”并找到节点路径的正确路由。然后为该路由创建 Any Route 按钮,并将 nid 作为参数传递(即 node={{ nid }})。

于 2020-01-21T19:15:34.743 回答