按照:

  1. 速度
  2. 所需的处理(这会影响速度)
  3. 遵循标准

以下两种方法哪种会更好?

我想创建一个通用的页面布局,但是,首页看起来与正常的外观和感觉不同。

方法一

创建一个普通的 page.tpl.php 文件,但其中包含以下代码:

.....
<body>
  <?php if (isFront()) { 
          // lots of stuff for the frontpage
        }
        else 
        {
          // lots of stuff for the other pages
        }
  ?>
</body>

方法二

创建两个不同的页面,即 page.tpl.php 和 front.tpl.php。代码将被重复,但首页和其他页面将各自有自己的专用文件。

有帮助吗?

解决方案

我想说方法2更好。我认为无论哪种方式,速度都不会受到太大影响,并且对此没有严格的标准,但不鼓励在模板文件中进行过多的分支。

不过我有兴趣看看主页的具体代码是什么。Drupal 将为首页提供一个“front”CSS 类,以便可以对其进行不同的样式设置,并且可以创建仅在首页上显示的块。因此可能不需要特定的首页模板。

其他提示

我将以相反的顺序解决你的观点:

标准

我相信标准接受的方法(至少在使用基于禅宗的主题时)是创建一个特定的模板。实际上,您不需要添加任何额外的主题功能即可使其工作,就像您命名它一样 page-front.tpl.php 它将专门用于首页。当然,这仅适用于您确实需要单独的模板的情况(请参阅杰里米对此的回答)。

所需处理

我认为这两种不同方法的性质不存在密切相关的明显差异。在其他一切都一样的情况下,计算机打开一个文件(模板)并处理其中的 PHP 仍然是一回事,无论这是同一个文件还是另一个文件。解决方案#1 有一个 if 声明更多但...它真的有区别吗?

速度

如果你真的非常需要优化,我读过(如果我没记错的话) 专业 Drupal 开发)通过模板对页面进行主题化比通过函数进行主题化要慢 5 倍,因此您也可以考虑该解决方案,尽管我相信这只会在主页不可缓存的情况下带来好处。

哈!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top