【问题标题】:What is the difference between a theme and a template?主题和模板有什么区别?
【发布时间】:2009-02-23 08:27:35
【问题描述】:

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

【问题讨论】:

    标签: drupal templates themes


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        但是如果你想改变页面上项目的位置,页面上有哪些类型的项目等等,你必须通过在你的主题中添加一些你自己的来覆盖默认模板。这些新模板让您可以更改 Drupal 显示的信息以及 Drupal 将使用哪种 HTML 来显示它。

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

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

        这有帮助吗?

        【讨论】:

          【解决方案4】:

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

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

          我希望这能让它更清楚一点。

          【讨论】:

            【解决方案5】:

            我很困惑……

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

            哪个是对的?

            【讨论】:

            • Eaton 和 canen 的答案更准确,尤其是在 BenBruscella 编辑他的答案之前。
            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

              主题由 css、js、图像和模板文件组成。每个主题可能包含多个模板文件。

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

              【讨论】:

                猜你喜欢
                • 2012-04-02
                • 1970-01-01
                • 2023-03-12
                • 2022-01-03
                • 1970-01-01
                • 2011-11-02
                • 1970-01-01
                • 2010-11-10
                相关资源
                最近更新 更多