drupal 7 – Anular html.tpl.php por tipo de nodo

Pregunta:

En mi archivo template.php para mi tema, he intentado lo siguiente:

function media_preprocess_page(&$vars, $hook) {
  if (isset($vars['node'])) 
  {
      // If the node type is "blog" the template suggestion will be "html--blog.tpl.php".
       $vars['theme_hook_suggestions'][] = 'html__'.$vars['node']->type;

      // If the node type is "blog" the template suggestion will be "page--blog.tpl.php".
       $vars['theme_hook_suggestions'][] = 'page__'.$vars['node']->type;

      // If the node id is "33" the template suggestion will be "page--33.tpl.php".
       $vars['theme_hook_suggestions'][] = 'page__'.$vars['node']->nid;    
  }

    //Create page suggestion for first part of url-alias
    $url_alias = drupal_get_path_alias($_GET['q']);
    $parts = explode('/', $url_alias);

    $vars['theme_hook_suggestions'][] = 'page__'.$parts[0].'__alias';  
}

Esto funciona para la página – nodetype.tpl.php, pero no para html – nodetype.tpl.php

Es posible que se pregunte por qué necesita anular la plantilla html.tpl.php por tipo de nodo. Es porque hay un marcado que no quiero incluir para este nodo en particular.

Respuesta:

El nombre de una función de preproceso se basa en el tema / plantilla que se está procesando. Para preprocesar el archivo html.tpl.php, necesitará usar hook_preprocess_html() :

function media_preprocess_html(&$vars) {
  $node = menu_get_object();

  if ($node && $node->nid) {
    $vars['theme_hook_suggestions'][] = 'html__' . $node->type;
  }
}

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım