2009-11-17 63 views
0

在以下方面:为首页使用单独的模板文件更好吗?

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

以下哪两种方法会更好?

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

方法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。代码将被复制,但首页和其他页面将各自拥有自己的专用文件。

回答

3

我会说方法2更好。我认为速度不会受到很大影响,并且对此没有严格的标准,但是不鼓励在模板文件中过度分支。

但是,我会有兴趣看看主页特定的代码是什么。 Drupal会为首页提供一个“前”css类,因此它的样式可以不同,并且可以创建块以仅显示在首页上。所以可能不需要特定的首页模板。

+0

首页的结构看起来完全不同。一旦网站完成,我会查看是否可以在此发布链接。我可能会采用方法1,因为我不想在两个模板文件中更改任何信息或其他内容,即使这些更改不太可能发生。 – coderama 2009-11-17 06:50:20

+0

在这样的模板中进行分支是不好的,因为如果您启用了Drupal更积极的缓存功能(核心和贡献),它不会很好地工作。如果在清除缓存后,首页是要加载的下一页,那么*每个*页将看起来像首页,反之亦然。 – 2009-11-17 17:24:06

+0

传统上有单独的文件,遵循惯例可以帮助其他开发人员加速解决您的问题。 – Grayside 2009-11-18 08:25:37

2

我会以相反的顺序解决您的观点:

标准

我相信标准被接受的方法(基于禅宗主题工作时至少)是创建一个特定的模板。实际上,您不需要额外的主题功能就可以工作,就像您将其命名为page-front.tpl.php一样,它将专门用于首页。这当然只适用于你真的需要一个单独的模板(参见Jeremy的回答)。

所需的处理

我不认为这是有两个不同的方法自然紧密相连的感受差异。其他一切都是一样的,计算机仍然需要打开一个文件(模板)并处理其中的PHP,无论这是一个文件还是另一个文件。解决方案#1有更多的if声明,但是......它真的有所作为吗?

SPEED

如果你真的在恶劣的优化需求,我读了(如果我没看错的Pro Drupal Development)是通过模板主题化的网页是不是通过这样做慢5倍倍功能,所以你也可以考虑这个解决方案,虽然这只会带来一个好处,如果主页不可缓存,我相信。

HTH!

相关问题