diff options
Diffstat (limited to 'includes/module.inc')
-rw-r--r-- | includes/module.inc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/includes/module.inc b/includes/module.inc index 4b6959c34..479dcde3f 100644 --- a/includes/module.inc +++ b/includes/module.inc @@ -53,19 +53,21 @@ function module_hook($name, $hook) { // rehash module-exported blocks: function module_rehash_blocks($name) { db_query("UPDATE blocks SET remove = '1' WHERE module = '$name'"); + if ($blocks = module_invoke($name, "block")) { - foreach ($blocks as $offset=>$block) { - foreach ($block as $item=>$data) { + foreach ($blocks as $delta => $block) { + foreach ($block as $item => $data) { $block[$item] = addslashes($data); } if (!db_fetch_object(db_query("SELECT * FROM blocks WHERE module = '$name' AND name = '$block[info]'"))) { - db_query("INSERT INTO blocks (name, module, delta) VALUES ('$block[info]', '$name', '$offset')"); + db_query("INSERT INTO blocks (name, module, delta) VALUES ('$block[info]', '$name', '$delta')"); } else { - db_query("UPDATE blocks SET delta = '$offset', remove = '0' WHERE module = '$name' AND name = '$block[info]'"); + db_query("UPDATE blocks SET delta = '$delta', remove = '0' WHERE module = '$name' AND name = '$block[info]'"); } } } + db_query("DELETE FROM blocks WHERE module = '$name' AND remove = '1'"); } |