欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Drupal 7与Drupal 6比较之主题变化

shiping1 的头像

来自 http://www.discoverau.net/archives/category/%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0/page/25


Drupal 7与Drupal 6比较之主题变化

Dupal 7与Drupal 6在主题方面有很大的变化,Drupal 6主题好多朋友比较熟悉,对于Drupal 7新主题的变化,在此和大家一起分享和交流。列举如下:

一、在html.tpl.php的开始部分RDFa请求有些变化
1.Drupal7能够在html.tpl.php.输出RDFa请求有以下变量
2.老的lang属性应该被改成compatibility with XHTML 1.1,仅仅xml:lang应该保留。
3.RDF命名前缀通过HTML文档在html标签中序列化以及被包含在$rdf_namespaces变量中。
4.GRDDL资料应该在 标签内标明
6.x
language ?>" lang="language ?>" dir="dir ?>"> 
7.x
language ?>" dir="dir ?>" > ">

二、删除了Box.tpl.php模板文件
之 前的box.tpl.php 模板文件被删除。这部分内容现在有它们自己的函数。搜索结果列表选择仅仅用的是 heme('search_results') 主题化,代替之前附加在box里。来自Box的评论主题化用 theme_comment_form_box() 主题函数。

三、变量改成区域或更名
1.$help
drupal7中默认的区域(左,右,内容,头部,尾部)之外,加了一个新的帮助区域。相当于之前在drupal6下page.tpl.php 中的$help变量输出的内容。
2.$mission
被定义成'highlighted' 区域
3.$footer_message
尾部信息可以通过尾部区域来显示。在主题说明文件中输出regions[footer] = Footer
4.$closure
变 成 $page_bottom, 新的 $page_top 和隐藏区域。Drupal6中提供一个特殊的变量$closure,应该放在HTML页面 BODY标签底部和可以用过theme_footer()(在模块中用hook_footer()钩子来实现)被主题化。为了在不同的页面区域统一成一种 方式,drupal7在区域中标准化并且在 page_bottom区域中放置$closure特别变量。同样page_top也是以 page_bottom相对应添加。在drupal7里你需要在HTML页面BODY标签顶部输出$page_top,在底部输 出$page_bottom。
Drupal 6:
...
">
...




Drupal 7:

...
">
...

Drupal 7 布局主题文件组织概览

(阅读提示:本文是对“Drupal布局主题文件结构”原文档的中文翻译,便于中文用户学习,为了您更好的了解Drupal 7 布局主题[Theme] 相关内容,建议您查看Drupal官方文档)

主题是一系列定义表示层的文件。你还可以建一个或多个子主题(sub-themes)来改变一个主题,只有.info文件是必须的,但很多主题和子主题都会使用一些其它的文件。下图表示了在一个典型主题和子主题的文件结构:
theming requirements

.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的开始标记 "

子主题

表面上,子主题同其它主题的行为是一样的。唯一区别是它继承了父主题的资源。要创建一个,则在.info文件中需要有一个“基主题”入口。在这里,它可以 从父主题继承资源。还可以有多层的继承;例如,子主题可以声明其它的子主题作为它的基主题。对此没有固定的限制。

Drupal 5 以前的版本需要子主题目录在父主题目录中,现在不需要了。

其它s
  • 要让主题能运行,图标和截图不是绝对需要,但建议有,特别是当你将主题贡献到Drupal库中时。截图会显示在内部的主题管理页面,以及如果有相应权限的话用户账号设置中可以选择主题。更多信息请参见 截图指南
  • 为支持管理UI设置或在图标,搜索,使命等等上面的 "特性" ,可以使用 "theme-settings.php" 文件。这是一个高级特性,更多的信息参见手册中的 高级设置
  • 对于 颜色模块支持,需要一个有 "color.inc" 文件及相关文件的目录 "color"来支持。
  • 如果你想使用核心主题来做的话,使用 子主题 或者拷贝一份重命名一下。 强烈不建议直接修改Garland 或 Minnelli。因为它们要用来安装和更新过程。
  • 所有非核心的或者对核心进行修改的主题应该安装在 "sites/all/themes" 目录下以同核心文件分开。如果你用一套Drupal代码计划运行多个站点,你可以将主题分别放在特定的站点目录下,参见 多站点安装.

 

来自 http://www.discoverau.net/archives/category/%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0/page/25

 

普通分类: