以前不怎么关心Theme的.info文件,因为多半是改现有的Theme。今天有这样一个需求:我需要创建一个区块,里面是一些描述性的文字,显示在一个Views列表的标题下方。 0 H) N% |$ ~8 _, g
实现的方法肯定是创建一个区块,然后将其放置在标题下方、列表上方最好了。不过我创建了区块,放置在content区域中后,发现了问题:它会显示在列表下面,而不是上面。而且无法更改。 即然这样,可能需要更改主题了。在列表的上方增加一个区域,然后将列表的标题隐藏,显示新创建的区块标题。这样就实现了需求。因此首先需要在Drupal 6的主题中注册一个新的区块,放在content区域的上方。 5 x: R: U2 P( m, x; b
我查了Drupal 的 Theme帮助文档,发现了一些我以前忽略的问题。现摘录如下: - 每一个区块都对应一个.tpl.php文件,可以用于修改模板
- 增加一个区域,需要在.info里注册。但像Garland这样使用默认区域的主题,是没有在.info里声名区域的。如果你想增加一个,需要把这些默认的也重新在.info里声明一遍。
- 在.info里定义的区域的定义顺序,会影响在Block配置时,区块的显示顺序。
- Page的内容,均在$content变量中输出。当一个主题注册了content这个区域后。然后被按排在content区域显示的区块,都会追加到content内容后面。
- .info文件中的内容是会被缓存到数据库中的,所以只修改文件不会马上影响主题,需要清空缓存(不过这个和theme registry是不同的概念,不要混淆)。在Drupal中有三种方法可以重建.info:3 J( b( ^3 |% O$ ^; z3 \
1. Administer > Site configuration > Performance中的clear all cached data
$ k$ i1 M) h4 v! y$ L9 G% ?2. 使用Devel模块的Empty cache5 ~5 S* V0 N( a
3. 访问Administer > Site Building > Themes(即浏览全部可用主题模板)即可
. S2 i! _) ^9 z- E& W8 F' B - B( ~7 {- E2 n8 [0 `
摘自:方医生798,谢谢!9 A! I3 ]. k, i) _7 @, P9 D5 |1 n
; V0 l" ]- _' S8 K6 U
9 Z; g# H( |% U% j) v' U- i0 x7 }
) U* W+ J( V' h6 z i' o4 J# C4 |! Q4 ]! w
4 g9 q" P4 }5 ?2 e7 s
|