以前不怎么关心Theme的.info文件,因为多半是改现有的Theme。今天有这样一个需求:我需要创建一个区块,里面是一些描述性的文字,显示在一个Views列表的标题下方。 4 _7 b2 X' Q* ]% S) t: y" G
实现的方法肯定是创建一个区块,然后将其放置在标题下方、列表上方最好了。不过我创建了区块,放置在content区域中后,发现了问题:它会显示在列表下面,而不是上面。而且无法更改。 即然这样,可能需要更改主题了。在列表的上方增加一个区域,然后将列表的标题隐藏,显示新创建的区块标题。这样就实现了需求。因此首先需要在Drupal 6的主题中注册一个新的区块,放在content区域的上方。
" y+ H* H4 G' f
我查了Drupal 的 Theme帮助文档,发现了一些我以前忽略的问题。现摘录如下: - 每一个区块都对应一个.tpl.php文件,可以用于修改模板
- 增加一个区域,需要在.info里注册。但像Garland这样使用默认区域的主题,是没有在.info里声名区域的。如果你想增加一个,需要把这些默认的也重新在.info里声明一遍。
- 在.info里定义的区域的定义顺序,会影响在Block配置时,区块的显示顺序。
- Page的内容,均在$content变量中输出。当一个主题注册了content这个区域后。然后被按排在content区域显示的区块,都会追加到content内容后面。
- .info文件中的内容是会被缓存到数据库中的,所以只修改文件不会马上影响主题,需要清空缓存(不过这个和theme registry是不同的概念,不要混淆)。在Drupal中有三种方法可以重建.info:
% w/ e" r" o, M1. Administer > Site configuration > Performance中的clear all cached data
+ \% H; V7 p* ?! z N9 S0 ~, }2. 使用Devel模块的Empty cache
$ n: Z8 @2 s% h& F K1 g3. 访问Administer > Site Building > Themes(即浏览全部可用主题模板)即可
# n: f- S" A; A/ l0 F
2 h% `& A0 u$ W: i摘自:方医生798,谢谢!
B) [% S# x0 q) r( t# U/ u+ r9 l) h' m
" s! r* R' y% c5 r% e2 `4 S: A) Q1 F1 U W! i% V* r8 U; `
3 I1 u' F& j6 Z" l7 [
7 e& T' V) i! [) D
|