Responder a comentario

Drupal: Creación de regiones

Una de las cosas más importantes a la hora de crear un theme para Drupal o integrar una maquetación realizada a medida es la posibilidad de modificar los layouts de nuestra aplicación para que se adapten a nuestras necesidades. La creación de nuevas regiones y la modificación del los layouts disponibles nos ayudarán a realizar una integración más o menos rápida.

 

1 – En Drupal 5

 

El engine PHPTemplate para Drupal 5 por defecto proporciona 5 regiones, 'left' , 'right', 'content', 'header' y 'footer' y para poder añadir nuevas debemos usar el hook_regions proporcionado para este fin.

 

El siguiente código añadiría a nuestro theme dos nuevas regiones(miregion y miregion2) a parte de las ya descritas anteriormente.

 

function mitheme_regions()
{
return array(

'left' => t('left sidebar'),
'right' => t('right sidebar'),
'content' => t('content'),
'header' => t('header'),
'footer' => t('footer'),

 

//*** INI:nuevas regiones ******//

'miregion' => t('Region nueva 1'),

'miregion2' => t('Region 2'),

//*** FIN:nuevas regiones ******//

}

 

  • En lugar de “mitheme” usaremos el nombre del theme que estemos usando.

  • No usar espacios ni guiones en el nombre de las regiones, es recomendable usar “_” en su lugar.

 

A partir de este momento ya podremos empezar a usar las nuevas regiones en nuestro page.tpl.php utilizando las variables proporcionadas: $sidebar_left, $sidebar_right, $content, $header, $footer_message, $miregion y $miregion2.

 

<?php if ($sidebar_left): ?>

<div id="sidebar-left" class="sidebar">

   <?php if ($miregion): ?>

     <div class="block block-theme"><?php print $miregion ?></div>

   <?php endif; ?>

<?php print $sidebar_left ?>

</div>

<?php endif; ?>

*** En el ejemplo, todo el contenido asignado a la región “miregion” sólo será visualizado si existe contenido en la region “sidebar_left” ***

 




Nota: en este documento aparecen la lista de variables proporcionadas por PHPTemplate en Drupal 5 para la creación de temas. http://www.terysoftware.com/sites/default/files/VariablesPHPTemplate.pdf

 

2 – En Drupal 6

 

En este caso la configuración de regiones se realizará en el archivo “.info” de nuestro theme.

 

; $Id: MYTHEME.info, v 1.0 2010/17/02 10:27:31

name = MY THEME

description = Descripción de mi nuevo tema

regions[left] = Left sidebar

regions[content] = Content

regions[right] = Right sidebar

regions[header] = Header

regions[footer] = Footer

regions[top] = Top Region

regions[miregion] = Region Nueva

regions[miregion2] = Otra Region

...

...

 

En este momento podemos comenzar a usar las variables $left, $content, $right, $footer, $header, $top, $miregion, $miregion2 en nuestro page.tpl.php y distribuirlos a nuestro gusto: P.Ej

 

<!-- BEGIN REGION: HEADER -->

<div id="hd" class="hd">

<div class=”head">

<?php echo $header; ?>

</div>

<div id="tnav">

<?php echo $top; ?>

</div>

</div>

<!-- END REGION: HEADER -->

 

<!-- BEGIN: REGION -> BODY -->

<div id="bd" class="">

<?php print $left?>

<?php print $content?>

<?php print $right?>

</div><!-- #bd -->

<!-- END REGION: BODY -->

 

<!-- FOOTER -->

<div id="ft">

<?php if($miregion) echo $miregion; ?><?php if($miregion2) echo $miregion2; ?>

<?php if($footer) echo $footer; ?>

</div>

<!-- END FOOTER -->

 

Nota: En esta dirección encontraremos la lista de variables (a parte de las regiones) que podremos utilizar en nuestro layout page.tpl.php para la creación de temas → http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6

 

Links de interés(inglés):


 

Respuesta

  • Las direcciones de páginas web y las direcciones de correo se convierten automáticamente en enlaces.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Las líneas y los párrafos se terminan automáticamente.

Más información sobre las opciones de formateo

CAPTCHA

Esta pregunta se hace para comprobar que es usted una persona real e impedir el envío automatizado de mensajes basura.
Imagen de CAPTCHA
Escriba los caracteres (sin espacios) que se deben mostrar en la imagen.