3
七/08
3

drupal这东西




机缘巧合,抽时间开始研究drupal,代码一行还没有看,先看看怎么使用。找了半天文档,英文的详尽并条理清晰,中文的资料少的可怜。。。让我有强烈冲动做个文档翻译的站点。。。

结合网络安全的资料来看,中文的更是少得可怜。 暂且不讽刺自己的英文阅读速度,目前的文档内容给国人技术的发展肯定有很多制约的地方。 计算机类书籍英文的经典一本接一本,连网上的PDF文档都能让人受益匪浅,可是随便下载一个中文的chm文件,从头看到尾,不到半个小时跟没看差不多。 当然排除各种语言手册。不管你可能会做线上,从工作到电子邮件,或partybets.com社交网络 – 这是非常重要的语言设置有你需要的。如果你有一个不完整或不准确的翻译也可以得到相当混乱。一些程序能够翻译得不错,但其他人少得多,所以。wiki的资料也是类似,没有好的文档,就必须让自己深入去看代码,看段时间才能把握这个程序的流程,这就跟先把握结构再去读代码来得慢许多。 我想自己具备这方面资源后,一定要做个免费的文档翻译站点,专注于网络安全行业的文档,给那么多英文像我一样的朋友带来福音

今天在电脑上翻到一些之前整理的资料,好多的PDF文档原来是那么的可爱,既然目前国内计算机行业的文档情况如此,一个人改变不了这个环境,就埋头使劲用E文去读吧。。。

看过那么多脚本和框架,接触drupal后使我眼前一亮。这个获得CMS大奖的东东,实用性相当高。Drupal可以被用来建立一个Internet门户;一个个人的,部门的,或者公司的网站;一个电子商务站点;一个资源分类站点;一个在线报纸;一个图库;一个内部网,这里仅提到了一部分。它甚至可被用来教授一个远程学习课程。一个专注于安全方面的小组,通过对威胁的反应和发行安全更新来保证Drupal的安全性。还有一个繁荣的社区组织,包括用户,站点管理员,设计者,和web开发者,非常努力的工作着,以持久的改进软件。

此外,drupal本身实现内核的代码就用了很多不错的技术。目前对于我来说只是一个学习怎么使用的肤浅阶段,只是在建设一个扩展性很强的站点时,一位牛人给我推荐用这个,我对他的眼光是深信不疑的。我想08年不用学习别的了,就这一个drupal的使用,技巧,代码研究足够让我享用的了。还好有大仙给我发来一份又一份的文档,才能使我越来越熟悉这个系统。很多应用上的实现,没有看内核的代码,很难想象是怎么实现的,不过也不急于一时,迟早会对他了如指掌的。

截止现在,终于从头到尾看完了那本456页(24章节)的《Drupal Development》,一个星期看下来相当艰难啊,专业术语太多,对我这种E文菜鸟是有点困难了。不过对整个drupal系统的认识确实不一样了,从各个子系统到安全、效率都有新的认识。
看这本书的简介就相当不错:Learn how to use the content management framework to create powerful customized
web sites!此外,又复习了一遍CVS的使用,看了jQuery的文档和YUI的文档,可谓收获颇丰啊,再也不怕Javascript相关的开发了。

中文资料也有一份,不过翻译有好多错别字,要一边看一边修改,程序的规范以及图片的截取都好多错误,看完英文的,中文的也改完了,还顺手汉化了2个Drupal模块,过几天审核下贡献到drupal社区,咱也要为open source做贡献啊。

明天一天的时间,先应用下jQuery写点东西,然后再仔细看看drupal的主题系统。以前经常去的drupal china站点,看到他们写的文档,真是相当垃圾,我要有时间写得肯定比他们好。台湾drupal站点的文档能稍微好点,但术语和大陆区别太大,什么模组、导向、物件,头晕ing。

最近在疯狂翻译drupal的模块,汉化工作相当疲惫啊。工欲善其事,必先利其器。
sudo apt-get install poedit
windows下也有这个工具。用extractor工具先导出模块的po文件,默认名为general.pot,用poedit来编辑。翻译完后输入模块信息保存即可。
目前已经翻译的模块有cck/fckeditor/fivestar/flag_content/panels/userpoints/views,最近这两天在审查,没问题的话打算贡献出去,和大家共享。

接下来就是处理站点中的一个问题,添加一种新的内容类型,并且放置在手册中,其大纲位置就在当前手册之下。问题就产生了:book模块本身只能编辑时候手动选择大纲,保存后才能将这个节点数据直接insert到book表中。其parentid父节点就是当前节点nid。为了解决这个问题,我将当前节点id 保存在临时变量中,用drupal自带的varible_set方法写入,用varible_get读取出来。在nodeapi的hook中,当op为 insert的时候插入这条数据。最后在link hook加入链接,问题解决。

虽然问题已经解决,但是这个办法更改了book的outline部分,其设计部分不可取。只是暂时解决问题。这是初次看完drupal文档做出的办法,我想过段时间,更熟悉这个框架的时候会有更好的解决方法。

另外,恶补了几天css。能简单的修改下模板,狼组的兄弟们都应该很怕css,没办法啊,一个人兼多个角色,系统管理,模块开发,还要干美工的事情。无所谓了,有收获就是好事。

今天在搜索一个问题的时候竟然搜到自己以前的删除的一篇博客日志,在红联Linux上。还好注明了作者是本人,不像××网站,拿狼组的文章出去,说是自己写的,逼T亮出自己的毕业设计才罢休。。。

为了修改book模块的大纲部分代码,加入了drupalchina一个Q群,进去后提问没有得到好的答案,没办法,只能靠自己。毕竟现在群里面大都是装高手的人,没几个能解决实际问题。比起我们的wolvez差远了。。。给的全都是蜻蜓点水的答案,说跟没说一样,在群里PK一大堆人后,郁郁得退出了。

要解决的问题如下:{
在book模块中,有大纲(outline)管理功能,在“手册父页面”下拉框中列出了所有的手册。
当book页面比较多的时候这个下拉框会变很长,所以我想在这里做个调整,方便使用。
想法如下:分成两个select
第一个列出所有的第一级book,当选择这个select框后,再在第二个select框中选择第一级下面的东西,这样就方便多了。也就是做一个联动select的东西。}

看了两遍book模块,刚好1000行代码,差不多常用的hook函数都有了。因为本人只关心大纲部分的代码,所以看了几个主要的实现函数。book_toc和book_toc_recurse。
book_toc 函数从数据库中读取出所有的book数据,将node表和book表内连接,将结果数组整合到一起,键为父节点ID,值为节点对象。然后对数组进行处理,递归对数组值进行层次缩进。两个好处:一次性读出所有数据组合为可处理数组,提高效率;处理空间较大。这个递归写得还不错,定制比较好,对以后的多维数组处理是个比较好的参考。大部分代码都看明白了,但是要结合整个drupal系统对book模块做修改,总是找不到合适的办法。为了满足drupal系统的要求,不能直接修改东西啊。继续看看吧。。。。

为drupal添加收藏夹管理模块:

drupal 社区中大家贡献了成千上万的功能模块,但收藏夹功能模块比较少,并且功能比较 单一。工作需要,我要自己动手扩展“Favorite Nodes”这个模块,加入收藏夹类别管理的功能。因为收藏节点的时候,节点相对较多,这样管理就不是很方便,如果我们可以自定义类别(类似 windows中文件夹的概念),再把将收藏的节点放到对应中的类别中去,

相关文章

关键字:
评论 (3) Trackbacks (0)
  1. 097633
    08:35 on 十月 13th, 2008

    你好,能把你汉化的几个模块发我份吗?谢谢097633@163.com

  2. terrysco
    14:41 on 十月 16th, 2008

    请问你具体要哪个模块的汉化包?很多都是自己写的模块,对你没有多大用途。

  3. 玲玲
    23:20 on 二月 26th, 2010

    翻译模块可是很辛苦的工作呀

发表评论

No trackbacks yet.