在drupal中创建自己的node,其实就是创建自己的内容类型,也许你会说创建内容类型不是有图形操作界面吗,是的,没错drupal是提供了图形操作界面,在图形操作界面里我们可以非常方便地创建自己的内容类型,但你有没有考虑过如果你是做程序开发的,你目前有好几个网站需要的内容类型是相同的,这时候你一个个网站去创建内容类型吗?从这里我们就可以看到图形操作界面创建的内容类型可移植性非常差,这时候我们需要用代码创建内容类型,只要我们编写一个模块,把需要用到的内容类型都写进去,然后我们这个模块放到哪个网站都可以用,这样添加内容类型非常快。看到这里你是不是急于想知道怎么做呢,好了下面我给你讲解一下用代码添加node的主要思路,你掌握了思路这个事情就可以迎刃而解。

1.首先我们要创建一个文件夹,就像创建普通模块一样,在site/all/module里创建你的文件夹。

2.创建.info文件,注意这个文件名要和你的文件夹名相同,要不然drupal无法识别你的模块。

3.在.info文件里写上相应的信息,就像你正常创建模块一样,要写上name,description,package,core,最后还可以写上files信息,这样就算把这个模块基本配置好了。

4.配置好模块后你必须创建一个安装文件.install,让drupal知道应该怎么安装这个模块,在这个文件里你必须写好创建的数据表,字段信息,还有删除表,卸载模块时删除信息。

5.创建你的.module文件,你可以把你的所有业务逻辑都写到这里面,也可以分到其它文件写,分开的文件必须在.info文件的files里进行配置。在.module文件里首先要编写构造函数hook_node_info(),这个函数返回的是一个结构数组,这个数组包含节点名称,还有节点的各种属性,其中name、base这两个属性是必须的,name是显示的节点名称,base是drupal查找回调函数的前缀。其它的属性有:description,,help,has_title,title_label,locked等,这些属性不是必要的,但最好设置一下。

6.编写你的节点链接的访问权限可以在hook_menu_alter()里实现。

7.设置节点的管理权限可以通过hook_perimission()实现。

8.判断用户的访问权限,使用hook_node_access()完成,这个函数返回的是一个常量如:NODE_ACCESS_ALLOW。

到这里后台的业务处理基本完成,然后我们来编写一下前端的操作。

9.创建节点的输入表单hook_form()可以完成这个工作。

10.当用户通过我们创建的表单提交内容时,我们需要验证内容,可以使用hook_validate()完成验证。

11.如果我们想在表单保存、更新、删除时添加一些额外的操作,这时我们需要用到hook_insert(),hook_update(),hook_delete()实现。

12.我们想在加载这个节点,或显示这个节点时添加自己的文字信息可以用hook_load(),hook_view()完成。

13.drupal还为我们的节点提供主题函数hook_theme()在这个函数里可以定义这个节点使用哪个模板,添加节点变量。

14.设置自己的主题模板hook.tpl.php让你的节点按你的意思显示在自己创建的模板上。