Drupal 7视图3:暴露的搜索特定FIELDS的过滤器

时间:2011-08-26 10:07:03

标签: drupal views drupal-7 drupal-views drupal-modules

我真的很感激这方面的帮助。

我正在尝试在Views中创建两个不同的公开过滤器。我目前有6,000个节点,每个内容类型中有75个字段。我正在使用带有暴露形式的页面视图。我还安装了Better Exposed Filters模块。

第一个,我想创建一个用于搜索字词的文本框,但只让它搜索我指定的字段。我会搜索3个字段(搜索全名):名字,中间名,姓氏。他们都在不同的领域。 到目前为止,我唯一能够进行搜索的是内容类型中的每一项(它搜索每个字段,而不仅仅是名称)。我通过暴露这个过滤器来做到这一点:

Search: Search Terms
The terms to search for.

我要做的下一个过滤器是“毕业班”字段。最好也可以为此搜索术语(如果我可以弄清楚如何搜索一个字段,如上所述),但我希望有一个列出每个毕业班的选择下拉列表。这一领域的这些类别从1905年至1972年。当您在此框中单击一年时,它会按当年过滤当前结果。

这听起来非常基本,但我似乎无法得到它,并且真的很感激一些帮助。

供您参考(如果需要),以下是我可以添加的过滤器类型。 (偏离主题:我实际上不太确定“格式”究竟是什么)。对于“内容:”过滤器,我只会显示“名称”过滤器,因为还有73个其他过滤器。其中许多过滤器来自Feeds模块,因为这是我用来导入节点的原因:

Content: First Name (field_cinfo_fname)
Appears in: node:cadet.

Content: First Name (field_cinfo_fname:format)
Appears in: node:cadet.

Content: Middle Name (field_cinfo_mname)
Appears in: node:cadet.

Content: Middle Name (field_cinfo_mname:format)
Appears in: node:cadet.

Content: Last Name (field_cinfo_lname)
Appears in: node:cadet.

Content: Last Name (field_cinfo_lname:format)
Appears in: node:cadet.

Content access: Access
Filter for content by view access. Not necessary if you are using node as your base table.

Content revision: Log message
The log message entered when the revision was created.

Content revision: Title
The content title.

Content revision: Updated date
The date the node was last updated.

Content revision: Vid
The revision ID of the content revision.

Feeds item: Import date
Filter on a Feeds Item's import date field.

Feeds item: Item GUID
Filter on a Feeds Item's GUID field.

Feeds item: Item URL
Filter on a Feeds Item's URL field.

Feeds item: Owner feed nid
Filter on Feed Items by the Feed they were generated from using the Node Id of the Feed Node.

Feeds log: Feed node id
Filter on a Feeds Source's feed_nid field.

Feeds log: Importer id
Filter on an importer id.

Feeds log: Log time
The time of the event.

Feeds log: Request time
The time of the page request of an event.

Feeds log: Severity
Filter on the severity of a log message.

Feeds source: Feed node id
Filter on a Feeds Source's feed_nid field.

File Usage: Entity type
The type of entity that is related to the file.

File Usage: Module
The module managing this file relationship.

File Usage: Use count
The number of times the file is used by this entity.

Page Title: Title
A Page Title alternative to the Node: Title field.

Search: Links from
Other nodes that are linked from the node.

Search: Links to
Other nodes that link to the node.

Search: Search Terms
The terms to search for.

2 个答案:

答案 0 :(得分:2)

我可能在中途了解你,但你不想使用:

Content: First Name (field_cinfo_fname)
Content: Middle Name (field_cinfo_mname)
Content: Last Name (field_cinfo_lname)

作为您的过滤器?

我猜你的字段是文本区域,这就是为什么你有:格式选项; 'format'是longtext字段类型中的另一列,因此可用(就像'alt'和'title'可用于图像字段类型)。

答案 1 :(得分:0)

如果我正确理解了这个问题,你有三个名字字段,你想要一个文本框来搜索所有三个字段。最简单的方法是将这三个字段组合成一个未显示的字段,但可以使用公开的过滤器进行搜索。一种选择是使用Auto Nodetitle模块使节点标题成为三个名称的组合。 (我对人员目录做了很多,所以给定的条目显示为Lastname,Firstname)。然后,您可以在公开的过滤器中搜索节点标题。

如果使用标题不是项目的选项,您可以在内容类型中添加另一个字段,例如:full_name,并编写一个小模块来实现hook_node_save,只需填写full_name字段即可保存节点时的“第一个中间最后一个”。然后从显示中删除full_name字段,并将其用于公开的过滤器。

re:毕业年份:如果你使用的是“List(整数)”字段类型,那应该没问题。如果您使用纯文本字段类型,则会使事情变得更加困难。如果您使用纯文本,您可能需要重做该字段,以便您可以执行很酷的过滤器,例如“1950年之前的毕业”类型过滤器或使用jQuery滑块选择一系列毕业年份。

希望有所帮助。