Drupal

关于Drupal的安装、使用、问题、修改等的讨论。也是目前唯一的Drupal中文交流论坛。

Drupal 4.7 升级准备笔记(2)

第一步,我们所需要做的就是把awtags彻底的转换为free tags。权衡再三,觉得还是使用drupal核心提供的tags比较安全,因为在将来我们不知道awtags还会不会更新。另外free tags因为使用了ajax技术,可以方便的给你书写提示,并支持tags中间的空格,还有就是可以自动ping Technorati。awtags好像也声称可以自动ping technorati,但是用了这么久,没见它ping过:)所以我们这里做的第一步就是将awtags彻底转化为free tags,然后我们再通过编辑drupa的主题,使得free tags的显示与awtags一摸一样(也就是说我们仍然保持原来的分类,但是在文章的末尾显示free tags)。

升级的思路其实很简单,我们需要做两件事情,首先是把awtags的tags导入free tags所在的term_data表中,然后再建立起 tags与node之间的关联。注意:建议你先将awtags导入term_data,然后在升级到drupal 4.7beta4,如果先升级再导入的话,牵扯到一个转化MySQL数据库 Char Set的问题,在MySQL中不能直接把lantin1的编码转化为utf-8,必须先转化为binary,所以这样的转化是极为复杂的,因此建议先完成导入导出,然后在升级。

  1. 建立一个新的分类,名字叫做 tags (或者什么别的名字都行),这个分类在升级后就起到free tags的作用。
  2. 我们需要知道一些基本数据:首先在你的数据库中(phpmyadmin或是命令行)运行:

    select vid,name from vocabulary;

    因为我们想知道
    这个新建的tags的vid,运行的结果是各个分类(vocabulary)的id number,我这里的tags的vid是12;然后我们需要知道现在tid的最大值是多少:

    select max(term_data.tid) from term_data;

    因为在drupal的taxonomy中,每个分类词(term)都会占有一个tid,我们在把awtags的tag导入为term的时候要避开已经在使用中的tid,否则就会因为重叠而出错。我这里tid的最大值是53;
  3. 现在开始导入:

    insert into term_data (tid,vid,name) select 55+awtags.tid, 12, awtags.tag from awtags;

    这里导入的是tag的名称。注意我用红色标记的地方。因为我的tid已经排到53了,为了避免导入的tag与已有的term重复,所以我在前面加了55;12表示的是vid的数字,也就是你新建的tags分类的vid。
  4. 然后导入:

    insert into term_node (tid,nid) select 55+awtags_node.tid,awtags_node.nid from awtags_node;

    这里导入的是tag与node的关联。同样注意这个红色的55。至此转换完毕,你可以放心的升级drupal 4.7-beta4了。
  5. 升级之后,记得到 "管理->分类" 中去将编辑术语tags,勾选free tagging这个选项。OK,一切都搞定!


今天的笔记先到这里。明天我再写如何把free tags与分类分开显示。

Free Tags: 
Blog分类: 

drupal 4.7 翻译的进展

translation_process.png呵呵,drupal 4.7 应该快出来了(ft,这句话说过无数次了),所以刚才看了一下drupal 4.6里有多少旧的翻译可以用于drupal 4.7的,在Linux里msgmerge了新旧翻译,发现其实大部分的drupal 4.6的翻译其实都是可以用于 drupal 4.7的(见右图,点击放大,如果使用feed访问的,可以点击这里从flickr打开),估算了一下,其实翻译量只有总量的一成左右,所以这个星期想抽空做一下试试看,估计认真的翻一下,可能几个小时就可以完成了,完成以后会上传到drupal的总站,tag为drupal 4.7的release,到时候大家可以下载来试试,看看质量如何。翻译的同时也打算在此校对一下原来drupal 4.6的翻译,前阵子和大伙儿一起聊了聊drupal汉化的标准化翻译的问题,就按照大家讨论的结果再对drupal的汉化翻译做一次校勘。呵呵,希望可以很快地完成。另外,由于我的blog国内似乎仍然访问不了,所以想像原来设想的那样,新建一个 drupalchina.org, 作为drupal中文化的一个社区,已经在大米那里留了言,大致设想是先把网站用drupal架好,然后启动论坛模块,对drupal感兴趣的同志们可以一起去聊聊,看看具体怎么架设这个中文drupal的社区。呵呵,加油尽快把drupal 4.7 的翻译赶出来:)

Free Tags: 
Blog分类: 

Drupal 4.7 升级准备笔记(1)

<

p>前几天冒冒失的升级到beta-3,但是因为一些错误,又不得不重新降级回drupal 4.6.5,这两天比较闲,又仔细研究了一下drupal 4.7,决定在测试站点上把一切都调配得当,再升级到 drupal 4.7的beta-4,这里是一些研究笔记:

  1. drupal 4.7-beta 4的升级没有问题,原来说是有问题其实是我自己的问题,可能是一次执行补丁的时候无意把三个数据表的结构改变了,所以才导致了升级中出错,对比了一下新安装的drupal 4.6.5的数据库,发现我的 node, accesslog, locale_targets三个表的index被补丁改动过,于是手动改回来,现在已经没有问题了,我的测试站点已经在拖着我的一个数据库的备份在运行 drupal 4.7 beta-4了;
  2. 升级之后,数据库的vocabulary表仍然少了一个column,导致无法加入新的vocabulary,手动添加了那个叫做targets的column,现在已经没有问题了;
  3. 升级之后,可能默认的“主链接”会消失,只需要在“管理->菜单”下选择“重设菜单”就可以了,可以重新编辑主链接。这样的菜单编辑事实上给了Drupal更大的灵活性;
  4. flatforum有支持 drupal 4.7 的版本,所以仍然可以保持原来的forum的样子;
  5. 打算彻底放弃awtags,改用freetags,传化的方法已经基本完成,现在还在调试,如果成功了就仔细写一下转换的方法。

呵呵,现写这么多,继续试验ing:)

Free Tags: 
Blog分类: 

Drupal和无损SEO的文字转图片方案:sIFR

前几天聊到了一个把在服务器端把文字转化为图片的小trick,具体的说,譬如你在你的网站的文字设置了一种字体,但是由于访客的机器在本地没有安装这种字体,导致无法显示,所以就有一种简单的技术,把需要的字体放在服务器端,然后将使用这种字体的文字自动转化为图片,这样访客就可以正常访问了。但是fufu在评论的时候也指出这种trick比较影响SEO(搜索引擎优化)。但是,现在有一种新的技术可以更方便的实现这一功能,并且丝毫无损SEO,这就是sIRF(Scalable Inman Flash Replacement),它使用Flash和JavaScript技术利用你上传到服务器端的字体重新渲染你的文字,可以生成各种你需要的字体,hoho,譬如那天俺兴起把所有的blog都用“九叠篆”显示:)效果可以看这里,注意上面的 The Gothic Times 几个字。当然更令人振奋的是Drupal已经支持了这种技术,因为我们已经有了sIRF模块,安装了这个模块就可以简单的实现了sIRF,不过需要注意的是这个模块现在只支持 drupal 4.7 ,使用 4.7 的同志们可以试一下,我现在也到我的测试站点,显示一下“九叠篆”去:)

Blog分类: 

再次降级回drupal 4.6.5

昨天升级到了drupal 4.7-beta3,但是太不稳定,于是又降级回了 drupal 4.6.5。Beta3的一些已知的bug在beta4中都已经解决,但是我从4.6.5直接升级到beta4的时候屡屡出错,关键问题出在三个数据表上(access_log,node, locales_target),不知道是不是因为我的某些模块在安装时改变了这几个表的结构,才出现更新失败的错误,正在进一步的研究中。所以昨天只装了beta3,几个问题譬如Awtags什么的也都已经解决了。但是beta3似乎还是不太稳定,block部分后来神秘消失了(^_^)现在把beta3的数据库先挂在测试网站上了,继续研究一下错误到底出在什么地方。另外发现 drupal 4.7 里面很多的翻译都可以直接用drupal 4.6的,翻译的工作量会小很多。

Free Tags: 
Blog分类: 

Drupal几款最新的主题

这阵子,Drupal又有了一些新的主题,包括FancyGoldengraySimplexBurntSharepoint-Like,和Blue Bars 。其中的一些是来自Wordpress,也有一些是自己设计的,但是大多乏善可陈,其中的Fancy采用了一个在服务器端把文字转换为图片的小trick,可以自由的选用字体,这个东东我以前也弄了一个出来,后来又丢掉了,因为觉得价值不是很大,不过用的好了还是很漂亮的,譬如海豚微笑的背后,他那里应该是用的wordpress的一个插件。

真正比较有趣的一个主题设计是Nick Lewis做的一个一个叫做Curved Slate的主题,它使用了Nifty Corners技术,利用JavaScript来做半圆形的边角, 并且整合了很多Drupal 4.7新推出的功能,除此以外还配备了很多可爱的图标。不管这个主题本身看起来怎样,它至少给我们提供了一个可以解剖学习的“活体”(hoho,有些恐怖了)。

Free Tags: 
Blog分类: 

Zoundry与Performancing对Drupal的支持

这两天对比测试了一下ZoundryPerformancing。Zoundry是一个专门的blog发布程序,而Performancing是一个Firefox的插件。测试的结果,感觉Performancing要更好一些,呵呵,不知道是不是因为Performancing的作者也是Drupal粉丝之一的缘故。具体来说,Performancing的优点有如下几点:

  1. 设置要比Zoundry简单很多,默认对Drupal支持;
  2. 速度要比Zoundry快很多,不管是发布还是启动;
  3. 发布后在Drupal中可以正确的生成摘要,而Zoundry往往会错误的截取摘要,并会因此导致RSS乱码;

还有一点,Performancing非常的方便,因为就在浏览器中。呵呵,有了Performancing,原来炒作一时的Flock就更没什么价值了。呵呵,还是firefox方便。BTW,这两天安装了IE 7.0 Beta,不过觉得不是很好,特别是对它对CSS的默认解读似乎与IE 6.0不同,导致很多网站的界面都产生了错误。

Blog分类: 

测试了一下升级到 Drupal 4.7-beta 4

先备份了数据库,然后新建了一个数据,把现在的数据导入,Drupal的升级其实关键数据库的升级。然后在 http://test.kzeng.info 上进行了测试。这次drupal的升级可以自动选择你现在的版本,方便了一些,但是一开始就显示了一些 illegal mix of collations的错误,这是一个已知的bug,按照以前测试的经验,并不影响升级后的使用,但是在升级数据库的时候,有三个数据表出现了错误,必须手动升级,尝试了手动升级,但是仍然出错,但是给出了出错代码,还没有来得及在MySQL的网站上查询。升级以后倒是可以正常使用,因为有些模块还没有安装齐全,所以现在测试网站暂时设置成了offline的状态--这也是drupal 4.7的新功能。

几个升级出错的数据表似乎并不影响Drupal的使用,一切运转良好,唯一的缺憾是AwTags到了现在还没有推出升级版本,我在作者的网站上一催再催,仍然不见动静,作者的网站似乎也时好时不好的。这也是使用contributed 模块的风险之一吧,一旦过于依赖某一个模块而那个模块又不在推出更新时,便遇到了大问题。眼下如果想升级到 drupal 4.7 对于tags两个选择,一是写个脚本,把awtags全部转化为freetags;二是不管作者,自己升级AwTags。相比而言,第二种选择更简单一些,因为Drupal提供了较为详尽的模块升级指南,只可惜这阵子比较忙,不知道什么时候才能有空做这件事情。呵呵,希望尽快可以闲下来:)

Blog分类: 

Firefox的桌面blog发布工具

<

p>

发现了一个不错的firefox扩展:performancing,它是一个桌面blog发布程序,可以方便的和 drupal 结合使用:

Performancing for Firefox is a full featured blog editor that sits right in your Firefox browse and lets you post to your blog easiy. You can drag and drop formatted text from the page you happen to be browsing, and take notes as well as post to your blog.

<

p>从功能上讲,它和Zoundry差不多,通过Drupal的Blogger API发布blog内容,可以自动下载网站的内容分类(category),支持Technorati的Tag,可以ping Ping-O-Matic等网站,允许发送trackback等等。从方便性上讲,Performancing有不少独到之处:

  1. 它完美支持Drupal!在设定中,它已经预设了drupal的支持选项,直接选择就可以了,这点与Zoundry不同,Zoundry必须自己手动设置,有些麻烦;
  2. 非常方便的与Firefox结合,在网上看到任何感兴趣的内容,都可以通过鼠标右键方便的添加到自己的blog中,会自动转换为blockquote的形式;
  3. 大致可以取代drupal的自带的所见即所得的编辑器;
  4. 除了drupal广泛支持时下流行的blog服务与blog软件,譬如MSN Space,Blogger, Wordpress,Livejournal等等;

当然它也有些不足,譬如无法使用Drupal的tag功能,必须发布后再次编辑,不支持文件上传(Zoundry好像支持文件上传),但是作为Firefox的一个插件,能实现现在的功能已经非常不错了,所以不妨试一下:)BTW,这篇Blog就是用Performancing写的。

Blog分类: 

drupal的多站点支持

Drupal提供了一套非常有用的多站点支持方案,所谓多站点支持,就是使用一个drupal,一个空间,建立理论上无穷多的网站。举个最简单的例子,一般的空间,只允许有限个的域名指向(pointing),譬如我使用的site5的服务,可以有5个域名指向我的空间;但是却允许无数个域名停靠(parking)。这些”停靠“的域名类似一个自动的跳转,当你输入这个域名(譬如,www.ourblogs.org ),它就会自动转接到它做”停靠“的空间(譬如 www.kzeng.info),而不能拥有自己的子目录。但是drupal的多站点支持使得停靠的域名也和真正的域名一样,有完备的自己的子目录,一个范例就是我这里的 http://www.ourblogs.org 它停靠在 http://www.kzeng.info 上,但是如果你从 ourlogs.org 进入我的blog,页面所有的链接都是形如 http://www.ourblogs.org/node/... 的,图片的链接也是自动转换的,十分方便,特别适合像俺这样被封掉了域名的blogger使用:)下面就简要的介绍一下如何使用drupal的多站点支持。

还是以我这里为例,我的主域名是 http://www.kzeng.info ,我想使得用户通过 http://www.ourblogs.org 也可以正常访问我的blog的所有内容。首先,把 http://www.ourblogs.org ”停靠“(park)在主域名空间上。然后在 drupal的安装目录下找到 sites 文件夹,打开,里面有一个default文件夹,是你站点的默认设置。在sites 目录下新建一个叫做www.ourblogs.org的文件夹,将default目录中的setting.php拷贝入这个www.ourblogs.org文件夹,然后用文本编辑器打开这个文件,把 $base_url 改为 http://www.ourblogs.org 即可。这样就使解决了使用一个drupal从不同域名访问的问题。

当然这只是一个最简单的例子,下面说说另外的例子。譬如我想让 www.kzeng.infowww.ourblogs.org 成为两个完全不同的站点,这个实现也很方便,在www.ourblogs.org文件夹下,除了将setting.php的base url改为 http://www.ourblogs.org 外,把数据库链接改为一个新的数据就可以了。

如果你想让两个完全不同的drupal共用一个数据库,记得在setting.php中对于两个drupal的数据库加上不同的前缀(prefix)即可。

这样的多站点支持不限于不同的域名,你也可以用IP地址和域名,以及不同子域名共享同一个drupal的code,建立相同的或是不同的drupal网站:)

Free Tags: 
Blog分类: