summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/block/block-admin-display-form.tpl.php4
-rw-r--r--modules/block/block.css2
-rw-r--r--modules/block/block.test14
-rw-r--r--modules/system/page.tpl.php20
-rw-r--r--modules/system/region.tpl.php32
-rw-r--r--modules/system/system.module13
6 files changed, 59 insertions, 26 deletions
diff --git a/modules/block/block-admin-display-form.tpl.php b/modules/block/block-admin-display-form.tpl.php
index 5195f4af1..f7c9b1cf6 100644
--- a/modules/block/block-admin-display-form.tpl.php
+++ b/modules/block/block-admin-display-form.tpl.php
@@ -45,8 +45,8 @@
<tbody>
<?php $row = 0; ?>
<?php foreach ($block_regions as $region => $title): ?>
- <tr class="region region-<?php print $region?>">
- <td colspan="5" class="region"><?php print $title; ?></td>
+ <tr class="region-title region-title-<?php print $region?>">
+ <td colspan="5"><?php print $title; ?></td>
</tr>
<tr class="region-message region-<?php print $region?>-message <?php print empty($block_listing[$region]) ? 'region-empty' : 'region-populated'; ?>">
<td colspan="5"><em><?php print t('No blocks in this region'); ?></em></td>
diff --git a/modules/block/block.css b/modules/block/block.css
index 3d579ee6c..56ba1c560 100644
--- a/modules/block/block.css
+++ b/modules/block/block.css
@@ -1,6 +1,6 @@
/* $Id$ */
-#blocks td.region {
+#blocks tr.region-title td {
font-weight: bold;
}
#blocks tr.region-message {
diff --git a/modules/block/block.test b/modules/block/block.test
index 085d5c36a..02b774ca8 100644
--- a/modules/block/block.test
+++ b/modules/block/block.test
@@ -26,10 +26,10 @@ class BlockTestCase extends DrupalWebTestCase {
// Define the existing regions
$this->regions = array();
- $this->regions[] = array('name' => 'header', 'id' => 'header-region');
- $this->regions[] = array('name' => 'sidebar_first', 'id' => 'sidebar-first');
- $this->regions[] = array('name' => 'content', 'id' => 'center');
- $this->regions[] = array('name' => 'sidebar_second', 'id' => 'sidebar-second');
+ $this->regions[] = array('name' => 'header', 'class' => 'region region-header clearfix');
+ $this->regions[] = array('name' => 'sidebar_first');
+ $this->regions[] = array('name' => 'content');
+ $this->regions[] = array('name' => 'sidebar_second');
$this->regions[] = array('name' => 'footer');
}
@@ -193,8 +193,8 @@ class BlockTestCase extends DrupalWebTestCase {
function moveBlockToRegion($block, $region) {
// If an id for an region hasn't been specified, we assume it's the same as the name.
- if (!(isset($region['id']))) {
- $region['id'] = $region['name'];
+ if (!(isset($region['class']))) {
+ $region['class'] = 'region region-' . str_replace('_', '-', $region['name']);
}
// Set the created block to a specific region.
@@ -209,7 +209,7 @@ class BlockTestCase extends DrupalWebTestCase {
$this->assertText(t($block['title']), t('Block successfully being displayed on the page.'));
// Confirm that the custom block was found at the proper region.
- $xpath = '//div[@id="' . $region['id'] . '"]//div[@id="block-' . $block['module'] . '-' . $block['delta'] . '"]/*';
+ $xpath = '//div[@class="' . $region['class'] . '"]//div[@id="block-' . $block['module'] . '-' . $block['delta'] . '"]/*';
$this->assertFieldByXPath($xpath, FALSE, t('Custom block found in %region_name region.', array('%region_name' => $region['name'])));
}
}
diff --git a/modules/system/page.tpl.php b/modules/system/page.tpl.php
index 417a18c3f..c7c0d5526 100644
--- a/modules/system/page.tpl.php
+++ b/modules/system/page.tpl.php
@@ -86,11 +86,7 @@
</div> <!-- /#name-and-slogan -->
<?php endif; ?>
- <?php if ($page['header']): ?>
- <div id="header-region" class="region">
- <?php print render($page['header']); ?>
- </div>
- <?php endif; ?>
+ <?php print render($page['header']); ?>
</div></div> <!-- /.section, /#header -->
@@ -114,20 +110,18 @@
<?php if ($tabs): ?><div class="tabs"><?php print $tabs; ?></div><?php endif; ?>
<?php print render($page['help']); ?>
<?php if ($action_links): ?><ul class="action-links"><?php print $action_links; ?></ul><?php endif; ?>
- <div id="content-area" class="region">
- <?php print render($page['content']); ?>
- </div> <!-- /#content-area -->
+ <?php print render($page['content']); ?>
<?php print $feed_icons; ?>
</div></div> <!-- /.section, /#content -->
<?php if ($page['sidebar_first']): ?>
- <div id="sidebar-first" class="column sidebar"><div class="section region">
+ <div id="sidebar-first" class="column sidebar"><div class="section">
<?php print render($page['sidebar_first']); ?>
</div></div> <!-- /.section, /#sidebar-first -->
<?php endif; ?>
<?php if ($page['sidebar_second']): ?>
- <div id="sidebar-second" class="column sidebar"><div class="section region">
+ <div id="sidebar-second" class="column sidebar"><div class="section">
<?php print render($page['sidebar_second']); ?>
</div></div> <!-- /.section, /#sidebar-second -->
<?php endif; ?>
@@ -136,11 +130,7 @@
<div id="footer"><div class="section">
<?php print theme('links', $secondary_menu, array('id' => 'secondary-menu', 'class' => array('links', 'clearfix')), t('Secondary menu')); ?>
- <?php if ($page['footer']): ?>
- <div id="footer-region" class="region">
- <?php print render($page['footer']); ?>
- </div>
- <?php endif; ?>
+ <?php print render($page['footer']); ?>
</div></div> <!-- /.section, /#footer -->
</div></div> <!-- /#page, /#page-wrapper -->
diff --git a/modules/system/region.tpl.php b/modules/system/region.tpl.php
new file mode 100644
index 000000000..8d10e78df
--- /dev/null
+++ b/modules/system/region.tpl.php
@@ -0,0 +1,32 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Default theme implementation to display a region.
+ *
+ * Available variables:
+ * - $content: The content for this region, typically blocks.
+ * - $classes: String of classes that can be used to style contextually through
+ * CSS. It can be manipulated through the variable $classes_array from
+ * preprocess functions. The default values can be one or more of the following:
+ * - region: The current template type, i.e., "theming hook".
+ * - region-[name]: The name of the region with underscores replaced with
+ * dashes. For example, the page_top region would have a region-page-top class.
+ * - $region: The name of the region variable as defined in the theme's .info file.
+ *
+ * Helper variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ * into a string within the variable $classes.
+ * - $is_admin: Flags true when the current user is an administrator.
+ * - $is_front: Flags true when presented in the front page.
+ * - $logged_in: Flags true when the current user is a logged-in member.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_region()
+ * @see template_process()
+ */
+?>
+<div class="<?php print $classes; ?>">
+ <?php print $content; ?>
+</div>
diff --git a/modules/system/system.module b/modules/system/system.module
index 6a5d8187c..4464e6c54 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -2714,7 +2714,6 @@ function theme_system_compact_link() {
return $output;
}
-
/**
* Send Drupal and the major version number in the META GENERATOR HTML.
*
@@ -2802,6 +2801,18 @@ function system_page_build(&$page) {
'#markup' => theme('system_run_cron_image', 'system/run-cron-image'),
);
}
+
+ // Find all block regions so they can be rendered.
+ $regions = system_region_list($GLOBALS['theme']);
+
+ // Load all region content assigned via blocks.
+ foreach (array_keys($regions) as $region) {
+ // Don't render empty regions.
+ if (!empty($page[$region])) {
+ $page[$region]['#theme_wrappers'][] = 'region';
+ $page[$region]['#region'] = $region;
+ }
+ }
}
/**