欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Drupal 7 Views

shiping1 的头像
Submitted 1 年 8 个月 ago by webmaster.

Views 模块是Drupal7里面最流行的模块. 也是使用量最多的模块. 它几乎无所不能.制作一个页面, 制作一个管理页面.  Views 整合了 分类(Term)、用户(user)、 评论(comment) 等等。从本质上来说,Views是一个智能的查询生成器,只要你提供了足够的信息,它就可以查询出你想要的东西,并且将查询结果以你要求的方式显示。利用Views你可以生成一个页面、区块,并且可以为每个页面生成feed,并且页面内容的显示方式有五种,分别是:Grid(网格)、HTML List(HTML列表)、Jump menu(跳转菜单)、Unformatted(无格式)、Table(表格) 而且这里可以和DS模块结合.

Views模块安装时自带有 frontpage(首页) 、taxonomy/term(分类) 、tracker(文章、评论等追踪)、archive(归档)等视图,你可以在这基础上生成你想要的视图,然后以页面或者区块、feed的形式在前台显示。当然你也可以添加新的视图。

Views 需要 Ctools模块
安装好Views后默认有两个模块:
views : Views 核心功能
views UI : Views 界面操作, 当我们的网站上线以后或者我们的Views可以永远也不需要修改以后我们可以将此模块禁用

 

另外推荐由方医生提供的: 方医生Views 3简明使用指南

安装与配置: 

下载Views Ctools 

启用Ctools Views Views UI

模块案例: 

当我们启用了Views UI以后. 现在我们可以进入到Views操作界面首页了(admin/structure/views)

接着我们去添加一个VIews. 在添加一个view中我们可以添加一个页面或者是一个block(当然这里可以同时选择)

1. 添加一个页面

2. 添加一个block

当我们保存以后就直接进入了创建详细页面

这边我们以创建页面为例子. 但是区块和页面的配置区别不大.

先来看看Views基本界面, views 一般的界面操作有

1. FORMAT 内容输出格式化

2. Fields 要输出的内容字段

3. Filter CRITERIA  内容出过滤

4. SORT  排序

高级设置: 

1. CONTEXTUAL FILTERS  可以进行内容高级过滤, 比如从URL接收参数, 从用户ID接收参数. 或者写一段PHP代码(启用php filter模块)和一个静态的值
2. RELATIONSHIPS  数据关联(JOIN), 比如可以根据内容的作者关联到用户数据.取得用户里面的字段和信息
3. NO RESULTS BEHAVIOR  当没有数据时候显示的内容
4. EXPOSED FORM  可以使用基本设置里面字段过滤的字段生成一个表单放到页面的任何位置
5. OTHEN 其它设置(语言选择. CSS class)

Views 高级设置

案例1, 使用Views 创建新闻列表页面

前提1. 创建一个内容类型(admin/structure/types)为News(admin/structure/types/add)  默认字段就够用了

前提2. 为了保证有够多的新闻.使用 Devel Generate 一些数据或者手动添加

 

先创建新闻内容类型.

 

并且生成了够多的测试数据

 

1. 开始创建Views为news

1. 点击保存后我们来修改显示模式(Content), 这个显示模式会将所有的字段显示出来.我们只需要显示标题

 

保存以后默认就会有标题字段(title), 这里我们往拉就可以看到由Views生成的预览内容了.

2. 生成一个News的菜单

 

保存以后我们进入到我们网站前台

案例2, 使用Views 一个最新10条新闻区块放在首页

1. 编辑刚刚我们的News. view. 并且添加一个Block

   

    2. 修改显示方式为字段(Field)

3. 这里配置和上面一样

 

4. 最后修改分页方式为只显示指定条数

 

 

 

5. 最后保存当前VIew.

 

6. 进入到区块页面(admin/structure/block). 这时我们会看到多了一个block(View: News).并编辑配置这个block

 

7. 配置只在首页左边显示

开发资料: 

Views API: https://api.drupal.org/api/views

 

在views中有两个重要部分

 

1. handler 是为Views数据和Query 等方面的构建处理程序.

在Handler中定义一个字段:

http://www.ericschaefer.org/blog/2011/01/09/custom-field-handlers-for-views-2-drupal

http://www.phase2technology.com/blog/a-views-handler-the-easy-way/

这边有一个我写的例子. 在Views中计算两个字段和加减乘除.

 可以进行field两个字段的计算
 支持多重选择(比如字段A等于B+C, 然后可以再创建字段D等于A+B 这样的多重计算)
 可以计算自定义一个数字与其想计算
 支持sort filter

 https://github.com/zhouitpro/views_number_field_total

2. plugin 有点像Handler.但是plugin并不做数据方面的构建查询. plugin主要是建议用户UI数据显示方面

 

Views 常用函数:

views_get_all_views() //显示所有views views_get_view('archive') //获取指定的views views_block_view($name) //获取views中指定的block,viewsname-blockMachineName views_page($view,$page_name) //显示指定views的指定page

 

在代码中调用Views 区块(Block)​​views_embed_view

views_embed_view: 官方简介嵌入view, 根据Machine Name来获取你的views, 他可以获取block和page可以.

第一个参数是VIews名字. 第二个Views中的机器名(当一个View编辑页面为admin/structure/views/view/news/edit/block_1.那么block_1就是机器名.最末尾一个)

1. 获取一个Views 区块

print views_embed_view('views_product_page','page_1');

​2. 获取一个Views 页面

print views_embed_view('views_product_page','page_1');

3. 传入参数来获取一个页面.因为有些页面需要传参数

print views_embed_view('views_product_page','page_1', $arg1, $arg2, $arg3);

 

 

 

 

来自  http://www.drupalmodule.cn/project/views/7.x
普通分类: