2011-11-10 4 views

risposta

10

Non dimenticare che non tutte le pagine sono necessariamente una pagina di nodo, quindi è meglio che stia cercando di accedervi in ​​node.tpl.php, non in page.tpl.php.

In node.tpl.php si può rendere il campo particolare come questo:

echo render($content['field_header']); 
hide($content['field_header']); // This line isn't necessary as the field has already been rendered, but I've left it here to show how to hide part of a render array in general. 

Se dovete assolutamente fare questo in page.tpl.php poi si desidera implementare una funzione pre-elaborazione nel file di modello per ottenere la variabile è necessario:

function mymodule_preproces_page(&$vars) { 
    if ($node = menu_get_object() && $node->type == 'page') { 
    $view = node_view($node); 
    $vars['my_header'] = render($view['field_header']); 
    } 
} 

Poi nel page.tpl.php avrete accesso alla variabile $my_header che conterrà il vostro campo reso completo.

+0

Grazie! Avevo bisogno di posizionare il mio header in un posto particolare, quindi ho provato la tua seconda opzione, ma non riuscivo a farlo funzionare. Fortunatamente usando la prima opzione (e alcuni jQuery) sono stato in grado di risolvere il mio problema. Mi chiedo perché echo $ vars ['my_header] non ha funzionato nel mio page.tpl.php – martincho

+0

Non avresti bisogno di $ vars [' my_header '] in page.tpl.php in questo caso, solo $ my_header è sufficiente. – Jasmo

+0

Grazie per questa semplice ma efficace risposta. – Drake

1

Nella tua node.tpl è necessario utilizzare il codice seguente, ad esempio nome di campo: field_header

<!-- For Showing only custom field's Value Use below code --> 
<h2 class="title"><?php print $node->field_header['und']['0']['value'];?></h2> 

<!-- ========================= OR ========================= --> 

<!-- For Showing custom field Use below code , which shows custom field's value and title--> 
<h2 class="title"><?php print render(field_view_field('node', $node, 'field_header')); ?></h2> 

<!-- ========================= OR ========================= --> 

<h2 class="title"><?php print render($content['field_header']); ?></h2> 
0

da page.tpl.php si ha accesso a $ nodo e così tutti i campi da $ nodo

print ($node->body['und']['0']['value']);