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.
Luego debe colocar las etiquetas de plantilla relevantes en su archivo page.tpl.php.
Entonces, por ejemplo, si definió la región sidebaren su archivo .info de temas, entonces agregaría: <?php print render($page['sidebar']); ?>al lugar relevante en su page.tpl.php.
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:
Las regiones no se definen usando una 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.
Las regiones se representan utilizando la función Drupal 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 $helpvariable 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] = Cornerpara 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.
Este es un resumen de las respuestas con dificultades comunes.
Capi Etheriel
¿Es regions[content] = Contentla ú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_topypage_bottom
Jim Garrison
No sé si Drupal busca alguna de las regiones, pero contentdefinitivamente es muy importante. helpes compatible con el núcleo (para generar mensajes de ayuda), page_bottomes probablemente donde se imprime js inferior y page_topparece usarse para barras de navegación como las barras de herramientas principales.
Capi Etheriel
2
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.
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.fuente
Otro punto: ¡No te pierdas las regiones requeridas!
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.
fuente
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 usandoregions[]
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:
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.fuente
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.
fuente
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 necesarioscontent
,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 ypage_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.
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.
Configuración - Rendimiento - Borrar todas las cachés
fuente
Crear una nueva región en tema
Solo necesita definirlo en dos archivos.
Theme.info
Page.tpl.php
Ahora renderiza esta región
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
fuente