public attr / function, constructeurs __construct
[mtweb] / mw / app / data / modules / sql / mw_data_sqlite_install.php
1 <?php
2
3   class mw_data_sqlite_install extends mw_data{
4
5     public function install_sqlite($params){
6       $env = $this->env();
7       $data = $env->data();
8       $sgbd = $data->sgbd();
9       $host = isset($params["host"]) ? $params["host"] : "";
10       $base = isset($params["base"]) ? $params["base"] : "";
11       $user = isset($params["user"]) ? $params["user"] : "";
12       $password = isset($params["password"]) ? $params["password"] : "";
13       if(!$host || !$base) return "paramètres manquant pour la base SQLite";
14       if(!is_dir($host)){
15         $parent_dir = dirname($host);
16         if(is_dir($parent_dir)) @mkdir($host);
17         if(!is_dir($host)) return "impossible de créer le répertoire des données SQLite";
18       }
19       try{
20         $sgbd->connect(
21           $host,
22           $base,
23           $user,
24           $password
25         );
26         $sgbd->select_db($base);
27       }
28       catch(Exception $e){
29         return $e->getMessage();
30       }
31       if(!($version = $env->version("mtweb"))){
32         return "impossible de lire la version de mtweb";
33       }
34       try{
35         $EXISTS =
36             $sgbd->table_exists("#--actions_roles")
37         ||  $sgbd->table_exists("#--config")
38         ||  $sgbd->table_exists("#--roles")
39         ||  $sgbd->table_exists("#--users")
40         ||  $sgbd->table_exists("#--users_roles")
41         ||  $sgbd->table_exists("#--versions");
42       }
43       catch(Exception $e){
44         return "impossible de savoir si les tables existent deja";
45       }
46       if($EXISTS){
47         return "des tables a installer existent deja en base. installation annulee";
48       }
49       try{
50
51         $sql =
52           "CREATE TABLE #--actions_roles("\r
53         ." id INTEGER PRIMARY KEY AUTOINCREMENT,"
54         ." `action` TEXT NOT NULL,"\r
55         ." id_role INTEGER NOT NULL"\r
56         .")";
57         $sgbd->query($sql);
58
59         $sql =
60          "CREATE TABLE #--config("\r
61         ." id INTEGER PRIMARY KEY AUTOINCREMENT,"\r
62         ."  `key` TEXT NOT NULL,"\r
63         ."  `value` TEXT NOT NULL"\r
64         .")";
65         $sgbd->query($sql);
66
67         $sql =
68          "CREATE TABLE #--roles("\r
69         ." id INTEGER PRIMARY KEY AUTOINCREMENT,"\r
70         ."  nom TEXT NOT NULL,"\r
71         ."  intitule TEXT NOT NULL"\r
72         .")";
73         $sgbd->query($sql);
74
75         $sql =
76          "CREATE TABLE #--users("\r
77         ." id INTEGER PRIMARY KEY AUTOINCREMENT,"\r
78         ."  login TEXT NOT NULL,"\r
79         ."  password TEXT NOT NULL,"\r
80         ."  email TEXT NOT NULL"\r
81         .")";
82         $sgbd->query($sql);
83
84         $sql =
85          "CREATE TABLE #--users_roles("\r
86         ." id INTEGER PRIMARY KEY AUTOINCREMENT,"\r
87         ."  id_user INTEGER NOT NULL,"\r
88         ."  id_role INTEGER NOT NULL"
89         .")";
90         $sgbd->query($sql);
91
92         $sql =
93          "CREATE TABLE #--versions("
94         ." id INTEGER PRIMARY KEY AUTOINCREMENT,"
95         ."  application TEXT NOT NULL,"
96         ."  version TEXT NOT NULL"
97         .")";
98         $sgbd->query($sql);
99
100       }
101       catch(Exception $e){
102         return "imposible de creer les tables en base. ".$e->getMessage();
103       }
104       try{
105         $sql =
106          "INSERT INTO #--actions_roles (`id`, `action`, `id_role`) VALUES (13, 'admin', 1)";\r
107         $sgbd->query($sql);
108         $sql =
109          "INSERT INTO #--actions_roles (`id`, `action`, `id_role`) VALUES (14, 'users', 2)";
110         $sgbd->query($sql);
111         $sql =
112          "INSERT INTO #--actions_roles (`id`, `action`, `id_role`) VALUES (19, 'users/identification', 0)";
113         $sgbd->query($sql);
114         $sql =
115          "INSERT INTO #--actions_roles (`id`, `action`, `id_role`) VALUES (20, 'config', 3)";\r
116         $sgbd->query($sql);
117
118         $sql =
119          "INSERT INTO #--config(id, `key`, `value`) VALUES (1, 'site_name', 'mtweb')";\r
120         $sgbd->query($sql);
121         $sql =
122          "INSERT INTO #--config(id, `key`, `value`) VALUES (2, 'max_list', '10')";
123         $sgbd->query($sql);
124         $sql =
125          "INSERT INTO #--config(id, `key`, `value`) VALUES (3, 'description', '')";\r
126         $sgbd->query($sql);
127         $sql =
128          "INSERT INTO #--config(id, `key`, `value`) VALUES (4, 'out', 'default')";
129         $sgbd->query($sql);
130         $sql =
131          "INSERT INTO #--config(id, `key`, `value`) VALUES (5, 'start_action', '')";\r
132         $sgbd->query($sql);
133         $sql =
134          "INSERT INTO #--config(id, `key`, `value`) VALUES (6, 'contact_form', '0')";
135         $sgbd->query($sql);
136         $sql =
137          "INSERT INTO #--config(id, `key`, `value`) VALUES (8, 'email', '')";\r
138         $sgbd->query($sql);
139         $sql =
140          "INSERT INTO #--config(id, `key`, `value`) VALUES (9, 'captcha', '0')";
141         $sgbd->query($sql);
142         $sql =
143          "INSERT INTO #--config(id, `key`, `value`) VALUES (16, 'start_action_params', '')";\r
144         $sgbd->query($sql);
145         $sql =
146          "INSERT INTO #--config(id, `key`, `value`) VALUES (20, 'out_navig_menu_top', 'on')";
147         $sgbd->query($sql);
148         $sql =
149          "INSERT INTO #--config(id, `key`, `value`) VALUES (22, 'out_colonne', 'on')";\r
150         $sgbd->query($sql);
151         $sql =
152          "INSERT INTO #--config(id, `key`, `value`) VALUES (29, 'default_allow', '1')";
153         $sgbd->query($sql);
154
155         $sql =
156          "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES (0, 'guest', 'invité')";\r
157         $sgbd->query($sql);
158         $sql =
159          "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES (1, 'admin', 'administrateur')";
160         $sgbd->query($sql);
161         $sql =
162          "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES (2, 'membre', 'membre')";
163         $sgbd->query($sql);
164         $sql =
165          "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES (3, 'webmaster', 'webmaster')";
166         $sgbd->query($sql);
167
168         $sql =
169          "INSERT INTO #--versions(`application`, `version`) VALUES ('mtweb', ".$this->eq($version).")";
170         $sgbd->query($sql);
171
172       }
173       catch(Exception $e){
174         return "les tables ont ete ajoutees en base mais impossible d'y enregistrer les valeurs par defaut.";
175       }
176       return true;
177     }
178
179   }