主题和模板有什么区别?

时间:2009-02-23 08:27:35

标签: drupal templates themes

我正在尝试将我的网站迁移到Drupal,我对主题和模板感到困惑。我当前站点中页面的外观完全由模板文件和CSS控制。它在Drupal中是如何工作的?

7 个答案:

答案 0 :(得分:5)

在drupal中,主题处理网站的外观,模板处理内容的呈现方式。

可以这样想:模板用于呈现内容,然后主题应用于该内容。

编辑:因此,您的css文件与drupal中的主题一起使用,与模板无关。

答案 1 :(得分:4)

在Drupal中,“主题”只是一种特殊类型的插件,它将任意数量的模板(控制给定数据如何呈现为HTML),CSS,JS文件,图像等捆绑在一起。

因此,您的oveevral页面标记有一个“模板”,侧边栏块如何呈现为HTML的单个“模板”,依此类推。捆绑在一起并命名的所有这些都被称为主题。

答案 2 :(得分:3)

以这种方式看待它:可以创建一个没有模板的主题。这样的主题将有CSS文件覆盖drupal的默认CSS文件。使用这样的主题会创建一个看起来几乎与Drupal的默认网站完全相同的网站,除了它会有不同的颜色,字体等。

但是,如果您想要更改页面上项目的位置,页面上的项目类型等等,您必须通过向主题添加一些项目来覆盖默认模板。这些新模板允许您更改Drupal显示的信息以及Drupal将用于显示它的HTML格式。

例如,假设我想克隆StackOverflow,但我想用Drupal来做。我要做的第一件事是创建一个新的内容类型(称之为“问题”),就像一个故事,但有额外的字段来跟踪投票等等。 Drupal的默认模板不会知道这些额外字段,因此它们不会显示它们。

所以,我做的是进入我的主题并添加一个新的node.tpl.php文件。这个新模板就像标准模板一样,除了我可以添加“如果此节点属于'问题'类型的代码,将投票小工具插入正文左侧。”

这有帮助吗?

答案 3 :(得分:2)

主题由一组模板文件组成。 block.tpl.php,node.tpl.php,page.tpl.php都是模板文件,当与CSS结合使用时,JS和图像会产生一个主题。此外,主题可以继承。通过从现有主题继承,可以仅使用CSS创建主题而不创建其他模板文件,在这种情况下,使用来自父主题的模板文件。

另一种看待它的方法是主题是你看到的,模板文件负责生成标记。

我希望这会让它更清晰一些。

答案 4 :(得分:0)

我很困惑......

第一个答案说模板和主题彼此无关,而第二个答案说主题只是答案的集合。

哪一个是对的?

答案 5 :(得分:0)

Drupal正在使用基于模板的主题系统。您可以在页面中定义自己的区域,并可以根据该区域排列内容。有一些默认的模板文件,如page.tpl,block.tpl,node.tpl,它们显示不同类型的内容。   您可以根据需要编写自己的模板文件,例如,如果您需要更改用户注册表单或登录页面的显示,您可以为其创建tpl文件,并且必须将数据重定向到该tpl文件。您可以使用drupals apis将css或js添加到这些模板中。此重定向必须在主题template.php文件

中完成

答案 6 :(得分:0)

主题由css,js,图像和模板文件组成。每个主题可以包括多个模板文件。

此外,主题可以继承,子主题的模板文件可以覆盖其父主题的模板文件。