--- /dev/null
+<?php
+
+ class mw_data_sql_install extends mw_data{
+
+ function install_sql($params){
+ $env = $this->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"] : "";
+ try{
+ $sgbd->connect(
+ $host,
+ $base,
+ $user,
+ $password
+ );
+ $sgbd->select_db($base);
+ }
+ catch(Exception $e){
+ return $e->getMessage();
+ }
+ try{
+ $EXISTS =
+ $sgbd->table_exists("#--actions_roles")
+ || $sgbd->table_exists("#--config")
+ || $sgbd->table_exists("#--roles")
+ || $sgbd->table_exists("#--users")
+ || $sgbd->table_exists("#--users_roles");
+ }
+ 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 =
+ "SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\"";
+ $sgbd->query($sql);
+
+ $sql =
+ "CREATE TABLE #--actions_roles("\r
+ ." id int(11) NOT NULL AUTO_INCREMENT,"\r
+ ." `action` varchar(255) NOT NULL,"\r
+ ." id_role int(11) NOT NULL,"\r
+ ." PRIMARY KEY (id),"\r
+ ." KEY id_role(id_role)"\r
+ .") DEFAULT CHARSET=utf8";
+ $sgbd->query($sql);
+
+ $sql =
+ "CREATE TABLE #--config("\r
+ ." id int(11) NOT NULL AUTO_INCREMENT,"\r
+ ." `key` varchar(255) NOT NULL,"\r
+ ." `value` text NOT NULL,"\r
+ ." PRIMARY KEY (id)"\r
+ .") DEFAULT CHARSET=utf8";
+ $sgbd->query($sql);
+
+ $sql =
+ "CREATE TABLE #--roles("\r
+ ." id int(11) NOT NULL AUTO_INCREMENT,"\r
+ ." nom varchar(255) NOT NULL,"\r
+ ." intitule varchar(255) NOT NULL,"\r
+ ." KEY id (id)"\r
+ .") DEFAULT CHARSET=utf8";
+ $sgbd->query($sql);
+
+ $sql =
+ "CREATE TABLE #--users("\r
+ ." id int(11) NOT NULL AUTO_INCREMENT,"\r
+ ." login varchar(255) NOT NULL,"\r
+ ." password varchar(255) NOT NULL,"\r
+ ." email varchar(255) NOT NULL,"\r
+ ." PRIMARY KEY (id)"\r
+ .") DEFAULT CHARSET=utf8";
+ $sgbd->query($sql);
+
+ $sql =
+ "CREATE TABLE #--users_roles("\r
+ ." id_user int(11) NOT NULL,"\r
+ ." id_role int(11) NOT NULL,"\r
+ ." PRIMARY KEY (id_user,id_role),"\r
+ ." KEY id_role(id_role)"\r
+ .") DEFAULT CHARSET=utf8";
+ $sgbd->query($sql);
+
+ }
+ catch(Exception $e){
+ return "imposible de creer les tables en base";
+ }
+ try{
+ $sql =
+ "INSERT INTO #--actions_roles(`id`, `action`, `id_role`) VALUES"\r
+ ."(13, 'admin', 1),"\r
+ ."(14, 'users', 2),"\r
+ ."(19, 'users/identification', 0),"\r
+ ."(20, 'config', 3)";
+ $sgbd->query($sql);
+
+ $sql =
+ "INSERT INTO #--config(id, `key`, `value`) VALUES"\r
+ ."(1, 'site_name', 'mtweb'),"\r
+ ."(2, 'max_list', '10'),"\r
+ ."(3, 'description', ''),"\r
+ ."(4, 'out', 'default'),"\r
+ ."(5, 'start_action', ''),"\r
+ ."(6, 'contact_form', '0'),"\r
+ ."(8, 'email', ''),"\r
+ ."(9, 'captcha', '0'),"\r
+ ."(16, 'start_action_params', ''),"\r
+ ."(20, 'out_navig_menu_top', 'on'),"\r
+ ."(22, 'out_colonne', 'on'),"\r
+ ."(29, 'default_allow', '1')";
+ $sgbd->query($sql);
+
+ $sql =
+ "INSERT INTO #--roles(`id`, `nom`, `intitule`) VALUES"\r
+ ."(0, 'guest', 'invité'),"\r
+ ."(1, 'admin', 'administrateur'),"\r
+ ."(2, 'membre', 'membre'),"\r
+ ."(3, 'webmaster', 'webmaster')";
+ $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;
+ }
+
+ }
+
+?>
\ No newline at end of file