From 0fe8d444722e6051a10fddd9e6b01b7c4849c5de Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Thu, 13 Nov 2008 10:38:28 +0000 Subject: Create module helper and refactor all the code that creates, updates and deletes modules into it. --- core/helpers/core_installer.php | 15 ++++++-------- core/helpers/module.php | 43 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 9 deletions(-) create mode 100644 core/helpers/module.php (limited to 'core/helpers') diff --git a/core/helpers/core_installer.php b/core/helpers/core_installer.php index a3350f22..680d44a3 100644 --- a/core/helpers/core_installer.php +++ b/core/helpers/core_installer.php @@ -20,17 +20,17 @@ class core_installer { public static function install() { $db = Database::instance(); + $version = 0; try { - $base_version = ORM::factory("module")->where("name", "core")->find()->version; + $version = module::get_version("core"); } catch (Exception $e) { - if ($e->getCode() == E_DATABASE_ERROR) { - $base_version = 0; - } else { + if ($e->getCode() != E_DATABASE_ERROR) { + Kohana::log("error", $e); throw $e; } } - if ($base_version == 0) { + if ($version == 0) { $db->query("CREATE TABLE `modules` ( `id` int(9) NOT NULL auto_increment, `name` char(255) default NULL, @@ -63,10 +63,7 @@ class core_installer { @mkdir(VARPATH . $dir); } - $core = ORM::factory("module")->where("name", "core")->find(); - $core->name = "core"; - $core->version = 1; - $core->save(); + module::set_version("core", 1); $root = ORM::factory("item"); $root->type = 'album'; diff --git a/core/helpers/module.php b/core/helpers/module.php new file mode 100644 index 00000000..92077f72 --- /dev/null +++ b/core/helpers/module.php @@ -0,0 +1,43 @@ +where("name", $module_name)->find()->version; + } + + public static function set_version($module_name, $version) { + $module = ORM::factory("module")->where("name", $module_name)->find(); + if (!$module->loaded) { + $module->name = $module_name; + } + $module->version = 1; + $module->save(); + } + + public static function delete ($module_name) { + ORM::factory("module")->where("name", $module_name)->find()->delete(); + } +} -- cgit v1.2.3