我有两种内容类型,书籍和章节。每个章节节点都包含其所属书籍的节点引用。我创建了一个视图,显示给定书籍的每一章的标题。在视图中,标题字段已配置为链接到其节点。
一切正常。我现在有兴趣更新视图以在章节正文为空时不显示指向章节节点的链接。因此,此视图将显示一本书的章节标题列表,并仅链接到具有正文的章节。
这可以使用开箱即用的视图功能来完成吗?如果没有,这样的事情将如何完成?
谢谢。
我有两种内容类型,书籍和章节。每个章节节点都包含其所属书籍的节点引用。我创建了一个视图,显示给定书籍的每一章的标题。在视图中,标题字段已配置为链接到其节点。
一切正常。我现在有兴趣更新视图以在章节正文为空时不显示指向章节节点的链接。因此,此视图将显示一本书的章节标题列表,并仅链接到具有正文的章节。
这可以使用开箱即用的视图功能来完成吗?如果没有,这样的事情将如何完成?
谢谢。
我会使用Views Custom Field模块来实现您的自定义逻辑。它允许您获取视图获取的数据并使用 PHP 随意操作它。非常便利。
我正在回答我自己的问题,因为我对 ceejayoz 的回复格式不正确。
我所做的是首先下载并启用views_customfield。其次,我在视图中放置了 Title 和 Body 字段,这两个字段都从显示中排除。第三,在 Customfield: PHP code 字段中,我放置了以下代码:
<?php
if (strlen(trim($data->node_revisions_body)) == 0) {
return $data->node_title;
} else {
return l($data->node_title, drupal_get_path_alias('node/' . $data->nid));
}
?>
还有一个聪明的解决方法可以让你很容易地实现这一点:
- 添加 2 个标题字段,一个有链接,一个没有链接,并将它们都排除在显示之外。
- 添加正文字段,
- 在无结果行为中,将没有链接替换标记的标题放入其中。
- 在重写结果行为中,将带有链接替换标记的标题放入其中。
- 如果为空,请勾选隐藏。