summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/common.inc3
-rw-r--r--themes/chameleon/chameleon.theme16
-rw-r--r--themes/engines/phptemplate/phptemplate.engine36
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()) {