Drupal7 主题模板概述
这篇文章时我转载的,相对来说对Drupal 7 的模板概述比较全面,对新手来说会很有帮助的。
原文地址:http://justcoding.iteye.com/blog/1473359
Drupal是一个开源的内容管理系统(CMS) 平台,它是用PHP写成的。主要用于构造提供多种功能和服务的动态网站,这些功能包括用户管理(UserAdministration)、发布工作流 (Publishing Workflow)、讨论、新闻聚合(NewsAggregation)、元数据(Metadata)操作和用于内容共享的XML发布。Drupal有一个优秀的模块化结构,提供了许多模块,包括短消息、个性化书签、网站管理、Blog、日记、电子商务、电子出版、留言簿、Job、网上电影院、论坛、投票 等模块。并且Drupal模块的下载、安装、定制非常方便。
一、Drupal主题模板的构造
Drupal主题模板是一些定义描述层的文件组合,你也可以创造子主题(sub-theme),只有.info文件是必须的,当然大多数主题和子主题同样需要其他文件。
.info
.info文件的文件格式类似于INI文件,它是用来配置主题的静态文本文件,每一行都有一个关键词和一个相对的值,中间用“等号”相连(范例:key = value),分号用来注释一行字符。有些关键词使用数组的形式来表现一组关联的值。
.info包含以下关键词:
- name 必须
- description 推荐
- screenshot
- version 不推荐
- core 必须
- engine 多数情况下并须
- base theme
- regions
- features
- stylesheets
- scripts
- php
范例(通常不会这么完整):
二、核心模板 Core Template
默认模板:
These are the default template (.tpl.php) files provided by core in Drupal 7. Documentation on the variables and purpose of these templates are located inside the templates. There is a default set of variables available to all templates.
In order to override these templates, all you need to do is copy them into your theme folder and clear the theme registry.
To override templates in a more targeted way, see the section on Template Suggestions.
聚合 Aggregator“modules/aggregator/…”
- aggregator-feed-source.tpl.php
- aggregator-item.tpl.php
- aggregator-summary-item.tpl.php
- aggregator-summary-items.tpl.php
- aggregator-wrapper.tpl.php
区块 Block“modules/block/…”
注意: Drupal 6 版本的 block.tpl.php 属于 “modules/system/…” 一部分.
大纲 Book“modules/book/…”
- book-all-books-block.tpl.php
- book-export-html.tpl.php
- book-navigation.tpl.php
- book-node-export-html.tpl.php
评论 Comment“modules/comment/…”
- comment-wrapper.tpl.php 评论框架
- comment.tpl.php 评论内容
注意: comment-folded.tpl.php在 Drupal 7 中已被弃用.
Field“modules/field/theme/…”
注意: field.tpl.php 是Drupal 7 的新模板.
论坛 Forum“modules/forum/…”
- forum-icon.tpl.php
- forum-list.tpl.php
- forum-submitted.tpl.php
- forum-topic-list.tpl.php
- forums.tpl.php
注意: forum-topic-navigation.tpl.php 在 Drupal 7 中已被弃用.
节点 Node“modules/node/…”
在网页的顶层显示Drupal的管理界面 Overlay“modules/overlay/…”
注意: overlay.tpl.php 是Drupal 7 的新模板.
投票 Poll“modules/poll/…”
- poll-bar–block.tpl.php
- poll-bar.tpl.php
- poll-results–block.tpl.php
- poll-results.tpl.php
- poll-vote.tpl.php
注意: 表单模板 poll-results-block.tpl.php 和 poll-bar-block.tpl.php 在 Drupal 7中被改名添加双破折号.
档案 Profile“modules/profile/…”
搜索 Search“modules/search/…”
注意: search-theme-form.tpl.php 在 Drupal 7 中已被弃用.
系统 System“modules/system/…”
- page.tpl.php 页面模版
- maintenance-page.tpl.php
- region.tpl.php 区域模版
- html.tpl.php 主体模版
注意: box.tpl.php 在 Drupal 7 中已被弃用. html.tpl.php 和 region.tpl.php 被添加.
分类法 Taxonomy“modules/taxonomy/…”
注意: taxonomy-term.tpl.php 是Drupal 7 的新模板.
工具栏 Toolbar“modules/toolbar/…”
注意: toolbar.tpl.php 是Drupal 7 的新模板.
用户 User“modules/user/…”
注意:如果想重写这些模板,就将tpl.php文件复制到模板目录修改即可。我最开始重写html.tpl.php文件,不论怎么改,怎么刷新都没有反应,后来找到了清理Drupal缓存的方法:db_query("DELETE FROM {cache};");,将这段代码复制到模板目录的template.php中即可,运行后就可以看到效果了,使用后记得删除它。
来源:http://project.qqworld.org/archives/823
主题是一系列定义表示层的文件。你还可以建一个或多个子主题(sub-themes)来改变一个主题,只有.info文件是必须的,但很多主题和子主题都会使用一些其它的文件。下图表示了在一个典型主题和子主题的文件结构:
.info (required)
Drupal所必须靠.info文件才能看到你的主题。原数据,样式表,JavaScripts,区块区域和其它内容可以在这里定义。但其它内容全部是可选的。
主题的内部名字也是继承于这个名字,例如,如果它的名字命名为 "eureka.info",则Drupal会将该主题的名字作为“eureka”看待,(注:以前的版本可能以文件夹的名称作为主题名称)
模板文件 (.tpl.php)
这些模板用作为 xHTML 标记和 PHP 变量。在某些情况下,它们还输出其他类型的数据,例如xml rss。每一个 .tpl.php 文件处理特定的可主题化数据的输出,而有些时候,它能通过“ 这些建议处理多个multiple .tpl.php 文件。它们是可选的,如果在你的主题中没有这些文件,则会回退到缺省的输出。在这些文件中尽量控制住复杂的逻辑。在很多情况下,应该是简单的xHTML 标记和PHP变量。在核心和贡献模块中有许多的这些模板文件。把它们拷到你的主题目录中会使Drupal读取你的这个版本。
注: The 主题注册有关于存在的主题数据的缓存信息。当你添加 移除或相关主题文件或功能函数时,你需要重置它。
template.php
对所有的条件逻辑和输出数据的处理过程,有template.php 文件。它不是必须的,但是保持.tpl.php文件整洁,常习惯于让 预处理器在产生变量前同.tpl.php文件中的标记合并。 自定义函数 重裁主题函数或者其它自定义的原始输出都可以在这里完成。这个文件必须使用PHP的开始标记 "<?php"打头。而结束标记并不需要,并且也建议你略过它。
表面上,子主题同其它主题的行为是一样的。唯一区别是它继承了父主题的资源。要创建一个,则在.info文件中需要有一个“基主题”入口。在这里,它可以从父主题继承资源。还可以有多层的继承;例如,子主题可以声明其它的子主题作为它的基主题。对此没有固定的限制。
Drupal 5 以前的版本需要子主题目录在父主题目录中,现在不需要了。
其它s
- 要让主题能运行,图标和截图不是绝对需要,但建议有,特别是当你将主题贡献到Drupal库中时。截图会显示在内部的主题管理页面,以及如果有相应权限的话用户账号设置中可以选择主题。更多信息请参见 截图指南
- 为支持管理UI设置或在图标,搜索,使命等等上面的 "特性" ,可以使用 "theme-settings.php" 文件。这是一个高级特性,更多的信息参见手册中的 高级设置
- 对于 颜色模块支持,需要一个有 "color.inc" 文件及相关文件的目录 "color"来支持。