it-swarm-es.com

¿Cómo creo regiones personalizadas en un tema?

Quiero agregar un área nueva que abarcará todo el sitio. Describa el proceso de incluir esta nueva región en mi tema, si es posible, generalícela para agregar una nueva región personalizada.

58
palbakulich

Define regiones en su archivo .info de tema. Ver: Estructura del archivo .info

Luego debe colocar las etiquetas de plantilla relevantes en su archivo page.tpl.php.

Entonces, por ejemplo, si definió la región sidebar en su archivo .info de temas, entonces agregaría: <?php print render($page['sidebar']); ?> al lugar relevante en su page.tpl.php.

68
Camsoft

Otro punto: ¡No te pierdas las regiones requeridas!

regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom

Puede encontrar más información sobre esto en http://drupal.org/update/themes/6/7#closure .

Para aclarar este punto: si define sus propias regiones, debe definir todo lo que está utilizando, incluidas las que son necesarias. En otras palabras, no puede simplemente definir regiones adicionales: si define alguna, debe definirlas todas.

20
laura

Crear una región para un tema Drupal 7 no es diferente de crear una región para una región Drupal 6; Las diferencias entre Drupal 7 y las versiones anteriores son esencialmente:

  • Las regiones no se definen usando una función mytheme_regions() como se hizo en Drupal 5, pero se definen en mytheme.info usando las directivas regions[], Que es lo que se hace también con Drupal 6 temas.
  • Las regiones se representan utilizando la función Drupal render(), en lugar de imprimir el contenido de una variable.

Las regiones predeterminadas Drupal 7 son las siguientes:

regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer

Los temas centrales de Drupal 7 ahora incluyen una región llamada 'resaltada' que usa la misma pantalla que el área de declaración de misión en Drupal 6; también incluyen una región llamada 'ayuda', que por defecto tiene el mismo contenido de la variable $help utilizada por Drupal 6.

9
kiamlaluno

Las regiones del tema se definen en su archivo .info del tema; consulte docs . Simplemente agregue una línea con regions[corner] = Corner Para obtener una región Corner.

Luego, debe editar el archivo page.tpl.php y agregar <php print render($corner); ?> donde desea que se muestre la región. Si su tema no tiene page.tpl.php, copie desde el tema base o desde el módulo del sistema.

Errores comunes:

  • Si el archivo theme.info no tenía regiones declaradas, estaba usando Drupal regiones predeterminadas. Si desea agregar, tendrá que volver a declarar las regiones predeterminadas. Puede, por supuesto, eliminar cualquier región pero admite las regiones requeridas. Consulta docs nuevamente.

  • Los cambios en el archivo .info o la adición de nuevos archivos al tema (como page.tpl.php) solo se notarán después de borrar las cachés.

  • Omega, un tema base muy popular, no necesitará ningún cambio en page.tpl.php, solo el archivo .info. Pero tendrá que visitar la configuración del tema en la interfaz de usuario y asignar su región a una zona.

4
Capi Etheriel

Siga los pasos a continuación para crear una región personalizada en su tema:

  1. Vaya a su archivo theme.info y agregue esta línea.

    regions[machine_name_of_your_region] = Name of your region
    
  2. Aunque también puede llamar a bloques de región en la plantilla de nodo, generalmente agregará la región a la plantilla de página del tema. Suele ser page.tpl.php, o si tiene archivos de plantilla personalizados para diferentes páginas, edítelos también. La nueva región aparecerá solo en las páginas creadas alrededor de la plantilla a la que agrega la nueva región. Pégalo donde quieras que aparezca tu nueva región.

    <?php if ($page['machine_name_of_your_region']): ?>
      <div id="sidebar-first" class="column sidebar"><div class="section">
      <?php print render($page['machine_name_of_your_region']); ?>
      </div></div> <!-- /.section, /#sidebar-first -->
     <?php endif; ?>
    
  3. Configuración - Rendimiento - Borrar todas las cachés

2
Astha chauhan

Crear una nueva región en tema

Solo necesita definirlo en dos archivos.

  • Theme.info
  • Page.tpl.php

Theme.info

;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;

regions[navigation]      = 'Navigation'
regions[header]          = 'Top Bar'
regions[highlighted]     = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region

Page.tpl.php

Ahora renderiza esta región

  <?php if ($page['new_region']): ?>
      <div class="new_region_class">
        <?php print render($page['new_region']); ?>
     </div>
  <?php endif; ?>

Ahora borra todo el caché, aquí tienes, tienes una nueva región en tu tema. Puede verlo en su página de configuración de bloque.

Para más visita http://drupal.org/node/171205

0
gsjha