- Patch #80201: don't show blocks when serving a 404. Saves CPU and bandwidth.

5.x
Dries Buytaert 2006-08-23 18:32:39 +00:00
parent 689a61f199
commit 427604dfb6
3 changed files with 32 additions and 23 deletions

View File

@ -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);
}
/**

View File

@ -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";

View File

@ -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()) {