env(); $data = $env->data(); $sgbd = $data->sgbd(); $host = isset($params["host"]) ? $params["host"] : ""; $base = isset($params["base"]) ? $params["base"] : ""; $user = isset($params["user"]) ? $params["user"] : ""; $password = isset($params["password"]) ? $params["password"] : ""; if(!$host || !$base) return "paramètres manquant pour la base SQLite"; if(!is_dir($host)){ $parent_dir = dirname($host); if(is_dir($parent_dir)) @mkdir($host); if(!is_dir($host)) return "impossible de créer le répertoire des données SQLite"; } try{ $sgbd->connect( $host, $base, $user, $password ); $sgbd->select_db($base); } catch(Exception $e){ return $e->getMessage(); } if(!($version = $env->version("mtweb"))){ return "impossible de lire la version de mtweb"; } try{ $EXISTS = $sgbd->table_exists("#--actions_roles") || $sgbd->table_exists("#--config") || $sgbd->table_exists("#--roles") || $sgbd->table_exists("#--users") || $sgbd->table_exists("#--users_roles") || $sgbd->table_exists("#--versions"); } catch(Exception $e){ return "impossible de savoir si les tables existent deja"; } if($EXISTS){ return "des tables a installer existent deja en base. installation annulee"; } try{ $sql = "CREATE TABLE #--actions_roles(" ." id INTEGER PRIMARY KEY AUTOINCREMENT," ." `action` TEXT NOT NULL," ." id_role INTEGER NOT NULL" .")"; $sgbd->query($sql); $sql = "CREATE TABLE #--config(" ." id INTEGER PRIMARY KEY AUTOINCREMENT," ." `key` TEXT NOT NULL," ." `value` TEXT NOT NULL" .")"; $sgbd->query($sql); $sql = "CREATE TABLE #--roles(" ." id INTEGER PRIMARY KEY AUTOINCREMENT," ." nom TEXT NOT NULL," ." intitule TEXT NOT NULL" .")"; $sgbd->query($sql); $sql = "CREATE TABLE #--users(" ." id INTEGER PRIMARY KEY AUTOINCREMENT," ." login TEXT NOT NULL," ." password TEXT NOT NULL," ." email TEXT NOT NULL" .")"; $sgbd->query($sql); $sql = "CREATE TABLE #--users_roles(" ." id INTEGER PRIMARY KEY AUTOINCREMENT," ." id_user INTEGER NOT NULL," ." id_role INTEGER NOT NULL" .")"; $sgbd->query($sql); $sql = "CREATE TABLE #--versions(" ." id INTEGER PRIMARY KEY AUTOINCREMENT," ." application TEXT NOT NULL," ." version TEXT NOT NULL" .")"; $sgbd->query($sql); } catch(Exception $e){ return "imposible de creer les tables en base. ".$e->getMessage(); } try{ $sql = "INSERT INTO #--actions_roles (`id`, `action`, `id_role`) VALUES (13, 'admin', 1)"; $sgbd->query($sql); $sql = "INSERT INTO #--actions_roles (`id`, `action`, `id_role`) VALUES (14, 'users', 2)"; $sgbd->query($sql); $sql = "INSERT INTO #--actions_roles (`id`, `action`, `id_role`) VALUES (19, 'users/identification', 0)"; $sgbd->query($sql); $sql = "INSERT INTO #--actions_roles (`id`, `action`, `id_role`) VALUES (20, 'config', 3)"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (1, 'site_name', 'mtweb')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (2, 'max_list', '10')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (3, 'description', '')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (4, 'out', 'default')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (5, 'start_action', '')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (6, 'contact_form', '0')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (8, 'email', '')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (9, 'captcha', '0')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (16, 'start_action_params', '')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (20, 'out_navig_menu_top', 'on')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (22, 'out_colonne', 'on')"; $sgbd->query($sql); $sql = "INSERT INTO #--config(id, `key`, `value`) VALUES (29, 'default_allow', '1')"; $sgbd->query($sql); $sql = "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES (0, 'guest', 'invité')"; $sgbd->query($sql); $sql = "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES (1, 'admin', 'administrateur')"; $sgbd->query($sql); $sql = "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES (2, 'membre', 'membre')"; $sgbd->query($sql); $sql = "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES (3, 'webmaster', 'webmaster')"; $sgbd->query($sql); $sql = "INSERT INTO #--versions(`application`, `version`) VALUES ('mtweb', ".$this->eq($version).")"; $sgbd->query($sql); } catch(Exception $e){ return "les tables ont ete ajoutees en base mais impossible d'y enregistrer les valeurs par defaut."; } return true; } }