16
十二/08
6

drupal views教程

当时刚刚接触drupal的时候,views模块一直是个很难理解的东西。不知道何时该使用它,怎么使用它。经过一段时间的了解,给drupal的开发者们分享一点心得。

首先,drupal是以节点为单位组织内容的,节点的定义做drupal开发的都知道。既然drupal站点的主要内容都是节点,那么大部分显示效果都是针对节点的显示了,比如对节点标题的摘要显示,对节点标题,时间,作者等的table列表等等显示方式。当然,开发者可以根据自己对drupal的了解,写出查询语句从node表中查询数据可以得到同样的结果,或者使用node_load()函数读取节点内容并输出,然而我们有更方便的做法,就是利用views模块。

简单说来,views模块就是可以根据一定的条件(arguments,类似查询语句中的where语句后的内容),需要显示的字段(fields,select后面的内容),显示的方式(大体分为两种,page和block)。其中,page就是整个页面显示一个views,block就是页面中的某个区块显示一个views,也可以两者同时选择,同时都能使用。如果选择了page,在地址栏输入你的views名称就能看到你需要列表的节点,而如果选择了block,在后台的区块管理里面就能进行这个区块相关的配置了。不知道我这里说明白了没有,自己创建一个views试试就明白怎么回事了。

我相信大家对别的选项都不难理解,唯独Exposed Filters这个选项。现在主要来说这个,顾名思义暴露的过滤条件,过滤条件怎么是暴露的呢?呵呵,这个意思就是说把过滤的条件放在用户可以看到的地方,并且用户可以选择过滤条件进行过滤。要使用Exposed Filters这个功能,必须在filters里面添加一个过滤条件后点击那个Exposed按钮,让这个过滤条件对用户可见。

我们举个例子:比如我们有一个按照时间来列表显示节点的views,其方式是page显示(整个页面)。如果我们想让用户可以自行选择节点的时间对views的内容进行控制,我们就可以把节点时间设置为exposed,这样在这个views页面就多了一些选项,用户可以以select box的形式选择时间,并点击提交后过滤出自己需要的时间。总之这个功能就是让用户对views显示的内容进行调整和控制。

最后,再说下views的样式定制。很多人都觉得drupal的主题个别地方很难定制,其实都有方法。有的可以利用主题函数进行覆写,有的可以利用特殊的工具。比如views的主题定制,我们可以利用views模块的工具(theme wizard,主题向导),这个工具能帮我们生成该views的代码,其代码本身就是一个主题覆写的函数,我们将这个函数拷贝到template.php中,修改下样式显示就可以了。这个其实跟一般的drupal主题覆写机制差不多,只是我们需要用工具来获得这个views的内容组织方式。说到底,drupal的主题定制占了很大一部分工作,因为这样那样的原因我们要定制很多页面,只要我们掌握了drupal的主题,更改起来难度也不是很大。

文章最后,给drupal开发者一些建议:多看drupal文档,因为里面还有好多东西你不知道;多利用drupal的内部函数,大部分都是drupal打头的;考虑全面一些,比如使用nodeapi这个hook的时候,我经常忘记节点删除的逻辑流程;安全编码,别忘记check_plain,更别用自己的sql查询流程,上个月drupal一个漏洞的原因就是某模块的查询语句造成sql注入,一看就是没有认真了解drupal的人。

关键字: ,