template.php:覆写其它drupal主题函数

g089h515r806 的头像
Submitted by g089h515r806 on 星期六, 2008-09-13 02:13

如果你要覆写的主题函数不包含在基本列表中(block, box, comment, node, page),你需要将它告诉给PHPTemplate.

 

为了实现这一点,你需要在你主题目录下,创建一个template.php文件.这个文件以PHP开始标签<?php,但是这里不需要结束标签,推荐你不要使用结束标签.还有,在文件中,还需要包含用于主题覆写的存根(stubs),这些存根告诉引擎使用哪个模板文件,以及向其中传递哪些参数.

 

没有区块的drupal区域

g089h515r806 的头像
Submitted by g089h515r806 on 星期六, 2008-09-13 01:28

如果你想将内容指定到区域中,而又不通过区块来实现的话,你可以使用drupal_set_content()函数。这允许你绕过通常的区块机制,你可以尝试以下几点:

 

将内容设置到区域中

在你的模块代码中,将内容设置给区域。在这里,你可以使用themename_regions()数组中不存在的区域名。这样,这些区域对于区块来说就不可用,因此里面也就不会放置区块内容了。假定你的区域叫做'region1' 和'region2'。在你的模块中,可以这样做:

Drupal版本:

如何将drupal区域指定到节点,评论中

g089h515r806 的头像
Submitted by g089h515r806 on 星期六, 2008-09-13 01:25

默认情况下,所有定义的区域都传递给page.tpl.php。但是只需要额外的几步,你也可以将特定的区域应用到其它的模板文件中:node.tpl.php,comment.tpl.php等等。下面是如何实现的。

在你定义区域的template.php文件中,定义一个_phptemplate_variables()函数(如果已经存在的话,就使用已有的)。在这里,你要做的就是将区域内容指定到一个特定的主题调用中。当调用_phptemplate_variables()时,将会向$hook变量传递一个主题参数,比如'node'。所以,使用下面的代码,我们可以将区域指定到节点模板文件中:

Drupal版本:

drupal PHPTemplate中的区域

g089h515r806 的头像
Submitted by g089h515r806 on 星期六, 2008-09-13 01:18

从Drupal 4.7开始,主题可以实现任意数量的区域,用于区块或者其它内容的显示。你可以到Drupal的区块管理页面(admin/build/block)看一下,你将看到,实际上区域本质上就是一个容器,你可以向里面添加区块。你也可以使用PHP向区域中添加非区块内容。什么是区域呢,一个比较好的例子就是边栏。

这些区域可以用于整个页面,或者其它的主题元素中,比如接电或者评论。

 

Drupal版本:

如何让drupal网站的造价降下来

drupal主要是面对国外客户的,但是随着国内需求的增多,有不少国内的客户,包括公司和个人,他们也想使用drupal来建立自己的网站,这种增多的趋势在明显的加快。

       但是就目前的状况来讲,在中国使用drupal建站,并不具有太多的优势:

1,  首先是drupal从业人员较少,而且集中于比较大的城市,面对的客户也是海外的。从业环境也大多数处于外包公司中。

2,  drupal建站的价格比较高,由于客户主要是国外的,所以价格是由国外的客户决定的,在国内,具有经验的drupal开发人员,即便是私活,报价很多也都在400元以上。

Drupal版本:

基于URL别名使用不同的drupal页面模板

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2008-09-11 08:54

可以在你的template.php文件中修改一个模板的“模板建议”("template suggestions")列表。下面的代码片断,将根据当前页面的URL别名来添加页面模板建议。这样你就可以为'music'路径或者目录下面的页面定义一个page-music.tpl.php模板文件了。

Drupal 5版本:

Drupal版本:

基于节点类型使用不同的drupal页面模板

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2008-09-11 08:39

可以在你的template.php文件中修改一个模板的“模板建议”("template suggestions")列表。下面的代码片断,将根据当前页面的节点类型来添加页面模板建议。这样,你就可以为节点类型为新闻(news)的页面定义一个模板page-nodetype-news.tpl.php。

 

Drupal版本:

基于URL别名使用不同的drupal节点模板

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2008-09-11 08:24

Drupal 5包含了一个非常有用的机制,可以为不同的页面、区块、节点等提供不同的模板。例如,你可以为'blog'节点类型添加一个模板node-blog.tpl.php,从而取代默认的node.tpl.php模板。对于页面模板,就更加方便了,所以你可以为特定节点创建特定的模板,可参看基于当前路径适用不同的页面模板一文。

 

通过_phptemplate_variables()函数,还可以编辑可能的"template suggestions"(模板建议)列表。例如,下面的代码片断就基于URL别名创建了额外的“suggestions”(建议)。这比使用内部Drupal路径的方法更强大。

Drupal版本:

页面

Subscribe to Think in Drupal RSS