2012-09-04 71 views
6

如何覆蓋drupal的首頁node.tpl文件?我試過各種如何覆蓋首頁節點tpl - drupal

node--front.tpl.php 
    page--node--front.tpl.php 
    page--front--node.tpl.php 

但它不工作。

將覆蓋主頁節點的文件名是什麼? front.tpl.php

它會解決這個問題 -

回答

8

可以將此功能加入到主題的template.php

function customethemename_preprocess_node (&$vars) { 

     if ($vars["is_front"]) { 
      $vars["theme_hook_suggestions"][] = "node__front"; 
     } 
    } 

然後你就可以將網頁的頁面(我在Drupal 7個工作)

1

我建議通過設置內容的特定節點作爲首頁來解決這個問題。

http://www.inmotionhosting.com/support/edu/drupal-7/homepage/change-front-page

然後我會用一個特定節點的ID模板。

node--[insert id here].tpl.phpnode--1.tpl.php

你需要做兩件事情之前,這將工作:

  1. 確保您有原始node.tpl.php文件的副本在你的主題文件夾(在覆蓋否則模板文件將不會被拾取)。
  2. 清除Drupal的緩存
0

無需手動開發頭版,只是creaate由觀點或FrontPage的另一個並將其設置在作爲頭版:

www.yoursite.com/?q=admin/config/site-information 
6

應該page--front.tpl.php

此外,還要確保您有在層次結構中的前體的主題(如page.tpl.php

0

以下步驟解決了我在Drupal 7中創建自定義首頁的問題。

  1. 創建一個文件:page - front.tpl.php。注意兩個連字符而不是 之一。
  2. 清除緩存:配置>>發展>>業績>> 清除所有緩存
0

我認爲最好的辦法是使用FrontPage NID

function YOURTHEME_preprocess_node (&$vars) { 
list(, $frontpage_nid) = explode('/', drupal_get_normal_path(variable_get('site_frontpage', 'node'))); 

    if ($vars['node']->nid == $frontpage_nid) { 
    $vars['theme_hook_suggestions'][] = "node__frontpage"; 
    } 
} 

因爲

if ($vars["is_front"]) { 
    $vars["theme_hook_suggestions"][] = "node__front"; 
} 

爲首頁中的所有節點添加主題建議,不僅針對首頁節點