<?php global $DEB; $DEB = new Debby("test.db", "", "", "sqlite3", "YYYY-mm-dd"); Ruth::setOBJECT("DEB", $DEB);
/** * Create a database connection for Kim to use. */ function __construct() { $this->createDB = false; if (!file_exists(realpath(__DIR__ . "/../") . "/kim.db")) { $this->createDB = true; } $this->KIM = new Debby(realpath(__DIR__ . "/../") . "/kim.db", $username = "", $password = "", $dbtype = "sqlite3", $outputdateformat = "YYYY-mm-dd", "KIM"); Ruth::setOBJECT("KIM", $this->KIM); /** * Check if we need to be creating the database for the menus */ if ($this->createDB) { $this->createDatabase(); } if (Ruth::getOBJECT("DEB")) { if (!file_exists(Ruth::getDOCUMENT_ROOT() . "/migrations/19000101100000 initial_kim_global_settings.sql") || !file_exists(Ruth::getDOCUMENT_ROOT() . "/migrations/19000101100001 initial_kim_content_table.sql")) { $sqlGlobalSettings = "create table global_setting (\n global_setting_id integer default 0 not null,\n global_name varchar (100) default 'ENVIRONMENT',\n global_value varchar (200) default 'Development',\n description text default '',\n created timestamp default 'now',\n updated timestamp default 'now',\n primary key (global_setting_id)\n );"; file_put_contents(Ruth::getDOCUMENT_ROOT() . "/migrations/19000101100000 initial_kim_global_settings.sql", $sqlGlobalSettings); $sqlContentTable = "create table content (\n content_id integer default 0 not null,\n title varchar (200) default '',\n description varchar (1000) default '',\n content blob,\n status varchar (20) default 'Active',\n order_index integer default 0,\n primary key (content_id)\n )"; file_put_contents(Ruth::getDOCUMENT_ROOT() . "/migrations/19000101100001 initial_kim_content_table.sql", $sqlContentTable); } } //Add the default routes for Kim Ruth::addRoute(RUTH_GET, "/kim/logout", function () { Ruth::setSESSION("KIM", ["loggedin" => 0]); Ruth::redirect("/kim/login"); }); Ruth::addRoute(RUTH_GET, "/kim/menu/get/{menuId}", function ($menuId) { echo (new Kim())->getMenuItemForm($menuId); }); Ruth::addRoute(RUTH_GET, "/kim/menu/{controller}", function ($controller) { switch ($controller) { case "menu_tree": echo (new Kim())->getMenuTree(); break; case "insert": echo (new Kim())->getInsertMenuItemForm(); break; default: echo "{$controller} not found"; break; } }); Ruth::addRoute(RUTH_POST, "/kim/menu/{controller}", function ($controller) { switch ($controller) { case "menu_list": echo (new Kim())->getMenuList(); break; case "insert": echo (new Kim())->insertMenuItem(); echo (new Kim())->getMenuTree(); break; case "delete": echo (new Kim())->deleteMenuItem(); break; case "update": echo (new Kim())->updateMenuItem(); echo (new Kim())->getMenuTree(); break; default: echo "{$controller} not found"; break; } }); Ruth::addRoute(RUTH_GET, "/kim/*", function () { (new Kim())->display(); }); Ruth::addRoute(RUTH_POST, "/kim/*", function () { (new Kim())->updatePOST(); }); }