19a8a8d8b9412a431dc642a01f752a6bf991d672
[mtweb] / mw / app / data / modules / sql / mw_data_sql_install.php
1 <?php
2
3   class mw_data_sql_install extends mw_data{
4
5     function install_sql($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       try{
14         $sgbd->connect(
15           $host,
16           $base,
17           $user,
18           $password
19         );
20         $sgbd->select_db($base);
21       }
22       catch(Exception $e){
23         return $e->getMessage();
24       }
25       try{
26         $EXISTS =
27             $sgbd->table_exists("#--actions_roles")
28         ||  $sgbd->table_exists("#--config")
29         ||  $sgbd->table_exists("#--roles")
30         ||  $sgbd->table_exists("#--users")
31         ||  $sgbd->table_exists("#--users_roles");
32       }
33       catch(Exception $e){
34         return "impossible de savoir si les tables existent deja";
35       }
36       if($EXISTS){
37         return "des tables a installer existent deja en base. installation annulee";
38       }
39       try{
40
41         $sql =
42          "SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\"";
43         $sgbd->query($sql);
44
45         $sql =
46           "CREATE TABLE #--actions_roles("\r
47         ." id int(11) NOT NULL AUTO_INCREMENT,"\r
48         ." `action` varchar(255) NOT NULL,"\r
49         ." id_role int(11) NOT NULL,"\r
50         ." PRIMARY KEY (id),"\r
51         ." KEY id_role(id_role)"\r
52         .") DEFAULT CHARSET=utf8";
53         $sgbd->query($sql);
54
55         $sql =
56          "CREATE TABLE #--config("\r
57         ."  id int(11) NOT NULL AUTO_INCREMENT,"\r
58         ."  `key` varchar(255) NOT NULL,"\r
59         ."  `value` text NOT NULL,"\r
60         ."  PRIMARY KEY (id)"\r
61         .") DEFAULT CHARSET=utf8";
62         $sgbd->query($sql);
63
64         $sql =
65          "CREATE TABLE #--roles("\r
66         ."  id int(11) NOT NULL AUTO_INCREMENT,"\r
67         ."  nom varchar(255) NOT NULL,"\r
68         ."  intitule varchar(255) NOT NULL,"\r
69         ."  KEY id (id)"\r
70         .") DEFAULT CHARSET=utf8";
71         $sgbd->query($sql);
72
73         $sql =
74          "CREATE TABLE #--users("\r
75         ."  id int(11) NOT NULL AUTO_INCREMENT,"\r
76         ."  login varchar(255) NOT NULL,"\r
77         ."  password varchar(255) NOT NULL,"\r
78         ."  email varchar(255) NOT NULL,"\r
79         ."  PRIMARY KEY (id)"\r
80         .") DEFAULT CHARSET=utf8";
81         $sgbd->query($sql);
82
83         $sql =
84          "CREATE TABLE #--users_roles("\r
85         ."  id_user int(11) NOT NULL,"\r
86         ."  id_role int(11) NOT NULL,"\r
87         ."  PRIMARY KEY (id_user,id_role),"\r
88         ."  KEY id_role(id_role)"\r
89         .") DEFAULT CHARSET=utf8";
90         $sgbd->query($sql);
91
92       }
93       catch(Exception $e){
94         return "imposible de creer les tables en base";
95       }
96       try{
97         $sql =
98          "INSERT INTO #--actions_roles(`id`, `action`, `id_role`) VALUES"\r
99         ."(13, 'admin', 1),"\r
100         ."(14, 'users', 2),"\r
101         ."(19, 'users/identification', 0),"\r
102         ."(20, 'config', 3)";
103         $sgbd->query($sql);
104
105         $sql =
106          "INSERT INTO #--config(id, `key`, `value`) VALUES"\r
107         ."(1, 'site_name', 'mtweb'),"\r
108         ."(2, 'max_list', '10'),"\r
109         ."(3, 'description', ''),"\r
110         ."(4, 'out', 'default'),"\r
111         ."(5, 'start_action', ''),"\r
112         ."(6, 'contact_form', '0'),"\r
113         ."(8, 'email', ''),"\r
114         ."(9, 'captcha', '0'),"\r
115         ."(16, 'start_action_params', ''),"\r
116         ."(20, 'out_navig_menu_top', 'on'),"\r
117         ."(22, 'out_colonne', 'on'),"\r
118         ."(29, 'default_allow', '1')";
119         $sgbd->query($sql);
120
121         $sql =
122          "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES"\r
123         ."(0, 'guest', 'invité'),"\r
124         ."(1, 'admin', 'administrateur'),"\r
125         ."(2, 'membre', 'membre'),"\r
126         ."(3, 'webmaster', 'webmaster')";
127         $sgbd->query($sql);
128
129       }
130       catch(Exception $e){
131         return "les tables ont ete ajoutees en base mais impossible d'y enregistrer les valeurs par defaut.";
132       }
133       return true;
134     }
135
136   }
137
138 ?>