Comment faire pour masquer le champ de preprocess_node dans Drupal 7

J'ai des problème simple. J'ai un champ dans mon type de contenu (image d'en-tête) qui doivent être imprimés dans page.tpl.php (en raison de la mise en page).

Il fonctionne très bien, j'ai mis un peu de code dans theme_preprocess_page() fonction pour afficher le champ dans page.tpl.php

function theme_preprocess_page( &$variables, $hook )
{
    $node = menu_get_object();

    if( $node && $node->type == 'page' )
    {
        $view = node_view($node);
        $variables['headerimage'] = render($view['field_headerimage']);
    }
}

Maintenant, je vais avoir des problème de cache que field_headerimage de vue nœud. Il ne peut être cachée à partir de l'interface utilisateur d'administration (types de contenu -> gérer l'affichage) parce que si je le cacher à partir de là, il ne sera pas disponible dans theme_preprocess_page().

J'ai donc essayer de masquer ce champ à partir preprocess_node

function theme_preprocess_node( &$variables, $hook )
{
    if( $variables['page'] )
    {
        hide($variables['field_headerimage']);
        unset($variables['field_headerimage']);
        $variables['field_headerimage'] = NULL;
    }
}

J'ai ajouté à chaque ligne de code que j'ai essayé en supprimant l'affichage. Ce que je fais mal? Ou: Comment masquer le champ de theme_preprocess_node()

OriginalL'auteur Jasmo | 2012-09-20