本文最初由bigecko发表。
之前我在本地进行drupal开发的时候,每新建一个站点的基本步骤是: 先在drupal的sites目录下建立一个 xxx.com 的目录,放上配置文件,然后在hosts文件里加一条 xxx.com 指向127.0.0.1,通过浏览器访问 xxx.com 就可以进行一系列操作了。
但是在开发了比较多的drupal站点后,hosts文件里的条目就会越来越多,每新开发一个站点就要编辑一下,sites目录里的子目录名写的也比较随意,最后就会感觉比较乱。
现在我换了一个办法,在本地装了个bind9,把 *.xxx.com解析到127.0.0.1,然后在apache里新建一个虚拟主机,*.xxx.com指向到drupal的目录,这样访问任何xxx.com的二级域名都会到drupal程序里了。
接下来要新建一个drupal站点就很简单啦,在drupal的sites目录里新建一个 test.xxx.com的目录,之后就可以通过访问test.xxx.com进行所有的开发测试工作了。
最近半年多时间都在用drupal开发各类网站,对drupal算是有一定程度的熟悉了,感触也颇多,抽空做一些记录也算是对这一阶段学习的一些总结吧,如果有朋友一起来交流那就更好了。
不过俺这写的可不是教程啊,没什么具体代码分析,主要是还没那水平,而且教程的话网上真的很多,drupal官方的就很详细了。
drupal适合谁?
话说如果你只是想找个程序写写blog啥的,或者要推荐给一个不是太熟悉web开发的朋友一套建站系统用的话,那可千万别选drupal,至少不要选drupal core(drupal也有许多发行版),drupal安装完后的默认使用方式在我看来比较不太适合没有什么开发经验的人来用,至少在中国是这样,甚至有些开发者上手的时候也感觉很迷茫(包括我- -)?
我觉得选用drupal的首先应该是开发者,需要有一个基础的系统,在这个系统上根据自己的需求进行扩展开发。
以后俺搞网站估计很多都会基于Drupal7拉,blog里用的大部分模块都有drupal7的版本,感觉不错,似乎性能有所提高。
随着drupal的不断强大,我估计要越来越懒了...
上次记录了下把Druapl6.x里jquery升级到最新版本的方法,不过那样做了之后,drupal里一个很实用的功能失效了,就是那个可以通过拖拽调整表格内记录顺序的功能。
今天看了下,似乎还是因为jquery api变动引起的,下面是修复的方法。
打开jquery_update模块里的replace/tabledrag.js 这个文件,第175行,是这样的代码:
if ($('td:first .indentation:last', item).after(handle).size()) {
在jquery 1.3里面 $('td:first .indentation:last', item) 如果返回的是空数组,那么连上后面的.after(handle).size()整个返回就会是0,那就不会进这个if了。
在做drupal模块开发的时候经常会用到jquery框架来实现一些ajax应用或js交互,目前稳定版的drupal 6.x内置的还是2年多前的1.2.6版,普通用下也没问题了,但是有时候要用到另外的一些基于jquery的js程序,有些用到了新的jquery api,已经和老的jquery版本不兼容了。
drupal他自己的一些js也都是基于jquery写的,如果直接用新的jquery替换他内置的,会造成drupal的js无法正常使用,虽然有jquery_update模块,但是也只升级到了1.3.2,现在我要用个jsTree,必须要用1.4.2才行,直接替换jquery_update里的jquery也不成。
最后找到个方法,他提到了2个补丁,分别修改了drupal的common.inc和jquery_update的一些代码,我尝试了一下,还真可以用。
玩了几天drupal,研究了下发觉drupal真是个好东西阿,然后一冲动又把blog系统也换成drupal了。。。
以后在折腾blog的同时也能顺便学drupal了,要我说drupal和wordpress比较的话,其实2个不是一个层次的东西。
wordpress是一个非常优秀的blog/cms程序,搭建 升级 维护等都非常方便。
drupal么,其实应该说是一个自带了一些cms模块的优秀php框架...