Drupal CCK + Views:修改员工图库视图
在上一课中,我们使用 Drupal 的 Views 和 CCK 模块创建了一个员工图库,该图库通过创建“员工”类型的内容进行填充。在“员工”内容类型中,我们添加了两个字段:姓名(text field)和关于员工的介绍(textarea)。本课将展示如何通过 Views 以不同方式输出相同的数据。
目前员工图库显示如下:
为了方便,我在菜单中添加了一个指向员工视图的链接。在显示“页面”(Page)类型的 display 设置中使用 path 属性作为访问路径。
方法 1:修改员工图库视图,去掉每个员工的描述,让姓名(ФИО)变成指向员工节点的链接。
首先需要从员工图库视图中删除描述字段。进入视图列表(结构 → Views),选择我们的员工图库视图,在我的例子中是 view_sotrudniki。
点击字段编辑按钮,删除“关于员工”的描述字段。删除后保存更改。请注意:删除视图中的字段不会删除数据本身。
现在移除描述后,视图效果如下:
接下来,我们让员工姓名(ФИО)成为指向其节点的链接。打开员工视图,选择姓名字段:
在字段设置的底部,选择“Link this field to its node”(将此字段链接到其节点):
保存更改并保存视图。现在员工姓名将成为指向员工节点的链接:
方法 2:让员工姓名链接到员工图库视图,但在链接中传递员工节点的编号。
我们将根据员工编号输出一个包含员工描述的块,显示在图库下方。例如,如果员工节点的编号是 10,则姓名链接将指向 имя_сайта/sotrudniki/10。
进入员工图库视图,添加字段 内容:nid。nid 是节点编号(node id)。添加字段时请选择“Exclude from display”(不在页面中显示)。
将 nid 字段放在最上方,以便在创建姓名链接时可以使用它的值。
然后进入姓名字段(ФИО)的设置,将链接格式设置为 sotrudniki/[nid]:
取消“Link this field to its node”勾选,选中“Output this field as a link”(将此字段输出为链接)。在链接路径中使用模板变量 [nid],因此我们之前才将“内容:nid”字段上移。输入路径 sotrudniki/[nid],然后保存字段与视图。
现在我们需要创建一个用于显示员工信息的块。命名为 view_block_sotrudniki。在该视图中添加一个显示方式(display)类型为块(block)。
添加以下字段:
内容:姓名(ФИО)
内容:关于员工
过滤条件:
内容:已发布 - 是
内容:类型 - 员工
参数(Argument):
内容:nid —— 在参数设置中指定如下:
选择“Provide default argument”——当参数未提供时,可使用函数 arg()
等方法自动确定参数。函数 arg()
括号中写的是 URL 参数编号(如 sotrudniki/[nid]),编号从 0 开始,也就是说第二个参数是节点编号 [nid],第一个参数是 “sotrudniki”。
其他可能的参数选项:
Node ID from URL(从 URL 获取节点编号)——当第一个参数是 node(例如 node/14)时使用;
Taxonomy Term ID from URL(从 URL 获取分类术语编号)——当第一个参数是 term 时使用;我们将在之后的课程中详细讲解 Taxonomy 模块;
User ID from URL(从 URL 获取用户编号)——当第一个参数是 user 时使用。
在本例中输入 PHP 代码:return arg(1);
保存参数和视图。此时系统将生成一个块 view_block_sotrudniki: Блок。每当在 Views 中添加块类型的 display 时,都会创建一个块。我们将块 view_block_sotrudniki: Блок 放入“内容(content)”区域。
在块的可见性设置中,指定仅在包含单词 sotrudniki 的页面上显示(即触发员工图库视图),并且 URL 中的 sotrudniki 后带有节点编号(/* —— 星号表示斜杠后可以跟任意值)。
现在访问页面 имя_сайта/sotrudniki,点击员工姓名时,将会在图库下方显示该员工的姓名和个人简介。