以前不怎么关心Theme的.info文件,因为多半是改现有的Theme。今天有这样一个需求:我需要创建一个区块,里面是一些描述性的文字,显示在一个Views列表的标题下方。
$ N$ q( y7 G! k, ^0 b
实现的方法肯定是创建一个区块,然后将其放置在标题下方、列表上方最好了。不过我创建了区块,放置在content区域中后,发现了问题:它会显示在列表下面,而不是上面。而且无法更改。 即然这样,可能需要更改主题了。在列表的上方增加一个区域,然后将列表的标题隐藏,显示新创建的区块标题。这样就实现了需求。因此首先需要在Drupal 6的主题中注册一个新的区块,放在content区域的上方。
3 J W7 b1 O0 ^( i6 O* s
我查了Drupal 的 Theme帮助文档,发现了一些我以前忽略的问题。现摘录如下: - 每一个区块都对应一个.tpl.php文件,可以用于修改模板
- 增加一个区域,需要在.info里注册。但像Garland这样使用默认区域的主题,是没有在.info里声名区域的。如果你想增加一个,需要把这些默认的也重新在.info里声明一遍。
- 在.info里定义的区域的定义顺序,会影响在Block配置时,区块的显示顺序。
- Page的内容,均在$content变量中输出。当一个主题注册了content这个区域后。然后被按排在content区域显示的区块,都会追加到content内容后面。
- .info文件中的内容是会被缓存到数据库中的,所以只修改文件不会马上影响主题,需要清空缓存(不过这个和theme registry是不同的概念,不要混淆)。在Drupal中有三种方法可以重建.info:3 S* m9 N- [2 c9 p
1. Administer > Site configuration > Performance中的clear all cached data
, ^. N! p8 M9 A& w2 y: d" p0 d: l2. 使用Devel模块的Empty cache
7 u6 t' r' _) Y* }% O3. 访问Administer > Site Building > Themes(即浏览全部可用主题模板)即可
9 j- z* q! O4 S# d% r
1 G0 |% @" w+ K! v Y摘自:方医生798,谢谢!) {. W% k) g! l1 I% _
' q( R" \/ [9 d
; m; G( N) m* V. d
: T. D% T! a* R; I$ U) R/ A0 R( a9 w% ~& _
& s9 |$ c- }: b/ g$ a4 K |