drupal模块

Drupal的google analytics模块

Google推出了免费的网站分析工具:Google Analytics,可以方便跟踪网站的访问点击,可以免费申请,但是需要加一段代码在网页里,虽然可以通过编辑主题文件来实现,但是有些麻烦,特别是如果drupal使用多个主题,或是多个网站共用一个Drupal的时候。于是就佳的选择就是模块 -- 这点也体现了Drupal的灵活性。mike做了这个google analytics 模块,只有2k,但是非常有用,附在这篇blog后面了。

AttachmentSize
Package icon googleanalytics.zip815 bytes
Blog分类: 

暂时停掉了trackback模块和spam模块

暂时停掉了Trackback模块和Spam模块,停用前者是因为现在网络上的trackback垃圾太多;停用后者是因为虽然spam能杀死所有的trackback垃圾,它同时也误伤了很多有用的评论。Drupal就像一部自动运行的机器,Spam模块通过Beyesian Rule来更新它对spam的辨识,然后cron自动把spam删除,但是在spam变得越来越聪明的时候,它也变得越来越多疑,把一些有用的评论也一并删除了。因为现在的trackback基本上也闲置不用,为了它专门再开启一个Spam模块有些浪费了,况且这个spam模块还有副作用呢?所以一并停之,这个世界也清凉了许多。

Blog分类: 

更改了Drupal的注册系统

Drupal的本身的注册系统虽然很完善,但是有时用起来会有些不方便,譬如注册以后,密码是用email的形式发送给用户,用户需要这个密码才能登陆。如果是Drupal的blog站点,这样的设置倒也无妨,但是如果把Drupal当作一个社区软件使用,这样的设置就显得有些麻烦,并且如果服务器端不支持邮件发送,新的用户就无法注册了,所以有必要做一些更改,而LoginToboggan模块就可以满足这个需要。它提供如下功能:

1.允许用户使用用户名或是电子邮件登陆。(我这儿把使用电子邮件登陆给取消了,为了避免给用户引来spam)

2.允许用户在登陆的时候自己设定密码

3.允许用户在注册后立即登录

4.在匿名用户禁止访问的页面提供一个登录表单。

5.这个模块提供了两种“登录区块”显示方式:一个是在用户点击“登录”后使用Javascript显示登录表单,第二是在用户点击登录后把用户导引入一个单独的登录界面,完成登录后仍然会转回用户原来浏览的页面。

我这儿已经安装这个模块了,可以试用一下:)

Blog分类: 

让Drupal的论坛看起来像PHPBB一样!

目标:
让Drupal的论坛看起来像PHPBB2一样,注意,这只是改变Drupal的外观,并为真正与PHPBB结合。Drupal也可以利用模块与PHPBB2结合,详情参看我的这篇blog

示例:
我这里的论坛

步骤:
为了实现这个外观效果,我们需要借助一个flatforum模块下载这个模块,解压缩,里面包含flatforum.module,  node-forum.tpl.php, template.tpl.php, flatforum.mysql 这四个文件,把node-forum.tpl.php和 template.tpl.php拷贝到你现在使用的主体的目录下,然后安装flatforum.module,把flatforum.mysql 加入数据库。到这一步完成实际上所要的效果已经有了,下面需要做的是添加CSS样式,让它看起来更像PHPBB(当然你也可以通过CSS让它像别的论坛软件)

目标:
让Drupal的论坛看起来像PHPBB2一样,注意,这只是改变Drupal的外观,并为真正与PHPBB结合。Drupal也可以利用模块与PHPBB2结合,详情参看我的这篇blog

示例:
我这里的论坛

步骤:
为了实现这个外观效果,我们需要借助一个flatforum模块下载这个模块,解压缩,里面包含flatforum.module,  node-forum.tpl.php, template.tpl.php, flatforum.mysql 这四个文件,把node-forum.tpl.php和 template.tpl.php拷贝到你现在使用的主体的目录下,然后安装flatforum.module,把flatforum.mysql 加入数据库。到这一步完成实际上所要的效果已经有了,下面需要做的是添加CSS样式和图标,让它看起来更像PHPBB(当然你也可以通过CSS让它像别的论坛软件)



添加如下CSS代码到你主题下的style.css文件中:

/* Make the drupal forum containers look like phpBB */
#forum {width:100%;}
#forum td.container {background-color:white; font-size: .9em; font-weight:bold;font-family:verdana;padding-top:5px;}
#forum td.forum{border:solid white 1px;height:50px; background-color:#F3F3F3;}
#forum td.forum:hover {border:solid white 1px;height:50px; background-color:#E3E3E3;}
#forum .description {font-size:.8em;}
#forum tr.dark {border:solid white 1px;height:50px; background-color:#F3F3F3;}
#forum tr.light {border:solid white 0px;height:50px;background-color:#F3F3F3;}
#forum td.dark, td.light, a:hover {color:red;}
#forum td.posts{background-color:#E3E3E3; border:solid white 1px;}
#forum td.topics{background-color:#E3E3E3; border:solid white 1px;}
#forum td.last-reply{background-color:#E3E3E3; border:solid white 1px;}
/* After you click a forum container link, this page shows a list of topics inside the forum*/
#forum td.topic{width:600px;background-color:#F3F3F3; border:solid white 1px; padding:10px}
#forum td.topic:hover {width:600px;background-color:#E3E3E3; border:solid white 1px; padding 10px;}
#forum td.replies {background-color:#E3E3E3; border:solid white 1px;}
#forum td.created{background-color:#E3E3E3; border:solid white 1px;}
#forum td.icon{padding:10px;}
/* Customize an actual forum post, which is output in node-forum.tpl.php*/
td.forum-header-left{border:solid white 1px;padding:10px;background-color:#E3E3E3;}
td.forum-header-right{border:solid white 1px;padding:10px;background-color:#E3E3E3;}
td.forum-middle-left{border:solid white 1px; background-color:#F3F3F3;padding:10px; }
td.forum-middle-right{border:solid white 1px; background-color:#F3F3F3; height:200px; width:600px; vertical-align:top;}
td.forum-bottom-left{border:solid white 1px;border-bottom:solid white 15px; background-color:#F3F3F3;}
td.forum-bottom-right{border:solid white 1px;border-bottom:solid white 15px; padding:5px; background-color:#F3F3F3; text-align:right;}
然后在管理-〉评论-〉设置 里把评论按平板展开,并且选择“旧的评论在上”
 
并把下列两个图标放入你的 misc/ 目录下:
搞定!
Blog分类: 

Drupal与PHPBB的有机结合:PHPBB模块

非官方,还在测试中的一个模块,作者是ak,可以在这里下载到。这个模块把Drupal和PHPBB整合在一起,安装使用非常的方便,它并不需要你自己更改任何源代码。安装的时候首先要启动Drupal的Clean Url,然后把PHPBB2安装在一个叫做“PHPBB2”的子目录中,注意把PHPBB的管理员的用户名设置的和你的Drupal的管理员的用户名一致。记得要停用PHPBB自己的“创建新用户”,这样可以使所有的用户都从Drupal中注册创建新用户。然后把上面提到的模块上传到Drupal的模块目录,启动模块,并在管理-〉设置中将路径设为“phpbb2/”,现在,如果用户只要登陆Drupal并进入PHPBB2就会发现同时也已经登陆入PHPBB了。把上面下载到的 .htaccess文件复制到PHPBB2的安装目录,这样如果用户在PHPBB那里点击登出,他就会自动转向Drupal的登出页面。如果你以后还需要进入PHPBB的管理面板,你需要在上面的那个.htaccess文件里停止下面两行命令(在命令前加#即可):
RewriteCond %{QUERY_STRING} ^sid=(.*)$
RewriteRule ^login.php(.*)$ /user/login?destination=phpBB2 [L]

如果有兴趣试一下:)

Blog分类: 

Drupal的垃圾攻防战:全新的Spam模块和更新的trackback模块

昨天又遭受了一次online poker的垃圾trackback袭击,8月2日经历过一次,那次Spam + Trackback 模块有效的阻止了垃圾trackback,而昨天, spam 和 trackback 去没有阻挡住瞬间上百条的垃圾trackback。因为Spam模块是Drupal核心模块设计的,所以它对组织垃圾留言和Blog内容非常有效,对于trackback,却一直都不支持。但是trackback的垃圾越来越严重,于是有用户更改了trackback,用一种比较笨拙的方式暂时防止了spam的袭击,后来trackback也作了更新,添加了对spam模块的支持。从逻辑上,这是一种颠倒,应该spam模块支持trackback模块才对,而不是颠倒过来,所以这种协作中存在着一个漏洞,而狡猾的垃圾trackback很快就知道该如何钻入这个漏洞,所以就出现了昨天的海量垃圾。

于是查阅解决方式。突然发现Spam模块已经被重新写过,最新的版本是今天才发布的2.0.10,但是这个版本并不在Drupal的总站上,因为Drupal总站发布的模块必须是基于GPL协议的,而新的Spam模块则是基于BSD协议的,不过我们可以在作者的网站找到这个模块。他提供了针对旧模块的数据表的升级脚本,但是我试了一下似乎有bug,升级数据库后,评论总是被全部或是部分的删除,幸好我在升级前备份了数据库,没有损失数据。所以索性彻底删除了旧的Spam模块和相关的数据表,重新安装新的Spam模块,反正原本也没有多少东西在旧的数据表里面。

新的Spam模块功能比先前强大了不少,它甚至可以扫描已有的内容,剔除杂糅其内的垃圾内容。但是美中不足的是它不能直接扫描已有的trackback,为了避免越俎代庖,不过这个版本的spam模块加强了对trackback模块的支持,在先前的几个版本中,还加入了对trackback模块的patch,以使两者能够更好的协作。8月22日,Trackback模块的作者将这个patch添加入他的模块中,所以现在只需要下在cvs版的trackback就可以了,而原先的patch文件也已经从Spam模块的正式下载文江中删除。

呵呵,希望这次可以多抵御一阵子spam的骚扰,道与魔不断的较量着技术手段,我等看热闹的就只好在被魔击中只好快些去道那里领取解药,呵呵,无奈,无奈:)

Blog分类: 

Flexiblock模块示意图

flexiblock模块的示意图

Taxonomy upgrade extras: 

随心所欲的摆放区块(block): flexiblock.module

[img_assist|fid=3461|thumb=1|alt=Flexiblock模块示意图|caption=flexiblock模块的示意图]
Drupal让我们体会到了搭积木的乐趣,方便的模块结构使用户可以随心搭建。Drupal页面设置也很灵活,无论是三栏结构,还是两栏结构,简单的点击一下就能彻底搞定。虽然一切都是那么的灵活,但是还有一丁点儿死板--那就是区块只能显示在左右两栏,可能会对页面的设计带来不便。举个例子, 譬如我使用的“Related Nodes”区块, 可以通过tag来显示和目前文章相关联的文章,这个区块的摆放最好是在文章的下面,方便读者浏览,可是按照Drupal原来的设计, 作为区块,它只能放在左右的sidebar里,这样一来很不容易注意到这个区块。虽然我们可以通过更改模块将这个“related nodes”区块显示在文章的下部,但是这样为以后的升级带来了不少的麻烦,因为每升一次级,就要相应的更改一次模块,如果模块的结构发生了改变,还要一切重来。

不过现在方便多了,因为有了flexiblock模块。它可以方便的把block显示在页面的任何地方,上下左右,甚至插在文章的中间都可以,譬如上面的截图所示,或者这篇帖子下面的Related Nodes。这个模块可以在Drupal的总站找到,但是现在暂时访问不了Drupal的总站(最近Drupal总站一直在准备升级,莫非已经开始了?),不过仍然可以从作者的主页现在到这个模块。

安装之前要注意这个模块只支持PHPtemplate和wgSmarty,并不支持drupal自带的Xtemplate。安装过程很简单,下载拷贝到Modules文件夹就可以了。但是如果想让这个模块正常工作,必须更改node.pl.php,在你想让block出现的地方放上显示代码即可,当然,你还可以修改一下style.css,然这个模块的显示更漂亮。

呵呵,有了这个模块,adsense一组好福气啊,因为这个模块可以方便你在恰当地地方插播文字广告:)

Blog分类: 

Drupal模块主题下载前20名

说模块以前,先说一句题外话:Drupal的核心开发人员Dries要结婚了,现在访问Drupal的主站,蓝色的水滴头像已经被一对佳偶代替,呵呵,衷心祝福他们:)

Drupal统计出来的下载前20名的模块和主题。

PHPTemplate theme engine (5500 downloads/month)
这个倒是在意料之中,Drupal自己带的Xtemplate支持的主题实在有限,很多从WP移植过来的主题必须phptemplate支持,并且phptemplate更改起来也非常的方便,我的Drupal的主题使用的就是phptemplae.

Image module
方便的图片支持是blog工具不可或缺的功能之一,Drupal的核心程序也支持通过附件的形式添加图片的功能,但是不利于管理上穿的图片,所以就有了image模块。image模块不仅方便管理图片,在img_assist的协助下更提供了强大的图片插入与编排功能。

Blix theme
这个是我最喜欢的主题之一,我的链接部分就是仿照这个主题制作的,也是从WP移植过来的。

FriendsElectric theme
一个不错的支持三栏的主题,shunz的Drupal用的应该就是这个主题。

Gallery module
这个模块把著名的图片管理程序Gallery与Drupal“亲密”的连接在了一起,非常方便你管理大量的图片!

Flexinode module
必不可少的模块之一,方便你创建适合自己使用的node类型,譬如我这里的菜谱,呵呵,名副其实,给使用者更大的灵活性。

Event module
社区blog不可缺少的功能之一,方便组织集体活动。

Leaf theme
比较清新的一款主题,也是从WP移植过来的。

SpreadFirefox theme
著名的spreadfirefox.com使用的也是以Drupal为核心的CMS程序,而这款主题就是来自于spreadfirefox网站。

Img_assist module
呵呵,上面介绍过的Image模块的搭档:)

Kubrick theme
WP移植过来的主题,早期Drupal流行主题之一,我的blog的顶部是模仿kubrick的风格。

Box_grey theme
这个主题非常的简洁,但是我不是很喜欢。

Tinymce module
一款WYSIWYG编辑器,移植的TinyMCE WYSIWYG editor,口碑比HTMLarea好。

E-Commerce module
不错的电子商务解决方案,看到有人在blog上卖自己拍摄的DV的,挺有趣的:)不过好像对国内的付款方式不支持,只是支持信用卡和paypal。

Feedback module
反馈模块,便于同访客沟通。

Fckeditor module
另一款编辑器,移植的Fckeditor,体积比较小,载入的速度要快很多。

Article module
组织文章的模块

Album module
影集模块,我觉得不是很好用,虽然可以批量上传图片并保存为image node,但是node的名称居然无法设定node的名称,而是上传时随机生成的复杂数字名称,不好。
Filemanager module
管理上传文件的模块。

Democratica theme (1700 downloads/month)
三栏的主题,乍一看和FE比较相似:)

Blog分类: 

Drupal的wiki模块

wiki模块升级到了4.6.0,其实wiki的前一个版本在4.6.0下也可以使用,不过还是更新了一下。新的wiki利用re-direct解决了创建新文章的问题,所以算得上是一个真正的wiki了,Chris曾经写过一个wiki的node type,用来辅助wiki模块,但是事实上大可不比,因为用flexinode可以很容易的创建一个这样的node type,然后把编辑权限设置给匿名用户就可以了。呵呵,等测试比较成熟了,还是想创建一个Drupal使用说明的wiki。

其实4.6.0里好几个模块的功能都和wiki的功能类似, 譬如freelinking模块和interwiki模块。感觉freelinking是由title模块升级来的,因为所用语法和title一样,都是用方括号[]创建内部链接,很方便,不过freelinking模块的功能改进了不少。interwiki模块的功能稍有不同,可以很方便链接许多其他网站,譬如想插入wikipedia对Drupal的解释,只需要使用语法:[w: drupa]就行了,而要连接到一个字典网站,则可使用[dict: drupal], 连接到google的搜索结果 [google: drupal],这样的语法是可以自己设置的。

Drupal的模块越来越丰富了,记过所有的CMS和Blog的功能都可以实现了,遗憾的是中文资源有限。自从hiweed专心开发Linux后(发现hiweed drupal的链接已经转接到hiweed的Linux去了),Drupal的中文化彻底停止了,呵呵,有时候好奇其他几个语种的Drupal的翻译是怎么组织的。

BTW,使用了shunz改写trackback block,感觉挺不错的,方便大家互通有无:)

Blog分类: 

Pages