Index: block.module =================================================================== RCS file: /cvs/drupal/drupal/modules/block.module,v retrieving revision 1.179 diff -u -r1.179 block.module --- block.module 12 Sep 2005 18:26:59 -0000 1.179 +++ block.module 14 Sep 2005 14:04:03 -0000 @@ -473,17 +473,17 @@ if (!count($blocks)) { $result = db_query("SELECT * FROM {blocks} WHERE theme = '%s' AND status = 1 ORDER BY region, weight, module", $theme_key); - while ($block = db_fetch_array($result)) { + while ($block = db_fetch_object($result)) { if(!isset($blocks[$block->region])) { $blocks[$block->region] = array(); } // Use the user's block visibility setting, if necessary - if ($block['custom'] != 0) { - if ($user->uid && isset($user->block[$block['module']][$block['delta']])) { - $enabled = $user->block[$block['module']][$block['delta']]; + if ($block->custom != 0) { + if ($user->uid && isset($user->block[$block->module][$block->delta])) { + $enabled = $user->block[$block->module][$block->delta]; } else { - $enabled = ($block['custom'] == 1); + $enabled = ($block->custom == 1); } } else { @@ -491,30 +491,32 @@ } // Match path if necessary - if ($block['pages']) { - if ($block['visibility'] < 2) { + if ($block->pages) { + if ($block->visibility < 2) { $path = drupal_get_path_alias($_GET['q']); - $regexp = '/^('. preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\($|\|)/'), array('|', '.*', '\1'. preg_quote(variable_get('site_frontpage', 'node'), '/') .'\2'), preg_quote($block['pages'], '/')) .')$/'; - $page_match = !($block['visibility'] xor preg_match($regexp, $path)); + $regexp = '/^('. preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\($|\|)/'), array('|', '.*', '\1'. preg_quote(variable_get('site_frontpage', 'node'), '/') .'\2'), preg_quote($block->pages, '/')) .')$/'; + $page_match = !($block->visibility xor preg_match($regexp, $path)); } else { - $page_match = drupal_eval($block['pages']); + $page_match = drupal_eval($block->pages); } } else { $page_match = TRUE; } + if ($enabled && $page_match) { // Check the current throttle status and see if block should be displayed // based on server load. - if (!($block['throttle'] && (module_invoke('throttle', 'status') > 0))) { - $array = module_invoke($block['module'], 'block', 'view', $block['delta']); - if (is_array($array)) { - $block = array_merge($block, $array); + if (!($block->throttle && (module_invoke('throttle', 'status') > 0))) { + if (is_array($array = module_invoke($block->module, 'block', 'view', $block->delta))) { + foreach ($array as $k => $v) { + $block->$k = $v; + } } } - if (isset($block['content']) && $block['content']) { - $blocks[$region]["$block[module]_$block[delta]"] = (object) $block; + if (isset($block->content) && $block->content) { + $blocks[$block->region]["{$block->module}_{$block->delta}"] = $block; } } }