|
以前不怎么关心Theme的.info文件,因为多半是改现有的Theme。今天有这样一个需求:我需要创建一个区块,里面是一些描述性的文字,显示在一个Views列表的标题下方。 0 ]5 i, g6 q' z: R3 D
实现的方法肯定是创建一个区块,然后将其放置在标题下方、列表上方最好了。不过我创建了区块,放置在content区域中后,发现了问题:它会显示在列表下面,而不是上面。而且无法更改。 即然这样,可能需要更改主题了。在列表的上方增加一个区域,然后将列表的标题隐藏,显示新创建的区块标题。这样就实现了需求。因此首先需要在Drupal 6的主题中注册一个新的区块,放在content区域的上方。
* r7 z/ c; M r, Y
我查了Drupal 的 Theme帮助文档,发现了一些我以前忽略的问题。现摘录如下: - 每一个区块都对应一个.tpl.php文件,可以用于修改模板
- 增加一个区域,需要在.info里注册。但像Garland这样使用默认区域的主题,是没有在.info里声名区域的。如果你想增加一个,需要把这些默认的也重新在.info里声明一遍。
- 在.info里定义的区域的定义顺序,会影响在Block配置时,区块的显示顺序。
- Page的内容,均在$content变量中输出。当一个主题注册了content这个区域后。然后被按排在content区域显示的区块,都会追加到content内容后面。
- .info文件中的内容是会被缓存到数据库中的,所以只修改文件不会马上影响主题,需要清空缓存(不过这个和theme registry是不同的概念,不要混淆)。在Drupal中有三种方法可以重建.info:
+ [; m3 R& E, t7 |4 F1. Administer > Site configuration > Performance中的clear all cached data
! \5 a. V2 `" n! x+ ]' B* v2. 使用Devel模块的Empty cache
o, _3 R1 g4 S$ p/ b3. 访问Administer > Site Building > Themes(即浏览全部可用主题模板)即可
, } | ]* ^; O5 q3 Y' ]* |
N K6 B, t+ K+ g摘自:方医生798,谢谢!
% g$ l5 o& t, |' g0 Q6 j/ o Z6 p q0 x% o
& G9 ?* C$ u2 M$ t
3 _3 q, J3 w2 d, _8 F6 z# Y. u$ u; S8 }$ u9 u! v
) `1 b) z4 p$ O1 }- u9 e6 L |