-
Some people look for the
-
Hi
-
Hi
-
I follow her blog and she is
-
I have been positive with the
快速从drupal5升级到drupal6
从drupal5升级到drupal6的必要性有必要先说明下(听着有点绕口):一年前drupal6刚出来的时候大家都不建议升级,因为最大的问 题就是相关模块支持太少,但到现在drupal6已经相当成熟,包括更严格的菜单路径映射功能(drupal5的时候菜单系统出现很多安全问题),更好的 jquery加强站点UE,以前设置权重值很是麻烦,而现在只要进行拖动保存后就可以了,另外很多api更加细化,人性化和简单化。BTW,能升级到 windows7的用户赶紧升级吧,因为比XP好用很多,我没有枪手嫌疑,因为我是个忠实的Linux用户。
关于升级服务器端部署问题这篇文章将不涉及,前面文章有介绍过,并且我记得在drupal.org上有篇文章是专门介绍如何从drupal5直接升级到drupal6的,我这里只是介绍模块开发人员要学习和参考的东西。
首先,菜单系统。我想这是在drupal6中最大的变化,首先$items这个序列化数组的键完全不同了,从callback 和 callback arguments变成了page callback,access也变成了access_callback以及access_arguments(包括title属性),这就意味着开发人 员可以更好的定制drupal的菜单系统。而且drupal6引入的path arguments更好的规范了drupal的动态菜单,配合load后缀函数方面页面传递参数,这里改动比较复杂,大家参考官方文档。
数据库层改动不大,接下来说说form api几个地方的改动,几个hook的参数发生了改变,form_alter , form_validate, form_submit,第一个变成了三个参数,最后一个参数才是form_id,并且为了性能问题,因为之前form_alter要检测所有的 form,加入了modulename_form_formname_alter函数。第二个参数数组发生了变化,现在都 用$form_state['value']['element_name']判断,其中element_name是form数组中定义的表单元素。第三 个提交后返回地址更加方便,直接修改$form['redirect']的值为内部链接就可以了,不用drupal_goto函数(其实也是对 drupal_goto的再次包装),不过记得传递进来的是地址引用,而不是值。
在使用上来看,很多模块都更新了,操作更加方面,所以建议大家升级到drupal6系统。
