Crear un node tpl distinto por cada path en drupal 7

drupal8_0_1.jpg
Solucionex
26
Jun 18

En alguna ocasión podemos necesitar tener dos tpl para un mismo nodo y que se muestre uno u otro dependiendo del path donde nos encontremos, para ello lo primero es realizar un nuevo theme suggestion que lo creamos en el fichero template.php del tema:

nombretheme_preprocess_node(&$variables) {

  // Set template node news by path.

  $alias_parts = explode('/', drupal_get_path_alias());

  if (($alias_parts[0] == 'solucionex') && ($alias_parts[1] == 'news')) {
    $suggestion[] = 'node__' . $alias_parts[0] . '__' . $alias_parts[1];
    $variables['theme_hook_suggestions'] = array_merge($variables['theme_hook_suggestions'], $suggestion);
  }
}

  Para el ejemplo usaremos un tpl diferente para el tipo de contenido noticia cuando sea mostrado en el path /solucionex/news/ (por defecto las noticias tienen el alias /news) por lo que tras haber creado el theme suggestion únicamente deberemos crear un tpl con el nombre de suggestion node--solucionex--news.tpl.php y ahí ya pegar el código del otro tpl con las modificaciones correspondientes.