2012-09-04 15 views
6

¿Cómo sobrescribir el archivo node.tpl de la página principal de drupal? Probé varioscómo anular el nodo de la página principal tpl - drupal

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

pero no está funcionando.

¿Cuál será el nombre del archivo para anular el nodo de la página de inicio? (Estoy trabajando en Drupal 7)

Respuesta

8

Puede añadir esta función para template.php tema

function customethemename_preprocess_node (&$vars) { 

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

A continuación, puede página - front.tpl.php

Se va a resolver el problema

1

Recomendaría resolver esto configurando un nodo específico de contenido para que sea la página principal.

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

Entonces me gustaría utilizar una plantilla de ID de nodo específico.

node--[insert id here].tpl.php es decir node--1.tpl.php

Es necesario hacer dos cosas antes de que esto funcionará:

  1. Asegúrate de que tienes una copia del archivo original en su node.tpl.php carpeta del tema (la sobreseido el archivo de plantilla no se recogerá de otro modo).
  2. caché de Clear Drupal
0

Sin necesidad de desarrollar manualmente una página principal, simplemente creaate una portada por los puntos de vista u otro, y configurarlo el que la primera página en:

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

Debe ser page--front.tpl.php

Además, asegúrese de que dispone de los precursores en la jerarquía para su tema (por ejemplo page.tpl.php)

0

Los siguientes pasos resolvieron el problema para crear una página de inicio personalizada en Drupal 7.

  1. Crear un archivo: page - front.tpl.php. Observe dos guiones en lugar de uno.
  2. borrar la memoria caché: Configuración >> Desarrollo >> Rendimiento >> Borrar todos los cachés
0

Creo que la mejor solución es utilizar nid portada

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"; 
    } 
} 

Debido

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

agregue la sugerencia de tema para todos los nodos en la página principal, no solo para el nodo de la página principal

Cuestiones relacionadas