drupal使用

Druapl 4.7 使用手记 (3):灵活摆放block

Drupal 4.7 提供了更灵活的block摆放设置,除了原来的左右边栏,还可以把block摆放在页首与页尾。新的block摆放设置有一个优点与一个缺点。优点是事实上它可以把block摆放在页面(page.tpl.php)上的任何位置;确定是摆放仅限于于页面(page.tpl.php)而无法灵活的放置在node.tpl.php上,举个例子,譬如你想在每篇blog的下面通过freetagging的关联添加一个"相关blog文章"的block,利用Drupal的新的block系统,你只能把这个block摆放在评论的下面而通常所希望的评论的上面,free tags的下面,有些不方便。这里我就分别介绍一下Drupal 4.7的block的这两个优缺点,以及改进办法(以放置related nodes 为例)。

Drupal 4.7的block在设置中,除了左右侧边栏外,新添加了页首,页脚和内容三个位置的摆放,使得block的放置更为灵活。其实,block的摆放并不仅限于这三个地方,通过设置方便的PHPTemplate主题,我们可以方便的把block放在任意的地方。首先,针对left, right, content, header, 和footer这5个位置,他们对应的变量分别是 $sidebar_left, $sidebar_right, $content, $header, 和 $footer_message。也就是说在page.tpl.php中,你只要想在显示他们的地方是用 <?php print $变量名称; ?> 就可以了。譬如,你可以把 $sidebar_left 放在右边而不是左边(使用两个边栏都在右侧的外观主题)。除此以外,你还可以方便的定义自己的区域。

在你的主题文件夹里看看有没有template.php文件,如果有你需要将下面的代码添入,如果没有则需要新建一个template.php文件。在这个文件中我们将利用mytheme_regions() 来创建新的block的位置(参看Drupal使用手册的这里)。譬如你想在Drupal已有的block摆放区域外新建一个用来放Ad Sense的floater区域,只需要在template.php文件中写入以下代码:
function regional_regions() {
return array(
'floater' => t('floater'),
'left' => t('left sidebar'),
'right' => t('right sidebar'),
'content' => t('content'),
'header' => t('header'),
'footer' => t('footer')
);
}
?>
注意:你需要把regional_regions()更换为 你的主题名称_regions(),譬如 pushbutton_regions()。

然后在page.tpl.php文件中,只需要在你希望显示这个新的floater区块的地方写入 即可。同时也可以方便的css文件中定义它的显示属性(譬如,float:right)。

但是这样的灵活摆放仅限于page.tpl.php,无法在node.tpl.php上使用,有时这会非常的不方便。所以为了在node上灵活的显示block,我们有两种方式,一是在node.tpl.php上加入一段php代码显示block,但是并不推荐。另外就是大名鼎鼎,异常好用的flexiblock了,原来的作者没有推出 4.7的版本,但是有人帮助升级到了4.7(这里)使用方法与以前类似,是针对node.tpl.php的,正好可以与drupal的block摆放互补不足。有了这个模块,就可以方便的摆入“related nodes”block,用free tags重现awtags的方便之处,我这里就是一个范例。:)

Blog分类: 

Druapl 4.7 使用手记(2):使用Zoundry书写Blog

<

p>

呵呵,这一篇其实是一个篇外篇,本来不打算再写Zoundry的,因为以前写过;但是Drupal China有不少相关的讨论,所以写一下使用手记,使用Zoundry这么久也多了不少新的经验。以前在介绍过Performancing之后,曾经写过一个Zoundry和Performancing的简单的比较,Performancing的优势在于轻便;Zoundry的优势在于全面。这里主要说两个问题一是如何用Zoundry发布各个类型的Drupal的帖子(譬如Blog,Story,Page以及论坛主题);二是如何用Zoundry发布图片。

使用Zoundry发布帖子,必须先开启Drupal的blogapi模块,在开启这个模块之后,进入 管理->设置->blogapi,你就可以看到相关的选项,首先是选择使用哪种XML-RPC引擎,通常可以选用Movable Type;然后选择"Blog Type",如果只想用Zoundry发布blog,那么直接选"blog entry"就行了,如果还想用Zoundry发布别的内容,可以选择相应的类型,譬如论坛主题(Forum Topic)。在设置好Drupal的blogapi后,打开Zoundry,新建帐户,输入用户名密码,以及XML-RPC引擎的地址,通常是 http://www.yoursite.com/xmlrpc.php 就可以了,Zoundry会自动侦测可用的Node Type的。在我的测试网站,我就用Zoundry发布了一篇论坛里帖子。Zoundry可以很好的支持Drupal的分类系统,只需要在 Categories 栏里选择你要发布的论坛就可以了(呵呵,这就体现了Drupal论坛的好处,使用同样的分类词系统)。这也是Zoundry优于Performancing的地方,因为Performancing不支持blog以外的node type。

用Zoundry上传图片就更简单了,不用设置ftp的,直接使用"Use blog's upload feature (via xml-rpc)"这个选项就可以了。插入图片的时候图片会自动的生成缩略图,非常方便,这里是我发布的一个范例

呵呵,用Zoundry写blog非常方便,我现在基本上所有的blog都是用Zoundry写的(包括这篇)。但是它也有两个缺点,一是不支持freetagging,如果同时启用freetagging和分类,两者会混在一起;二是不支持Drupal的时区设置,我发布blog的时候必须把时间提前5个小时,不然时间是不对。希望在以后的版本里可以有所改进。总的来说还是很推荐Zoundry的:)

Technorati : , , ,

Blog分类: 

Druapl 4.7 使用手记(1):全新的 .install 文件

前天晚上把我的blog从 Drupal 4.6.5 升级到了 Drupal 4.7-beta6。总的过程还是很顺利的,升级的过程中也没有遇到"Illegal Mixing"的那个错误,看来 beta6 已经把它给修正了。因为自 Drupal 4.7 开始,数据库的编码都改为了UTF-8,但是升级程序只升级了核心的数据库文件的编码而并未升级一些模块使用的数据库文件(譬如:flexinode),所以这里就要用到 .install 文件了。

一般提供 4.7 版本的模块都应该在自己的文件夹里自带一个 .install 文件。这个文件有两个功能,一个是帮助安装新模块,一个是帮助升级旧模块(含数据库编码)。Drupal 原来的模块安装模式比较麻烦,如果模块必须相应的数据表支持,还必须再单独安装一遍数据表,自Drupal 4.7起,需要安装的数据表以函数的形式写入 .install 文件,直接和模块一起上传即可,在你第一次启动这个模块的时候,数据表会自动导入你的数据库,省去的单独导入数据表的麻烦。另外,再从旧的模块升级的时候,如果需要修改以有的数据表或是添加新的数据表也可以写入.install 文件,但是这个以我的经验是需要运行 update.php 来完成升级的(主要是更改数据库编码)。如果一个模块没有自带升级数据的编码文件,自己写一个也不是很难,可以参看这里这里是我给Flexinode模块写的升级 .install 文件

呵呵,这个新的功能还蛮好用的:)

Blog分类: 

Drupal 可以做什么?

Drupal 就像一个块橡皮泥,可以做很多东西。目前经常可以看到的是把 Drupal 作为个人blog,但是drupal的用途远不止于此,所以想大致说说 drupal 的用途,以及作为 blog 的优势。

首先, drupal 可以作为一个内容管理工具,并且毫不逊色于老牌的CMS譬如Xoops,PHPNuke等,通过一个非常简单的界面,成员可以发布各种各样的内容,譬如 新闻、blog、投票、图片、论坛主题、以及下载等。并且这个系统的主题非常的灵活,可以随意的更改,以适合你的需要(参看这里)。同时Drupal还有方便的分类系统,支持很多 web 2.0 的特色譬如 tag,总体的以及各个分类的rss,trackback等等。另外 Drupal 还可以设定用户的角色,使得不同的用户拥有不同的访问权限,配合一些模块使用,可以很方便的作为以内容为主的商业网站,类似起点中文,或是幻剑书盟那样原创文学购买阅读网站,也可以通过e-commerce模块作为一个纯粹的网上购物网站,譬如GoodStorm。当然 drupal 也非常适合作一般的新闻网站,譬如 The Onion 就是用drupal搭建的。

其次,drupal 既可以作为个人blog,也可以作为集体blog。前者如我这里,后者如台湾部落格以及原来的postshow。其实我觉得drupal最大的潜质之一就是作为集体blog (community blog),兴趣相投的朋友们可以搭建一个共同的blog,一起写作,一起分享快乐,boing boing 和 slashdot 就是这么发展起来的。台湾总统府有一个宪改blog,也是用drupal搭建的,原来我以为是个恶作剧后来看了域名果然是 president.gov.tw ,呵呵,也说明了drupal的影响力吧。另外 Hi-PDA 也是一个用drupal搭建的集体blog的典范。依我看来,community blog完全可以替代 bbs,它比 bbs 功能更加强大。

再次,drupal 可以作为以讨论为主的社区网站。这可以看作是 集体blog的一个升级,志趣相投的人们不仅可以在blog上畅所欲言,还可以通过的drupal的来进行一些集体活动,譬如发布community新闻,组织一些活动,再一起聚餐等等。

最后,drupal 可以提供一个协作的平台。可以用来开发开源软件(drupa.org 就是一个很好的例子),也可以用来协作撰写书籍(利用book模块),还是编纂资料库(利用wiki模块)

总之,drupal提供了一个非常灵活的平台。而 drupal 作为一个个人blog,也有一些胜出其他blog软件譬如 wordpress 的地方,最大的特点就是drupal的可扩展性。在任何时候,你都可以方便的把你的blog升级为个人网站,或是集体blog,或者丰富网站的内容,使之不再简单的局限于日志,譬如用drupal,很容易就可以搭建一个个人的相册,自己有全部的权限;也可以很方便的利用GMAP模块,为自己添加一个有特色的旅行日志。所以从长远看,即便是作为个人网站,drupal 仍然不失为一种不错的选择。:)

补充:一些 drupal 应用的实例

除去上文提到的一些例子外,下面收集了一些 drupal,特别是中文 drupal 的应用实例:

  • Drupal搭建的个人blog,可以参看大米那里的列表;
  • 维道:一个是一个关注新闻的群组 blog;
  • 发掘网:发掘IT新闻,草根们的新闻;
  • 奇迹笔记一个关于自然科学的community blog;

呵呵,这个列表还不是很全,希望大家一起补充,把drupal的作用发挥到极致!:)

Free Tags: 
Blog分类: