Quiero agregar una nueva área 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.
Quiero agregar una nueva área 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.
Respuestas:
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.
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.
Crear una región para un tema de Drupal 7 no es diferente de crear una región para una región de Drupal 6; Las diferencias entre Drupal 7 y las versiones anteriores son esencialmente:
mytheme_regions()
función como se hizo en Drupal 5, pero se definen en mytheme.info usando regions[]
directivas, que es lo que se hace también con los temas de Drupal 6.render()
, en lugar de imprimir el contenido de una variable.Las regiones predeterminadas de 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 $help
variable utilizada por Drupal 6.
Las regiones del tema se definen en su archivo .info del tema; consulte los documentos . Simplemente agregue una línea con regions[corner] = Corner
para obtener una región de la esquina.
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 regiones predeterminadas de Drupal. Si desea agregar, deberá volver a declarar las regiones predeterminadas. Por supuesto, puede eliminar cualquier región, pero debe admitir las regiones requeridas. Ver los documentos de nuevo.
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.
regions[content] = Content
la única región requerida en D7? drupal.org/node/171205#regions parece dar a entender esto, pero luego drupal.org/node/171224 dice que las regiones son necesarios content
, help
, page_top
ypage_bottom
content
definitivamente es muy importante. help
es compatible con el núcleo (para generar mensajes de ayuda), page_bottom
es probablemente donde se imprime js inferior y page_top
parece usarse para barras de navegación como las barras de herramientas principales.
Siga los pasos a continuación para crear una región personalizada en su tema:
Vaya a su archivo theme.info y agregue esta línea.
regions[machine_name_of_your_region] = Name of your region
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. Esto 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; ?>
Configuración - Rendimiento - Borrar todas las cachés
Solo necesita definirlo en dos archivos.
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[navigation] = 'Navigation'
regions[header] = 'Top Bar'
regions[highlighted] = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region
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 información visite http://drupal.org/node/171205