diff options
-rw-r--r-- | includes/common.inc | 3 | ||||
-rw-r--r-- | themes/chameleon/chameleon.theme | 16 | ||||
-rw-r--r-- | themes/engines/phptemplate/phptemplate.engine | 36 |
3 files changed, 32 insertions, 23 deletions
diff --git a/includes/common.inc b/includes/common.inc index 82f7e4300..a8e6ab3de 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -338,7 +338,8 @@ function drupal_not_found() { if (empty($return)) { drupal_set_title(t('Page not found')); } - print theme('page', $return); + // To conserve CPU and bandwidth, omit the blocks + print theme('page', $return, FALSE); } /** diff --git a/themes/chameleon/chameleon.theme b/themes/chameleon/chameleon.theme index 9ffa50ef0..272f8169f 100644 --- a/themes/chameleon/chameleon.theme +++ b/themes/chameleon/chameleon.theme @@ -3,7 +3,7 @@ /** * @file - * A slim, CSS-driven theme. + * A slim, CSS-driven theme which does not depend on a template engine like phptemplate */ function chameleon_features() { @@ -21,7 +21,7 @@ function chameleon_regions() { ); } -function chameleon_page($content) { +function chameleon_page($content, $show_blocks = TRUE) { $language = $GLOBALS['locale']; if (theme_get_setting('toggle_favicon')) { @@ -71,8 +71,10 @@ function chameleon_page($content) { $output .= " <table id=\"content\">\n"; $output .= " <tr>\n"; - if ($blocks = theme_blocks("left")) { - $output .= " <td id=\"sidebar-left\">$blocks</td>\n"; + if ($show_blocks) { + if ($blocks = theme_blocks("left")) { + $output .= " <td id=\"sidebar-left\">$blocks</td>\n"; + } } $output .= " <td id=\"main\">\n"; @@ -101,8 +103,10 @@ function chameleon_page($content) { $output .= " </td>\n"; - if ($blocks = theme_blocks("right")) { - $output .= " <td id=\"sidebar-right\">$blocks</td>\n"; + if ($show_blocks) { + if ($blocks = theme_blocks("right")) { + $output .= " <td id=\"sidebar-right\">$blocks</td>\n"; + } } $output .= " </tr>\n"; diff --git a/themes/engines/phptemplate/phptemplate.engine b/themes/engines/phptemplate/phptemplate.engine index 744563ad9..831e35059 100644 --- a/themes/engines/phptemplate/phptemplate.engine +++ b/themes/engines/phptemplate/phptemplate.engine @@ -147,7 +147,7 @@ function phptemplate_features() { * generate a series of page template files suggestions based on the * current path. If none are found, the default page.tpl.php is used. */ -function phptemplate_page($content) { +function phptemplate_page($content, $show_blocks = TRUE) { /* Set title and breadcrumb to declared values */ if (drupal_is_front_page()) { @@ -162,23 +162,27 @@ function phptemplate_page($content) { /** * Populate sidebars. */ - $layout = 'none'; - global $sidebar_indicator; - /** - * Sidebar_indicator tells the block counting code to count sidebars separately. - */ - $sidebar_indicator = 'left'; - $sidebar_left = theme('blocks', 'left'); - if ($sidebar_left != '') { - $layout = 'left'; - } + if ($show_blocks) { + global $sidebar_indicator; + /** + * Sidebar_indicator tells the block counting code to count sidebars separately. + */ + $sidebar_indicator = 'left'; + $sidebar_left = theme('blocks', 'left'); + if ($sidebar_left != '') { + $layout = 'left'; + } - $sidebar_indicator = 'right'; - $sidebar_right = theme('blocks', 'right'); - if ($sidebar_right != '') { - $layout = ($layout == 'left') ? 'both' : 'right'; + $sidebar_indicator = 'right'; + $sidebar_right = theme('blocks', 'right'); + if ($sidebar_right != '') { + $layout = ($layout == 'left') ? 'both' : 'right'; + } + $sidebar_indicator = NULL; + } + else { + $layout = 'none'; } - $sidebar_indicator = NULL; // Construct page title if (drupal_get_title()) { |