drupal7 与Drupal6 在主题方面有很大的变化

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

一、在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资料应该在<head> 标签内标明

6.x

?

123

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$language</span><span style="color: rgb(0, 119, 0);">-></span><span style="color: rgb(0, 0, 187);">language <br>?></span></span></code></div>" lang="<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$language</span><span style="color: rgb(0, 119, 0);">-></span><span style="color: rgb(0, 0, 187);">language <br>?></span></span></code></div>" dir="<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$language</span><span style="color: rgb(0, 119, 0);">-></span><span style="color: rgb(0, 0, 187);">dir <br>?></span></span></code></div>"><head>

7.x

?

123

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$language</span><span style="color: rgb(0, 119, 0);">-></span><span style="color: rgb(0, 0, 187);">language <br>?></span></span></code></div>" dir="<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$language</span><span style="color: rgb(0, 119, 0);">-></span><span style="color: rgb(0, 0, 187);">dir <br>?></span></span></code></div>" <div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$rdf_namespaces <br>?></span></span></code></div>> <head profile="<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$grddl_profile <br>?></span></span></code></div>">

二、删除了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。

Drupal6 :

?

123456

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">...<body class="<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$body_classes</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div>">...<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$closure</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div></body></html>

Drupal7 :

?

1234567

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">...<body class="<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$classes</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div>"><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$page_top</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div>...<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$page_bottom</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div></body></html>

如果你定制区域,需要记住非常重要的一点就是在你的区域设定中包括page_top 和page_bottom 区域

?

12345

theme .info file extract:regions[content] = Contentregions[help] = Helpregions[page_top] = Page topregions[page_bottom] = Page bottom

5.$left 和 $right 改成$sidebar_first 和$sidebar_second

6.x

?

123456789101112

<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (!empty(</span><span style="color: rgb(0, 0, 187);">$left</span><span style="color: rgb(0, 119, 0);">)):<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div id="sidebar-left" class="column sidebar"><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$left</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div></div><!-- /sidebar-left --><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">endif; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div> ...<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (!empty(</span><span style="color: rgb(0, 0, 187);">$right</span><span style="color: rgb(0, 119, 0);">)):<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div id="sidebar-right" class="column sidebar"><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$right</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div></div><!-- /sidebar-right --><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">endif; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div>

7.x

?

123456789101112

<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (</span><span style="color: rgb(0, 0, 187);">$sidebar_first</span><span style="color: rgb(0, 119, 0);">):<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div id="sidebar-first" class="column sidebar"><div class="section region"><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$sidebar_first</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div></div></div><!-- /.section, /#sidebar-first --><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">endif; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (</span><span style="color: rgb(0, 0, 187);">$sidebar_second</span><span style="color: rgb(0, 119, 0);">):<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div id="sidebar-second" class="column sidebar"><div class="section region"><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$sidebar_second</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div></div></div><!-- /.section, /#sidebar-second --><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">endif; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div>

6.$picture 变成 $user_picture, 以及CSS名称'picture' 改成 'user-picture'

Drupal6 (user-picture.tpl.php):

?

1

<div class="picture"> <div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$picture</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div></div>

Drupal7 :

?

1

<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (</span><span style="color: rgb(0, 0, 187);">$user_picture</span><span style="color: rgb(0, 119, 0);">):<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div> <div class="user-picture"> <div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$user_picture</span><span style="color: rgb(0, 119, 0);">; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div> </div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">endif; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div>

7.$primary_links改成$main_menu,$secondary_links改成$secondary_menu

6.x: page.tpl.php

?

1

<div id="menu"> <div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (isset(</span><span style="color: rgb(0, 0, 187);">$secondary_links</span><span style="color: rgb(0, 119, 0);">)) {<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">theme</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">'links'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(0, 0, 187);">$secondary_links</span><span style="color: rgb(0, 119, 0);">, array(</span><span style="color: rgb(221, 0, 0);">'class'</span><span style="color: rgb(0, 119, 0);">=></span><span style="color: rgb(221, 0, 0);">'links'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(221, 0, 0);">'id'</span><span style="color: rgb(0, 119, 0);">=></span><span style="color: rgb(221, 0, 0);">'subnavlist'</span><span style="color: rgb(0, 119, 0);">)); <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">} <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div> <div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (isset(</span><span style="color: rgb(0, 0, 187);">$primary_links</span><span style="color: rgb(0, 119, 0);">)) {<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">theme</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">'links'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(0, 0, 187);">$primary_links</span><span style="color: rgb(0, 119, 0);">, array(</span><span style="color: rgb(221, 0, 0);">'class'</span><span style="color: rgb(0, 119, 0);">=></span><span style="color: rgb(221, 0, 0);">'links'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(221, 0, 0);">'id'</span><span style="color: rgb(0, 119, 0);">=></span><span style="color: rgb(221, 0, 0);">'navlist'</span><span style="color: rgb(0, 119, 0);">))<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">} <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div> </div>

7.x: page.tpl.php

?

1

<div id="menu"> <div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (isset(</span><span style="color: rgb(0, 0, 187);">$secondary_menu</span><span style="color: rgb(0, 119, 0);">)) {<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">theme</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">'links'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(0, 0, 187);">$secondary_menu</span><span style="color: rgb(0, 119, 0);">, array(</span><span style="color: rgb(221, 0, 0);">'class'</span><span style="color: rgb(0, 119, 0);">=></span><span style="color: rgb(221, 0, 0);">'links'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(221, 0, 0);">'id'</span><span style="color: rgb(0, 119, 0);">=></span><span style="color: rgb(221, 0, 0);">'subnavlist'</span><span style="color: rgb(0, 119, 0);">)); <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">} <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div> <div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (isset(</span><span style="color: rgb(0, 0, 187);">$main_menu</span><span style="color: rgb(0, 119, 0);">)) {<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">theme</span><span style="color: rgb(0, 119, 0);">(</span><span style="color: rgb(221, 0, 0);">'links'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(0, 0, 187);">$main_menu</span><span style="color: rgb(0, 119, 0);">, array(</span><span style="color: rgb(221, 0, 0);">'class'</span><span style="color: rgb(0, 119, 0);">=></span><span style="color: rgb(221, 0, 0);">'links'</span><span style="color: rgb(0, 119, 0);">,</span><span style="color: rgb(221, 0, 0);">'id'</span><span style="color: rgb(0, 119, 0);">=></span><span style="color: rgb(221, 0, 0);">'navlist'</span><span style="color: rgb(0, 119, 0);">))<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">} <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div> </div>

8.$taxonomy改成$terms

6.x

?

1

<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (</span><span style="color: rgb(0, 0, 187);">$taxonomy</span><span style="color: rgb(0, 119, 0);">):<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div> <div class="terms"><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$terms <br>?></span></span></code></div></div> <div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">endif; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div>

7.x

?

1

<div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">if (</span><span style="color: rgb(0, 0, 187);">$terms</span><span style="color: rgb(0, 119, 0);">):<br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div> <div class="terms"><div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">print </span><span style="color: rgb(0, 0, 187);">$terms <br>?></span></span></code></div></div> <div class="codeblock"><code><span style="color: rgb(0, 0, 0);"><span style="color: rgb(0, 0, 187);"><?php<br> </span><span style="color: rgb(0, 119, 0);">endif; <br></span><span style="color: rgb(0, 0, 187);">?></span></span></code></div>

8.在block.tpl.php中重命名$block->content 为$content。

四、CSS选择器名字改变

1. 区块的ID选择符

许多在Drupal7 核心代码中把区块的CSS ID选择符定义成更加可以明确表达区块意思的名称。

用户登录区块

老的CSS ID (Drupal6 ): block-user-0

新的 CSS ID (Drupal7 ): block-user-login

2. clear-block类选择标签被定义成 clearfix。

在Drupal6 中<div class="clear-block"> 改成<div class="clearfix">就可以了。

6本文由惠集网http://www.huiji123.com 收集整理

taxonomy: