Drupal 6/7 网站主题化:模板由哪些部分组成?
大家好!
希望你们已经学习了 HTML 和 CSS 的基础入门课程。现在,你们已经准备好根据 PSD 设计稿来创建自己的 Drupal 主题了。以下是 HTML 和 CSS 教程的链接:
接下来的视频课程一开始可能会有些难理解,但别担心——我们会在后续的课程中详细解释每个部分。如果暂时有些地方不明白,请随时回到这篇文章,它可以作为你的参考资料。
基于 Zen 主题创建自定义 Drupal 主题
如果你决定不使用已经做好的 Drupal 主题,而是想自己创建一个主题,或者把模板从 Wordpress 或 Joomla 移植过来,那么你需要从零开始编写主题。不过,现在已经有一些现成的主题框架可以为你的主题提供基础结构。
Zen - http://drupal.org/project/zen
Fusion - http://drupal.org/project/fusion
Drupal 主题化 第 1 课:Zen 主题的 Readme 文件
从哪里开始?
太好了!你首先打开了正确的文件。许多人在下载 Zen 主题 后注意到的一件事是,这个主题包含的文件数量远远多于其他主题。
别担心!你不需要一开始就了解所有内容就能 创建一个 Drupal 主题。
Zen 会为你提供你之前不知道的知识,并耐心等待你阅读它的文档与注释。
什么是基础主题(Base Theme)、子主题(Sub-theme)和起始主题(Starter Theme)?
通常,学习某个系统的最佳方式是查看现有的示例并对其进行修改,从而理解它的工作原理。但这种学习方式的一个主要缺点是:如果在修改过程中出了问题,而原始示例在修改前运行正常,那么其他人帮助你的积极性就会很低。
Drupal 的主题系统很好地解决了这个问题——通过「父主题」和「子主题」的机制。「子主题」会继承其「父主题」(也称为基础主题)中的所有 HTML 标记、CSS 和 PHP 代码。而在 Drupal 中,子主题可以仅替换父主题中你希望修改的部分。
Drupal 主题化 第 2 课:布局首页
在本课中,我们将为网站的首页进行布局。相关的设计稿我已附在下方,演示站点将在我完成整个主题化系列课程后上线。
Drupal 主题化 第 2 课(第 2 部分):幻灯片(Views Slideshow)主题化
在本课中,我将演示如何使用 Views Slideshow 模块创建幻灯片。我们将添加几个幻灯片并使其外观与设计稿保持一致。
Drupal 主题化 第 2 课(第 3 部分):完成首页布局
在本课中,我们将:
- 完成网站首页的布局,
- 创建首页模板,
- 指定首页,
- 添加并主题化额外的区块。
问题:晚上好,Ivan。我看了你关于首页主题化的课程。在视频中,你从模板中删除了 <h1> 标签,以隐藏节点标题。我照做了,但标题仍然显示。是不是还需要在别的地方修改?或者在 CSS 里加 display: none;?
回答:也许我在视频结尾讲得有点匆忙。其实有两种方式删除这个标签:通过 CSS 或通过 模板。
如果用 CSS,很简单——直接给它加上 display: none;。
如果通过模板删除首页上的标题,则需要重写首页模板。为此,我创建了文件 page--front.tpl.php,并将 page.tpl.php 的内容复制进去。清空缓存后,就可以单独对首页进行主题化了。
Drupal 主题化 第 3 课:布局博客、新闻与联系页面
在本课中,我们将在网站上创建新闻页面,展示博客和联系表单。
对于博客,我们将使用 Drupal 的标准 Blog 模块,并为每篇博文添加一张图片。而在新闻部分,除了单张图片外,我们还会添加一个小型图片库(Photo Gallery)。在联系页面中,我们将插入Yandex 地图和一个联系表单。
本课我们专注于这些页面的输出,而它们的主题化将在下一课中进行。
Drupal 主题化 第 3 课:布局博客、新闻与联系页面(第 2 部分)
在本课中,我们将整理博客、新闻和联系表单的外观,补充一些 CSS 代码,并使用 CSS3 代码生成器 来优化样式。
Drupal 主题化 第 4 课:节点主题化。创建员工页面与作品集(Portfolio)
在本课中,我们将学习如何对节点(Node)进行主题化,但在开始之前,我们需要先创建作品集(Portfolio)和员工(Staff)的内容展示。
Drupal 主题化 第 5 课:字段主题化(field.tpl.php 模板)
在本课中,我们继续学习 Drupal 的主题化,这次我们将对字段(Field)进行主题化。完成本课后,我们将进一步学习如何对 Views 的输出进行主题化。
要对字段进行主题化,需要将文件 modules/field/theme/field.tpl.php 复制到主题的 templates 文件夹中,并根据以下命名规则重命名: