Drupal 建站

Modul多了,views多了,block多了,在等待中浪费的时间也就多了起来,想起西祠才子顾小白的那篇成名作:等待是一生最初苍老。心有戚戚焉.所不同的是,他谈的感性生活了无结局,我的代码片断等待却是结局分明。
这个周大部分时间与drupal相依为伴。每天都让电话铃无所顾忌的响着,选择还是有代价的,问题很多,选择更多。搭积木,玩游戏都是很好玩的事儿,当然。并不是说它就不会偶尔让你抓抓狂。
不能说没有结局,这在个周里,我把drupal关于cms的那一套已经基本掌握。比如forum,blog,image,flash等,并且用其中的 image,flash做了两个还算成功的模型,图片模块与小游戏模块。这个周里,我为网站导入了一万个图片,一万5千个flash游戏。为cms的那些 最热,最新,排行,评论,推荐的多种多样的views,block都安排了一个良好的结纳点。这个周里,对drupal关于web2.0的另一套也有了个 大概的了解,userpoints,invite,activity,group都加深了了解。这个周里,也基本绝望了用drupal的现有模块来完成 PK模块的念头,但是,那些美仑美奂的drupal程式员的优美作品与创意及基于对drupal架构的了解让我对这个模块的实现充满了信心。好了,闲话休 提,说点有用的。等下再来感慨吧。抛砖引玉,来谈谈drupal的两个模块组。象drupal是cms与social的结合体一样,drupal module 也是service与work的结合体。一样选一个吧。

一 谈谈drupal的注册模块。作为一个定位于社群型网站的系统,drupal的注册模块就可算是最好的代表。
注册方式,

1)可以扩展使用 email_registration 模块直接通过email完成注册

2)可以通过好友的invite邮件来完成注册

3)可以通过网站自带的注册模块注册

4)可能通过drupal的核心API的合作站点一站注册,全站通用。

注册过程:

1)如果您对spam充满了敌意,请使用captcha 模块加上验证码,这个模块提供了图形与文字的验证码的生成,生成的注册码的复杂度?那是相。。当。。的复杂。当然,我并不是要你生成一个81个字符的最好 的书法家也不认识的怪物来,要适可而止,你的服务对象也许并没有你的狂热。

2)如果您做的商业站点,并且希望用户接受一段网站声明(有用吗,不知道,反正从Google抄段通用的吧),您可以使用Legal模块。

3)您可以使用username_check模块来让用户验证一下是否已经有人注册了,这个,毫无例外是ajax模式的。不多说了。

4)您可以利用reg_with_pic模块让用户在注册的时候就上传一个图像文件

5)您可以在用户注册的时候可以让用户从一堆您准备的美女帅哥怪物大全的图片中选择一个用户满意的图片做图像。嗯,好象就这么多。且慢,以上5点可能大家都在用。再谈2个大家不多用的。

6)resizer模块。。同学们,你们上过佳缘吗,这个resizer模块跟佳缘上的差不多,可以让用户上传一张大的图片然后从中截一部分来做自己的图像,还可以缩放比例。,很有用处的的。

7)google adsense模块。提供一个google id让用户填写。这样,用户都可以在您的网站上发布自己的广告,打个比方说,我让用户传一个游戏到我的网站上,然后加上自己的google广告。然后只要 有人玩游戏,Google就得付广告展示费,玩家赚到真金白银了。是不是很有意思。

8)birthday模块,用户填上生日,每个生日都会收到您网站寄来的电子贺卡。当然,还有一些第三方的注册模块,我建议弃用。5.X的drupal已经很帅了。

二 谈谈drupal的分类管理模块。很多人说,drupal的分类管理模块是它的魅力所在。也有很多人说,drupal的分类管理是简单复杂化。就象大家拼 命讨论php是不是不够面向对象一样。我想,由空入色,由色悟空,这是所有的问题的共同点。好了,幸好我不是哲学家,没完没了。还是细述一下吧。首先,我 声明,我是一个狂热的batch fans,换句话说,我是批量数据处理爱好者。怎么解述这个问题呢。打个比方说:我会首先爱上drupal,然后爱上taxonomy manager,然后爱上devel,最后就爱上mysql了,如果您还不够明白,跟着我这样操作吧:首先手工在drupal 中insert 1 node,然后在taxonomy manager中insert 5 node,然后在devel中insert 500 node,最后就直接在mysql 中insert 100000 node。嗯,明白了吧,不过又跑题了,以后再来谈devel,今天先谈taxonomy. Taxonomy中的模块不少。我用过不少,

1) 不记得的有一些,用了几用后弃用的叫 taxonomy list,taxonomy block,这两个兄弟,有views中简单生成一下比它们强。

2)打算弃用的叫 taxonomy image,我先声明:taxonomy_image是个好的模块,功能就是在分类前加上logo图片,比如说你有个论坛,肯定希望象discuz那样前 面有个logo威风一下吧,可以用这个,但这个模块并不是人人都能用好,因为需要patch一些内容,我没时间patch来patch去的,还不到改代码 的时候。

3)弃用了后又拾回来的叫taxonomy context,他自己生成的blog很多,但我并不喜欢。拾回来是因为带了一个功能,就是把您的文档的目录完整的表示出来,比如您现在在 张柏枝 的图片上,但默认的drupal好象没有结构。用了tc后。您的目录结构就是 首页》图片》美女》张柏枝。这样,用户就能清晰地看到结构。所以这就是这个模块的用处

4)一直在用的模块 taxonomy manager,taxonomy xml。manager这个模块的意思就是批量的增加,修改,删除等,xml这个模块的用处就是放到记事本中来增减改删,如果您的量是50内,我建议用 manager,如果是100外,还是用xml吧,如果是1000,呵呵,什么模块也不强。只有database强了。另外对分类进行处理的时 候,taxonomy role也是必不可少的,比如你网站对图片分类有网站目录型的用来展示的图片,有用户博客上传的图片,有你用来发送电子贺卡保留的一些图片,所以,对这些 图片,您可能还想让用户能够标签一下自己的图片,现在这个年代流行这个噢,什么都tag一下。所以你至少得准备4个词汇表了。好了,当用户选择上传一个词 汇表时,问题出现了,4个分类并不是用户都需要的,但都放那儿等用户来选,多不纯洁呀,所以,taxnomy role的用处,不用我多说了吧。

5)还有一组与taxonomy相关的tag模块, tagadelic模块可以根据用户的点击来生成实时的tag目录,我把我的网站的二级子目录换成了这个模块,每个用户的贡献记录下来,也算是浏览的一种 回报吧,很有用。。另一个suggestedterms,就是推荐用户选择的标签,也是很有用的。

三 这个周一直在整理代码,效率还算高,过几天我会传一些作品到网站上去。我简单的总结一下这几天使用的工具,希望对programmer有些帮助。

1.我N年前开发过一个批量下载阿里巴巴企业库的Java bot,这次派上了用场,用它下载了1万个图片与1.5万个flash,当然,包括了目录,标题,等等有用内容。当然,快是快,时间成本还是有的,我的两台电脑晚上都加通霄班。

2.我先用excel把下载的data处理成想要的样子,然后用 vs2005处理成xml,然后用import taxomony导进database. 附加一句,vs2005的替换功能很快,很快很快。。

3.图片用flashget下载(flashget的网站可是个很好的web2.0模型,我想,他一定是互联网时代的明日之星),flash会自动 对重名文件处理,所以你下载完后对重名的文件处理记录需要到导出到log中,然后把下载的data在access中进行多表update,这样就把重名的 内容与原来的表对应上了。

4.我尝试用一上午的时间vb开发了一个自动发贴的软件,在本机drupal上自动登录,填表都通过了,但最后发贴的时候一个随机码我一下午都没搞 定,drupal的表单组件真的有点与众不同,但浪费了一天的时间,没时间研究了。值得?不值得,天知道。哪位兄弟如果有好的代码能够在drupal中发 数据成功,千万要分享一下,那会挽救我无数个work hours.+脑细胞。

5.下载了1.5万个游戏,大概有18个G,除了发愁找个移动硬盘来装这个东东外,另一个发愁的东西就是如何生成flash缩略图,并且+到 drupal后能够在teaser list中显示图片,在content中不显示图片。事实再一次证明了php不是万能的和drupal的万能。Php不是万能的,他没有flash生成缩 略图的软件,但asp我知道有,所以我又专门弄了个asp的目录打算来生成flash图片,后来看了一下代码,都是vbscript的脚本,算了,不建网 站了,我把代码直接命名为.vbs文件,在本机执行。Ok,1.5万个flash的缩略图 10分钟搞定。很好,下一步该发愁什么,对了,就是teaser的显示问题。伟大的drupal的flash node除了可加入image node作为附加外,还可以选择 image node的显示方式,比如在teaser中显示缩略图,在body中不显示图片,这不正是我想要的吧。感谢drupal,感谢党。。

6.下一步就是上传到数据库中了,既然 vb 的发布软件失败,我想市面上的发布软件也一个理吧,我又不可能一个一个的加到数据库中,只有华山一条路,直接操作mysql了。下载mysql administrator,又是english版,my god,硬着头皮看吧,看完后了解drupal数据库的结构。然后试着跟踪每个insert语句的执行过程。复杂有其复杂的道理,数据库的事儿,菜鸟最好 别玩。比如说我有保存一个drupal_batch_sql.xls的文件,其中一个delete flash,每delete一个flash,你需要操作下面这些文件。

DELETE FROM node WHERE nid = {$nodeid};
DELETE FROM node_revisions WHERE nid = {$nodeid};
DELETE FROM files WHERE filename='_flashnode' AND nid={$nodeid};
DELETE FROM flashnode WHERE nid={$nodeid};
DELETE FROM book WHERE nid = {$nodeid};
DELETE FROM comments WHERE nid = {$nodeid};
DELETE FROM node_comment_statistics WHERE nid = {$nodeid};
DELETE FROM menu WHERE path = 'node/{$nodeid}';
DELETE FROM url_alias WHERE src = 'node/{$nodeid}';
DELETE FROM node_counter WHERE nid = {$nodeid};
DELETE FROM term_node WHERE nid = {$nodeid};
DELETE FROM files WHERE nid = {$nodeid};
DELETE FROM content_type_flashnode WHERE nid = {$nodeid};
DELETE FROM page_title WHERE nid = {$nodeid};
DELETE FROM scheduler WHERE nid = {$nodeid};

所以,光删除一个node 在delete中您也许不吃亏,在insert中也许就根本无效了。生成脚本,最好的编辑工具是excel,最好的批量生成工具是access,最好的执 行工具?当然是mysql administrator,而不是web版的phpmyadmin了。

7)最后,记得时时吃一些后悔药,每次重大操作前用mysql administrator备份.乱子总是会发生的。打个比方说,我有次delete一个模块后,node access就乱了。用网站上那个发布设置》重建权限来重建,用了40分钟最后以内存超过php最大内存失败收场。。所以。记住我的话,大批量操作前请 backup.

有用的谈完了,其它有用的有待慢慢总结。我会以后开发过程中对关于社群网站建设的一些经验与大家分享,比如 invite,activity,chatroom,userpoints.关于drupal,愦憾不是没有。比如我最期待的drupal的模块, game api,开发了这么长时间好象没什么进展,真希望换个团队。有人接班啊。比如我比较期待的ecommerce,现在还只能处于观望状态。因为大家的反馈很 一般。我尝试用过magento,可惜安装都有问题,实在不能说是个成熟的版本。下一步我会用drupal中的社群模块对现在的游戏与图片模块进行强化, 当然,最最最主要的就是设计我的PK模块,同时也征集所有的同行对这个模块提些意见或者直接参与开发,我的PHP编程能力还有待考验。。

PK模块的主要功能我列到下面

1) 网站存在三方,PK的双方与评委。能够就一个话题,一场比赛,或者两个事物由用户发动或者网站管理者发动进行PK,然后由评委进行结果仲裁
2) PK的参与者是需要下注的,下注的多少有两种,如果是单挑,则需要与庄家就选定赔率下下注。如果是集体PK,则在上限与下限的内容内任意下注。
3) 在集体PK命题中,就是赢的一方按投注的多少平均分配输的一方的总量。在正反PK命题中,就是赢的一方获得输的一方的所有下注。
4) 如果命题为比赛,则在比赛后直接由评审判定则有比分PK与输赢PK两种(迎奥运啦),如果是两个事物,则以指定时间哪一方获票多直接决定结果,如果是其它命题。则以评审的意见为准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值