A veces necesitamos de una template page.tpl.php para cada tipo de nodo (page-[type].tpl.php). Por ejemplo una template distinta para nuestros nodos de tipo ‘Blog’ (page-blog.tpl.php) y una otra para nuestros nodos de tipo ‘mitipo’ (page-mitipo.tpl.php).
Si Drupal nos propone por defecto (Template Suggestion) templates como node-[type].tpl.php, no es lo mismo para los templates de nuestras páginas.
Para añadir (o sugerir) templates para nuestras páginas, solo debemos instertar el código siguiente en nuestro archivo template.php de nuestro tema.
No se olviden cambiar temaNombre por el nombre de su tema.
Drupal 6
<?php
function temaNombre_preprocess_page(&$vars, $hook) {
if (isset($vars['node'])) {
// Si el tipo de nodo es "blog" la template propuesta será "page-blog.tpl.php".
$vars['template_files'][] = 'page-'. str_replace('_', '-', $vars['node']->type);
}
}
?>Para más información:
Working with template suggestions - http://drupal.org/node/223440
Page templates depending on node type - http://drupal.org/node/249726
Si tiene un comentario y/o una pregunta, no dude en enviarla.



Commentaires
Como se llama el nodo que carga la pagina de user-login
Quisiera hacer una página con template distinto para el login de acceso. Es un nodo distinto? o se carga de otra manera
Funcción pre process
Lo mejor para el theme del formulario de login es trabajar por funciones pre process para crear el archivo user-login.tpl.php desde el archivo template.php:
<?php function mytheme_theme(&$existing, $type, $theme, $path) {$hooks['user_login'] = array(
'template' => 'templates/user_login',
'arguments' => array('form' => NULL),
// other theme registration code...
);
return $hooks;
}
function
mytheme_preprocess_user_login(&$variables) {$variables['intro_text'] = t('This is my awesome login form');
$variables['rendered'] = drupal_render($variables['form']);
}
?>
Encontrarás más informaciones en http://drupal.org/node/19855
Gracias me ha sido de gran
Gracias me ha sido de gran ayuda
Temas diferentes para tipos de contenido diferente
Estoy dándole vueltas a lo de hacer un tpl distinto para un determinado node y no hay forma de que funcione.
He creado node-numerodenodo.tpl.php, page-tipo_contenido.tpl.php y no funciona. También he modificado la funcion preprocess del template.php y no consigo que funcione.
Etoy con Drupal 7.
Si me pudieras ayudar te lo agradecería.
Un saludo
En Drupal 7
Imacia,
No te olvides que este artículo está para Drupal 6.x
En Drupal 7 deberías hacer lo siguiente:
node--[type|nodeid].tpl.php (dos -- en vez de uno)
Aquí tienes más información: http://drupal.org/node/1089656
Temas de Drupal
Hola, puedo hacerte una pregunta? Tienes idea dónde conseguir temas para drupal? Porque los que conseguido son muy feos.
Un saludo,
Juan
Yo empezaría por aquí:
Yo empezaría por aquí: http://drupal.org/project/themes
Ahora si quieres invertir un poco tienes temas de pago como en http://www.templatemonster.com/pack/drupal-7-themes/
Pero te recomiendo que hagas tus temas tú mismo, así tienes un mejor control sobre ellos :)
Poster un nouveau commentaire