getCode() != E_DATABASE_ERROR) { Kohana::log("error", $e); throw $e; } } if ($version == 0) { $db->query("CREATE TABLE `access_caches` ( `id` int(9) NOT NULL auto_increment, `item_id` int(9), PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $db->query("CREATE TABLE `access_intents` ( `id` int(9) NOT NULL auto_increment, `item_id` int(9), PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $db->query("CREATE TABLE `items` ( `id` int(9) NOT NULL auto_increment, `type` char(32) NOT NULL, `title` char(255) default NULL, `description` char(255) default NULL, `name` char(255) default NULL, `mime_type` char(64) default NULL, `left` int(9) NOT NULL, `right` int(9) NOT NULL, `parent_id` int(9) NOT NULL, `level` int(9) NOT NULL, `width` int(9) default NULL, `height` int(9) default NULL, `thumbnail_width` int(9) default NULL, `thumbnail_height` int(9) default NULL, `resize_width` int(9) default NULL, `resize_height` int(9) default NULL, `owner_id` int(9) default NULL, PRIMARY KEY (`id`), KEY `parent_id` (`parent_id`), KEY `type` (`type`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $db->query("CREATE TABLE `modules` ( `id` int(9) NOT NULL auto_increment, `name` char(255) default NULL, `version` int(9) default NULL, PRIMARY KEY (`id`), UNIQUE KEY(`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $db->query("CREATE TABLE `permissions` ( `id` int(9) NOT NULL auto_increment, `name` char(255) default NULL, `version` int(9) default NULL, PRIMARY KEY (`id`), UNIQUE KEY(`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $db->query("CREATE TABLE `vars` ( `id` int(9) NOT NULL auto_increment, `module_id` int(9), `name` char(255) NOT NULL, `value` text, PRIMARY KEY (`id`), UNIQUE KEY(`module_id`, `name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); foreach (array("albums", "resizes") as $dir) { @mkdir(VARPATH . $dir); } access::register_permission("view"); access::register_permission("edit"); $root = ORM::factory("item"); $root->type = 'album'; $root->title = "Gallery"; $root->description = "Welcome to your Gallery3"; $root->left = 1; $root->right = 2; $root->parent_id = 0; $root->level = 1; $root->set_thumbnail(DOCROOT . "core/tests/test.jpg", 200, 200) ->save(); access::add_item($root); // Save this before setting vars so that module id is set module::set_version("core", 1); module::set_var("core", "active_theme", "default"); module::set_var("core", "active_admin_theme", "admin_default"); module::set_var("core", "page_size", 9); module::set_var("core", "thumbnail_size", 200); module::set_var("core", "resize_size", 640); } } public static function uninstall() { $db = Database::instance(); $db->query("DROP TABLE IF EXISTS `access_caches`;"); $db->query("DROP TABLE IF EXISTS `access_intents`;"); $db->query("DROP TABLE IF EXISTS `permissions`;"); $db->query("DROP TABLE IF EXISTS `items`;"); $db->query("DROP TABLE IF EXISTS `modules`;"); // @todo remove before release $db->query("DROP TABLE IF EXISTS `parameters`;"); // @todo-end $db->query("DROP TABLE IF EXISTS `vars`;"); system("/bin/rm -rf " . VARPATH . "albums"); system("/bin/rm -rf " . VARPATH . "resizes"); } }