[Drupal模板制作手册-3]子主题,结构与继承
子主题(sub-theme)和其他主题基本一样,只有一个区别:它们可以继承父主题(parent-theme)的资源(如CSS和JavaScript文档、icon图标等)。在父主题给子主题的资源传递链上,没有传递层级的限制。一个主题可以是另一个子主题的子主题,并且可以分支出N个它自己的子主题,没有个数和层级的限制。

想象一下从设计一个基本主题(base theme)作为模型开始, 然后添加一些子主题,在子主题上完善你的网页样式。再然后,依据这同一个模型,试试分支出一些其他样式的子主题。需要同时建立多个站点,但是需要有共性的外观感觉? 有了子主题功能,一系列设计资源都可以共享. 特定站点外观可以组织到特定的子主题中,但是一旦需要改变某个共同特性,只需要编辑一次共有资源中的某项,即可应用到所有主题。只要规划得当,此功能可以给你带来无限可能。
要声明一个父主题,或成为“基本主题”,将下列语句添加到子主题的.info文件中,“themeName”替换为您的父主题的内部名字。
base theme = themeName
下列资源会被继承:
- 父主题中定义的所有样式表,但是这也是可以通过某些选项来控制的。
- 父主题中定义的所有JavaScripts。
- 所有的模板文件(.tpl.php)。
- 文件”template.php”中定义的所有内容。包括主题函数重写, 预处理器和其他所有东西。所有子主题把它自己的template.php文件和父主题的该文件包含在一起。
- 父主题的截图,只要.info文件使用了和他的父主题一样的设置。
下列资源不会被继承:
- 为父主题制定的logo.png文件。不包括用户上传的logo,因为他们总是会被使用。
- .info文件定义的某些设置。 This includes regions. If you are not using the default regions, then make sure your “page.tpl.php” file for the sub-theme matches what is set for regions in the .info file. Each base and sub-theme can have their own region settings.
- Anything set within the “theme-settings.php” file for the 主题高级设置.
- Anything set within the “color” directory for color模块支持.
Note that sub-themes can be placed outside of the base theme’s directory or within it. Before version 6, they had to be in the sub-directory of the parent theme.
© 笨活儿 允许转载,但请以链接形式保留出处。也欢迎您使用RSS订阅本博客。
十月 22, 2009 9:50 下午
非常感谢!!!好文!!!