就以下方面而言:
以下哪两种方法会更好?
我想创建一般的页面布局,但是,首页看起来与正常的外观不同。
方法1
创建一个普通的page.tpl.php文件,但其中包含以下代码:
.....
<body>
<?php if (isFront()) {
// lots of stuff for the frontpage
}
else
{
// lots of stuff for the other pages
}
?>
</body>
方法2
创建两个不同的页面,即page.tpl.php和front.tpl.php。代码将被复制,但首页和其他页面将各自拥有自己的专用文件。
答案 0 :(得分:3)
我会说方法2更好。我认为速度不会受到任何影响,并且没有严格的标准,但不鼓励在模板文件中过度分支。
但是我有兴趣看看主页特定的代码是什么。 Drupal会为首页提供一个“前”css类,因此它的样式可以不同,并且可以创建块以仅显示在首页上。因此可能不需要特定的首页模板。
答案 1 :(得分:2)
我会以相反的顺序处理你的观点:
<强>标准强>
我认为标准接受的方法(至少在使用基于zen的主题时)是创建特定模板。实际上,您不需要为其添加任何其他主题功能,就像您将其命名为page-front.tpl.php
一样,它将专门用于首页。这当然只适用于你真的需要一个单独的模板(见Jeremy对此的回答)。
需要处理
我认为与两种不同方法的性质密切相关,并不存在可察觉的差异。其他一切都是相同的,计算机打开文件(模板)并处理其中的PHP仍然是一个问题,无论这是同一个文件还是另一个文件。解决方案#1有一个if
语句,但......它真的有所作为吗?
<强>速度强>
如果你真的不太需要优化,我读(如果我在 Pro Drupal Development 上没有错),通过模板对页面进行通过比通过模板进行操作慢5倍一个函数,所以你也可以考虑这个解决方案,虽然这只会带来一个好处,如果主页不可缓存,我相信。
HTH!