Drupal6 主题开发指南(之三)

上图红色框标记的就是我添加的自定义的样式表(注:如果是在 linux 下 开发,可能会遇到文件权限问题,导致源代码也看不到输出,我的习惯首先将使用的文件夹设置成当前用户作为文件夹所有者,这样一般不会导致上述问题 出现,初次使用 linux 的朋友一般不会想到这个问题,不能写入的时候只是简单的 sudo 创建文件,就会遇到上述问题。),下面我们继续添加内容,后面的 内容就是用户可见的内容,首先看一下代码:
Bluehost-drupal-theme

我们可以看到有两个$site_name 的输出,是因为我为了实现一个文字白色阴影的效果,所以输出了两次,看一下输出效果:
Bluehost-drupal-theme

可以看到输出的内容了,下面继续添加:
Bluehost-drupal-theme

这次我们看到红线处的代码比较特殊,这个是 drupal 自带的输出格式,指定主菜单的显示格式,参数中 array('id'=>'site_menu')是指我们定义 菜单列表的 id 是 site_menu,这个是为了在样式表中使用,就是样式表的 ID 选择器。其他的比较好理解,左边的内容就叫$left,上边叫$head,右边叫$right,至于为什么叫这个名字,可以看一下我们的.info 文件,前面我们提到 regions,下面再介绍一下 regions 的用法:
regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
其实变量名就是 regions 的 key,因此我们是可以改变的,但是为了通用,所以我们使用默认的名字,如果我们不对 regions 进行定义,默认的就是 上面的定义方式,如果我们自己定义了一个新的区域,比如叫 lefttop,下面我们定义以下:
regions[lefttop] = leftTop
注意:如果我们不对 regions 进行修改的话,可以不在.info 文件中声明 regions,但是如果我们添加了 regions[lefttop] = leftTop,而不声明其他几个的话,只会有我们当前声明的一个区域有效,其他几个就没有了, 所以如果我们要添加一个 regions[lefttop] = leftTop 的时候,同时需要添加默认的几个 regions[left] = Left sidebar,regions[right] = Right sidebar,regions[content] = Content,regions[header] = Header,regions[footer] = Footer,或者全部自定义。 下面看一下我们自定义的区域:
Bluehost-drupal-theme

可以看到,我们自定义的区域已经生效。
注意:如果在 admin/build/block 看不到我们新定义的区域,还是按照 上面的方法在 admin/settings/performance 下点击“clear cached data”按钮清空缓存,在打开就可以看到我们定义的区域了。
其他的页面内容的输出与左边类似,具体可见主题源码。 注意:这个主题并没有完全把所有的变量都放在页面上,只是作为一个示例介绍主题的制作。
下面看一下整个 page.tpl.php 完成后的效果:
Bluehost-drupal-theme

3 . 5 t e m p l a t r e . p h p 文件介绍 template.php 文件是可选文件,就是在主题中不一定必须有,这个文件主要用于覆写一些主题函数或者添加变量的处理函数,另外,凡是在 page.tpl.php 中可以输出的变量在该文件中同样可以输出,本主题中我就定义了一个设置页面宽度的函数,用于处理左右没有内容的情况,以保持良好的 兼容性。
关于剩下的几个文件,比较简单,可先参考 g a r l a n d 主题, 还会用到的 n o d e . t p l . p h p ,b l o c k . t p l . p h p ,请先参考 g a r l a n d 主题,可以将 g a r l a n d 主题的这两个文件拷贝到我们
新建的主题之下直接使用。
到此为止,我们应该已经可以建立自己的主题了,下面的 内容我会尽快补上。
说明: 此文档是作者的一个简单测试主题开发过程记录记录,以此来表示对所有支持 drupal 的以及为 drupal 的发展无私奉献的人们敬意,希望此文当能对初学 drupal 的朋友有所帮助,欢迎热爱 drupal 的朋 友批评指正。
Email:zhixinhu#gmail.com -= 本文转载 =- 作者:zhixinhu#gmail.com 出处:网络