使用drupal主题覆写函数

g089h515r806 的头像
Submitted by g089h515r806 on 星期三, 2008-09-17 02:43

很多Drupal资料都讲解了,如何通过覆写主题函数,来真正的完成定义,从而得到你想要的外观.由于你需要创建一个函数,所以它需要一点PHP知识,尽管如此,这样做还是非常强大的.这里有许多代码片断和例子可供选择,许多情况下你只需要拷贝粘贴并做些细小的改动就可以了.

 

使用哪个文件

实例:修改drupal Garland主题(1)

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2008-09-16 14:03

好了,让我们做个试验。请确定你已经将新主题设为了drupal默认主题了。

 

这里要做的就是为了,让读者更好的浏览你的站点。一个关键的建议就是让你的边栏元素和主内容区域区别开来。好的,让我们试着做一下:我们把我们所有的区块都使用Garland的 "header top"颜色作为背景色。记住,它的参考颜色为"#2385c2"。

.block {
  background-color: #2385c2;
}

Drupal版本:

使得drupal主题可被定制

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2008-09-15 09:22

在Drupal的管理界面中,每个drupal主题都有自己的设置页面admin/build/themes/settings/themeName,在这里你可以配置标准设置比如“Logo image settings” 和“Shortcut icon settings”.

 

你可以使用本节所讲的方法,来为该页面表单添加额外的设置,从而完成对drupal主题的定制.

To add color.module support, see the Integrating with Color.module section.

Drupal版本:

将Drupal4.7.x主题升级到5.x

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2008-09-15 09:06

相关的Drupal 5.0 API 变化
下面列出的是Drupal 5.0中与主题有关的API接口变化,如果你的主题中用到了下面的函数,都要进行相应的更新才能在5.0下正常工作:

$primary_links 与 $secondary_links 变量现在返回了结构化的链接
新增 drupal_add_css() 函数,用来添加CSS文件
新的 $feed_icon, 显示聚合图标
新的clearing类
theme_links() 改为返回链接列表
新增 drupal_add_js() 函数,用来添加javascript脚本
_phptemplate_callback 函数签名改变了
id='pager' 现在为 class='pager'
theme_form_element 的参数修改了。
详情请参看:http://drupalchina.org/node/1679

Drupal版本:

将drupal 5.x主题升级到6.x(2)

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2008-09-15 08:41

$body_classes变量

在page.tpl.php中,可通过下面的方式得到布局的状态:

在Drupal5.x中,<?php print $layout; ?>将根据当前所用的边栏输出左栏(left),右栏(right),或者全部(both)。

在Drupal6.x中,还可以使用$body_classes。<?php print $body_classes; ?>将会输出类似下面的东西:

front logged-in node-type-page no-sidebars

Drupal版本:

将drupal 5.x主题升级到6.x(1)

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2008-09-15 05:43

模板管理

现在,可以将模板文件放到主题下面的子目录中,这样管理起来就更方便了。PHPTemplate引擎将查找主题目录下的所有文件,并将它们的位置登记器来。对于文件夹的嵌套深度则没有限制。

 

新的模板文件(.tpl.php)

在drupal5.x中,phptemplate.engine实现了下面的模板(在drupal题引擎文件夹下):

Drupal版本:

页面

Subscribe to Think in Drupal RSS