Template segun taxonomia

152 views
Skip to first unread message

Fabian Delgado

unread,
May 24, 2012, 12:12:25 AM5/24/12
to drupal-...@googlegroups.com

Drupal 7 
necesito algo como esto, pero para las taxonomías entemplate.php.

/ * Mostrar la página base del nodo * / 
pushbutton_preprocess_page función (& $ vars) { 
if (arg (1) == 26) {/ / node26 
$ vars ['theme_hook_suggestions'] [] = 'page__portada'; 
} if (arg (1 ) == 2) {/ / el nodo 24 
$ vars ['theme_hook_suggestions'] [] = 'page__about'; 

}

Necesito mostrar un tipo de pagina segun la taxonomia que tenga, logre hacerlo con el ejemplo pero es solo para un tipo de pagina segun numero de nodo.

Espero puedan ayudarme.

gracias

Elkin Taharon

unread,
May 24, 2012, 8:59:13 AM5/24/12
to drupal-...@googlegroups.com
Hola, si ya sabes los ids de las taxonomias por que no intentas con algo como page-taxonomy-term.tpl.php ? por lo menos así lo hacia en D6, creo que aún funciona.


2012/5/23 Fabian Delgado <fabiande...@gmail.com>

Fabian

unread,
May 24, 2012, 9:22:36 AM5/24/12
to drupal-...@googlegroups.com
Muchas Gracias Funciona!.
Pense ya no funcionaba de esa manera.
Otra pregunta es, si yo quiero algo fijo ejemplo que en todas las paginas aparezca un menu, lo debo setear en page.tpl.php y aparecera en todas o donde?.
Gracias

Fabian

unread,
May 24, 2012, 10:00:44 AM5/24/12
to drupal-...@googlegroups.com
o tambien si tengo dos taxonomias asociadas a un mismo tipo de contenido osea si la 35 y 25 se ven con la misma plantilla como lo hago como me decis tu?.
gracias

Ivan Chaquea

unread,
May 24, 2012, 10:30:01 AM5/24/12
to drupal-...@googlegroups.com
Hola, aqui hay varias preguntas,

1. Asumo que tomaste el codigo de esta discusion, y el que se adecua a tu caso esta en http://drupal.org/node/1089656#comment-5760898


function theme_preprocess_page(&$vars) {
if (
$vars['node']->type == 'contact'){ //añadir tu tipo de contenido
   
$vars['theme_hook_suggestions'][] = 'page__contact'; // habilita el template para ese tipo de contenido
}
}


2.Lo del menu seria mejor usarlo como un bloque, aparecera en todas las paginas y no tendrias que tocar el template.

3. Que necesitarias en el caso de las taxonomias en concreto?

Fabian

unread,
May 24, 2012, 10:51:31 AM5/24/12
to drupal-...@googlegroups.com
Como estas?
Te explico estoy migrando de drupal 6 a 7.
En el template de page.tpl.php tengo condiciones como <?php if (($node->taxonomy[13] != "")||($node->taxonomy[35] != "")): ?>
//Aca va lo que quiero mostrar para esas taxonomias es una pagina distinta
 <?php endif; ?>

El problema es que este código dentro del page.tpl.php de drupal 7 ya no funciona.
Entonces la solución que me dio otra persona del foro fue crear una pagina por termino de taxonomia, pero cuando tengo dos taxonomías no se como hacerlo.
Es decir el código que tu me pegas esta genial pero lo necesito para taxonomias es decir.
Si tengo taxonomía 30 mostrar page--noticias.tpl.php o si tengo 25 mostrar page--agenda.tpl.php.
Comprendes??

Elkin Taharon

unread,
May 24, 2012, 11:17:13 AM5/24/12
to drupal-...@googlegroups.com
Pues los menús los manejas directamente con el sistema de menús de drupal, el bloque lo asignas a una región y la imprimes en los tpls que necesites

2012/5/24 Fabian <fabiande...@gmail.com>

Luis Guillermo Quevedo Velez

unread,
Jul 20, 2012, 9:10:29 PM7/20/12
to drupal-...@googlegroups.com
No se si aún sea oportuno responder. Lo hago porque es usual que se busque en los foros preguntas y respuestas vinculadas con las preocupaciones presentes; de modo que al hacerlo pienso en los que en el futuro entren aquí guiados por inquietudes similares que no han sido resueltas.

Me parece que el código indicado como sugerencia por Ivan Chaquea es suficiente cambiando la cláusula if por switch ... case así:
<code>
function theme_preprocess_page(&$vars) {
  $tipo_a_resolver =
$vars['node']->type;
  switch (
$tipo_a_resolver){
  case 'contact': //añadir tu tipo de contenido
   
$vars['theme_hook_suggestions'][] = 'page__contact'; /* habilita el template   para ese tipo de contenido */
    break;
  case 'otro_caso':
      // asignas de modo similar
    break;
  } //end switch
}// end function

</code>
Reply all
Reply to author
Forward
0 new messages