From 8ec0e8471f424ead77a335277d86706c4b6d3add Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 18 Jan 2009 09:06:46 +0000 Subject: Drag and drop in the admin dashboard now saves the location. * Make block_adder a real block * Suppress the "close" link on block_adder * Move the drag/drop JS into the core code out of the admin theme --- core/helpers/block_manager.php | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'core/helpers/block_manager.php') diff --git a/core/helpers/block_manager.php b/core/helpers/block_manager.php index d7a2aca9..724f1927 100644 --- a/core/helpers/block_manager.php +++ b/core/helpers/block_manager.php @@ -18,20 +18,24 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class block_manager_Core { - static function get_active() { - return unserialize(module::get_var("core", "blocks", "a:0:{}")); + static function get_active($location) { + return unserialize(module::get_var("core", "blocks_$location", "a:0:{}")); + } + + static function set_active($location, $blocks) { + module::set_var("core", "blocks_$location", serialize($blocks)); } static function add($location, $module_name, $block_id) { - $blocks = self::get_active(); - $blocks[$location][rand()] = array($module_name, $block_id); - module::set_var("core", "blocks", serialize($blocks)); + $blocks = self::get_active($location); + $blocks[rand()] = array($module_name, $block_id); + self::set_active($location, $blocks); } static function remove($location, $block_id) { - $blocks = self::get_active(); - unset($blocks[$location][$block_id]); - module::set_var("core", "blocks", serialize($blocks)); + $blocks = self::get_active($location); + unset($blocks[$block_id]); + self::set_active($location, $blocks); } static function get_available() { @@ -49,12 +53,8 @@ class block_manager_Core { } static function get_html($location) { - $active = self::get_active(); - if (empty($active[$location])) { - return; - } - - foreach ($active[$location] as $id => $desc) { + $active = self::get_active($location); + foreach ($active as $id => $desc) { if (method_exists("$desc[0]_block", "get")) { $block = call_user_func(array("$desc[0]_block", "get"), $desc[1]); $block->id = $id; @@ -64,4 +64,3 @@ class block_manager_Core { return $result; } } - -- cgit v1.2.3