<?php
session_start();
include './function.php';


if ((isset($_GET['e'])) or ($_GET['e'])) {
    $e = $_GET['e'];
} elseif ((isset($_POST['e'])) or ($_POST['e'])) {
    $e = $_POST['e'];
} else {
    $e = 1;
}

$img_ok = '<img src="../admin/images/1.png" alt="ok" title="ok" />';
$img_er = '<img src="../admin/images/0.png" alt="erreur" title="erreur" />';
$html   = '';

switch ($e) {
/** ------------------------------------------------------------------------------------------------------------------------
 * Verification des droits des fichiers / repertoires
 */
case 1:
    $html .= '<h3>Verification des droits</h3>';
    
    $file = array('images/product' => '777',
                  'images/product_big' => '777',
                  'images/product_int' => '777',
                  'images/product_mini' => '777',
                  'tpl/cache' => '777',
                  'tpl/template_c' => '777');

    foreach ($file as $fichier => $droits) {
        $f = alt_stat('../'.$fichier);
        if ($f['perms']['octal1'] == $droits) {
            $html .= $img_ok.' '.$fichier.'<br>';
            $err[] = false;
        } else {
            $html .= $img_er.' '.$fichier.' - droits actuel : <b style="color: red;">'.$f['perms']['octal1'].'</b>, devrait etre en '.$droits.'<br>';
            $err[] = true;
        }
    }

    if (array_search(true, $err) === false) {
        $html .= '<br /><a href="?e=2">Etape suivante</a>';
        $_SESSION['etape'][] = true;
    } else {
        $html .= '<br />Effectuer les modifs et <a href="?e=1">reverifier</a>'; 
        $_SESSION['etape'][] = false;
    }
    break;

/** ------------------------------------------------------------------------------------------------------------------------
 * Base de donnees - formulaire de creation
 */
case 2:
    if (array_search(true, $_SESSION['etape']) === false) {
        header('Location: ?e=1');
    }

    switch ($_GET['err']) {
    case '0':
        $html .= '<p class="error">Erreur : <br />Serveur, identifiant ou mot de passe non renseignes !</p>';
        break;

    case '1':
        $html .= '<p class="error">Erreur : connexion impossible<br />Serveur, identifiant ou mot de passe incorrect !</p>';
        break;

    case '2':
        $html .= '<p class="error">Erreur : connexion ok mais impossible de creer la database !</p>';
        break;

    case '3':
        $html .= '<p class="error">Erreur : connexion ok mais database non trouvee !</p>';
        break;

    case '4':
        $html .= '<p class="error">Erreur : erreur SQL au chargement du fichier database.sql !</p>';
        break;
    
    default:
        $html .= '';
    }

    $html .= '
    <h3>Base de donnees</h3>
    <form action="install.php" method="post" name="form1">
      <fieldset>
        <input type="hidden" name="e" value="3" />
        <input type="radio" name="action" value="0" /> Creer une database<br />
        <input type="radio" name="action" value="1" checked="checked" /> Utiliser une database existante<br />
        server : <input type="text" name="host" size="20" value="localhost" /><br />
        username : <input type="text" name="user" size="20" /><br />
        password : <input type="password" name="pass" size="20" /><br />
        database : <input type="text" name="data" size="20" /><br />
        <a href="#" onClick="document.form1.submit()">Etape suivante</a>
      </fieldset>
    </form>';
    break;

/** ------------------------------------------------------------------------------------------------------------------------
 * Base de donnees - creation ou chargement de la structure et des donnees de base
 */
case 3:
    if (($_POST['host']) and ($_POST['user']) and ($_POST['data'])) {
        $html .= '<h3>Base de donnees</h3><pre>';

        /**
         * Test de la connexion
         */
        if ($_POST['pass']) {
            $pass = $_POST['pass'];
        } else {
            $pass = '';
        }

        $cnx = @mysql_connect($_POST['host'], $_POST['user'], $pass);

        if (!$cnx) {
            header('Location: ?e=2&err=1');
        } else {
            $html .= $img_ok.' Connexion au serveur <b>'.$_POST['host'].'</b>'."\r";
        }

        if ($_POST['action'] == '0') {
            /**
             * Creation de la database
             */
            if (mysql_query('CREATE DATABASE '.$_POST['data'], $cnx) == false) {
                header('Location: ?e=2&err=2');
            } else {
                $html .= $img_ok.' Creation de la base <b>'.$_POST['data'].'</b>'."\r";
            }
        }

        /**
         * Chargement de la structure
         */
        if (mysql_select_db($_POST['data'], $cnx)) {
            $html .= $img_ok.' Selection de la base <b>'.$_POST['data'].'</b>'."\r";
            load_database('./database.sql');
            $html .= $img_ok.' Chargement de la structure des tables'."\r";
            load_database('./data_geo.sql');
            $html .= $img_ok.' Chargement des donnees de base'."\r";
            $_SESSION['database'] = array('host' => $_POST['host'], 'user' => $_POST['user'], 'pass' => $_POST['pass'], 'data' => $_POST['data']);
        }

        /**
         * Chargement des procedures
         */
        /*if(load_proc('./procedures.sql') == false)*/
        
        $aa = 1;
 /*       if($aa = 1)
          {
            $html .= $img_er.' Changement des procedures<br> ---> <b style="color: red;">'.mysql_error().'</b>
            </pre>';
          } 
     else {
            $html .= $img_ok.' Changement des procedures
            </pre><a href="?e=4">Etape suivante</a>';
          }*/
          $html .= $img_ok.' Changement des procedures
            </pre><a href="?e=4">Etape suivante</a>';
          
          
    } else {
        header('Location: ?e=2&err=0');
    }
    break;

/** ------------------------------------------------------------------------------------------------------------------------
 * Formulaire de saisie pour les infos du fichier config.php
 */
case 4:
    $html .= '<h3>Enregistrement des parametres de connexion</h3>
    <form action="install.php" method="post" name="form2">
      <fieldset>
        <input type="hidden" name="e" value="5" />
        Adresse de la boutique : http://<input type="text" name="adresse" size="30" /><br />
        Adresse mail de l\'admin : <input type="text" name="mail" size="30" /><br />
        Adresse a afficher dans les mails automatique : <input type="text" name="from" size="30" /><br />
        <a href="#" onClick="document.form2.submit()">Etape suivante</a>
      </fieldset>
    </form>';

    break;

/** ------------------------------------------------------------------------------------------------------------------------
 * Generation du fichier config.php
 */
case 5:
    $html .= '<h3>Enregistrement des parametres de connexion</h3>';

    $p = $_SERVER['SCRIPT_FILENAME'];
    $path = substr($p, 0, strripos($p, '/') - 8);

    $f = fopen('../config.php', 'w+');
$data = '<?php
$cfg[\'param\'][\'domain_name\'] = \''.$_POST['adresse'].'\';
$cfg[\'param\'][\'apps_name\']   = \'PhpMyShopping\';
$cfg[\'param\'][\'log_level\']   = 0;
$cfg[\'database\'][\'host\']     = \''.$_SESSION['database']['host'].'\';
$cfg[\'database\'][\'data\']     = \''.$_SESSION['database']['data'].'\';
$cfg[\'database\'][\'user\']     = \''.$_SESSION['database']['user'].'\';
$cfg[\'database\'][\'pass\']     = \''.$_SESSION['database']['pass'].'\';
$cfg[\'url\'][\'root\']          = \'http://'.$_POST['adresse'].'\';
$cfg[\'mail\'][\'mail_0\']       = \''.$_POST['mail'].'\';
$cfg[\'mail\'][\'mail_1\']       = \''.$_POST['mail'].'\';
$cfg[\'mail\'][\'mail_2\']       = \''.$_POST['mail'].'\';
$cfg[\'mail\'][\'from\']         = \''.$_POST['from'].'\';
?>';

    fwrite($f, $data);
    fclose($f);

    $html .= '
    <p>Parametres correctement enregistres dans le fichier <b>config.php</b></p>
    <a href="?e=6">Etape suivante</a>';
    break;

/** ------------------------------------------------------------------------------------------------------------------------
 * Finalisation
 */
case 6:
    $html .= 'Installation terminee<br />
    Voir la <a href="../">Boutique</a><br />
    Allez sur <a href="../admin/">l\'interface d\'administration</a> [user : admin / password : admin]<br />';
    break;

default:
    hreader('Location: ?e=1');
}

//echo '<pre>';
//print_r($_SESSION['database']);
?>

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
  <title>PhpMyShopping - Installation</title>
  <link href="./style.css" rel="stylesheet" type="text/css" media="screen" title="Defaut" />
</head>
<body>

<?php
echo $html;
?>

</body>
</html>