summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--database/database.mysql3
-rw-r--r--database/database.pgsql3
-rw-r--r--database/updates.inc10
-rw-r--r--modules/block.module34
-rw-r--r--modules/block/block.module34
5 files changed, 39 insertions, 45 deletions
diff --git a/database/database.mysql b/database/database.mysql
index ea9087668..920782aaa 100644
--- a/database/database.mysql
+++ b/database/database.mysql
@@ -128,8 +128,7 @@ CREATE TABLE blocks (
custom tinyint(2) DEFAULT '0' NOT NULL,
throttle tinyint(1) DEFAULT '0' NOT NULL,
visibility tinyint(1) DEFAULT '0' NOT NULL,
- pages text NOT NULL,
- PRIMARY KEY (module, delta)
+ pages text NOT NULL
) TYPE=MyISAM;
--
diff --git a/database/database.pgsql b/database/database.pgsql
index 885a82f4e..f083a3bd9 100644
--- a/database/database.pgsql
+++ b/database/database.pgsql
@@ -123,8 +123,7 @@ CREATE TABLE blocks (
custom smallint NOT NULL default '0',
throttle smallint NOT NULL default '0',
visibility smallint NOT NULL default '0',
- pages text NOT NULL default '',
- PRIMARY KEY (module, detla)
+ pages text NOT NULL default ''
);
--
diff --git a/database/updates.inc b/database/updates.inc
index 1b7ae8f2d..96d8da6fc 100644
--- a/database/updates.inc
+++ b/database/updates.inc
@@ -66,8 +66,7 @@ $sql_updates = array(
"2005-08-08" => "update_144",
"2005-08-15" => "update_145",
"2005-08-25" => "update_146",
- "2005-09-07" => "update_147",
- "2005-09-12" => "update_148"
+ "2005-09-07" => "update_147"
);
function update_110() {
@@ -812,13 +811,6 @@ function update_147() {
return $ret;
}
-function update_148() {
- $ret = array();
-
- $ret[] = update_sql('ALTER TABLE {blocks} ADD PRIMARY KEY (module, delta)');
-
- return $ret;
-}
function update_sql($sql) {
$edit = $_POST["edit"];
diff --git a/modules/block.module b/modules/block.module
index 9dfaec3ac..576ca1a10 100644
--- a/modules/block.module
+++ b/modules/block.module
@@ -473,17 +473,17 @@ function block_list($region) {
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 @@ function block_list($region) {
}
// 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)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), 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)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), 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;
}
}
}
diff --git a/modules/block/block.module b/modules/block/block.module
index 9dfaec3ac..576ca1a10 100644
--- a/modules/block/block.module
+++ b/modules/block/block.module
@@ -473,17 +473,17 @@ function block_list($region) {
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 @@ function block_list($region) {
}
// 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)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), 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)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), 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;
}
}
}