用户登录

Drupal资源链接

http://zhupou.cn
drupal布道者,改成了"老葛的Drupal培训班",专心于培训事业
http://drupal.org
官方网站
http://drupalchina.org
中文的官方网站
http://acquia.com/
本站就是用这个版本构建的

使用手记

Module Builder模块的好帮手

drupal每个模块都使用相同的架构,如hook_menu,hook_help等,这于这些工作来说,要都记住比较困难,这几天在drupal.org看看,居然看到一个能自动生成模块框架的模块。Module Builder

用patch命令来打补丁

使用drupal也有一段时间了,当看到有补丁时一向使用手工来打

--- drush_make.download.inc	2 Jun 2010 15:57:21 -0000	1.1.2.32
+++ drush_make.download.inc 4 Jun 2010 13:25:33 -0000
@@ -96,7 +96,7 @@ class DrushMakeDownload_Get extends Drus
drush_shell_exec('tar -tf %s', $filename);
$info = drush_shell_exec_output();
if ($info) {
- list($first_line) = drush_shell_exec_output();
+ $first_line = $info[count($info) - 1];
list($directory) = explode('/', $first_line);
drush_make_cd($this->project->tmp_path, 'tar -xf %s', $filename);
drush_op('unlink', $filename);

 

但有一天看到有个补丁将近8K,怎么办?特地找了一些.patch文件的使用

在views中加入自定义字段

Views Custom Field是一个加入自定字段的模块,只是这个模块可以php代码来定义表现格式,像using drupal中第三章的一个例子,发布工作之后,用views模块列出所有的工作列表,还希望看到有多少人应征了这项工作,这时可能用Views Custom Field是一个比较好的方法。

用views建立一个下载列表

使用views建立一个常用下载列表,很简单的一个应用。

用CCK加一个file upload字段,设定上传的文件类型

使用filter过滤节点类型

将Row style:设置为fields 格式,并把要显示的字段选上

在Fields显示设置中,将CCK的下载文件字段设置为 URL to file并要把Exclude from display选上,就是不显示

将title中的Output this field as a link选上,设置为Link path:[field_download_fid]这样点击标题就可以下载内容

 

使用hook_form_alter关闭CCK字段的输入无效

一般情况下,我们可以使用hook_form_alter对form进行修改,但对CCK字段进行修改时,却发现找不到CCK的字段。能过google发现有2种方法。

1、修改使用hook_form_alter的模块的weight 值,将这个值变大,实际在就是延后执行,(这种方法好象对于现在的CCK模块无效,可能早期有用。

2、使用一个技巧,

保存节点之后返回指定页面

在问题节点发布之后,我不希望游客再看到这个节点(实际上游客在网站工作人员回答这前是没有权限看到这个节点的),刚开始考虑用触发器与动作,但发现在触发器与动作没有对指定的节点类型进行设置,就很简单的写了一个模块,用hook_nodeapi()做这样的动作,代码如下

function 模块名_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL){

if ($node->type=="question") {
    switch ($op) {
        case 'insert':
         drupal_goto("node/8");
          break;
      }
    }
}

可用性的附加模块

为了提高网站的可用性,使用了这几个模块

更好的上传界面

Taxonomy Super Select将分类用复选框列表

Transliteration解决中文文件名上传的问题

问题节点的解决

网站问答我是这样解决的:

在drupal上找了很多模块,发现都不怎么适用,其实要求很简单,游客发问,网站工作人员后台回答。

就用CCK建立了一个字段,作为回答的内容,用取消游客对这个字段的编辑权限,给网站工作人员加上编辑权限。

为了解决当网站工作人员没有回答之后,这些问题不能显示在前台,用workflow建立了一个问题工作流,只有网站工作人员回答之后,将问题状态改为发布,这些问题才能显示在前台

内容分类与工作流程

对于学校类网站的内容发布来说,应该比较简单,新建一个节点类型“新闻公告”用于存放所有发布的新闻,用分类来对这个节点类型进行区分不同的类别,在网站流程方面用workflow模块进行设置。

在wrokflow模块使用中,注意2点:

  • 如果要用Workflow access时,一定要注意节点默认为发布状态,否则是不会成功的
  • 如果想要某种状态下角色不能编辑,则不要在权限分配中把编辑权限给他

 

一个学校网站的建立

前几天帮人建立了一个学校网站,具体要求如下:

1、新闻发布要有审核制度,(网站人员大体可分为2类,网站编辑与网站审核,网站编辑负责输入新闻内容,由网站审核人员审核之后进行发布,要求有明确的权限,如只有网站编辑能输入与修改内容,网站审核人员不能修改编辑输入的内容,只能选择是琐发布)

2、新闻分类(如分为招生信息、学历教育、培训等内容)

3、网站问答(提供给游客进行网上提问的机会,要求在网站编辑人员回答问题之前,这些问题是不会被前台看到)

4、常用下载,增加常用下载的内容