commit masivo.
[ecomupi.git] / instalar.php
bloba69e1cb3258a1becfda4512b8254e77f4ff87eb3
1 <?php
2 if( !file_exists("include/data.php") ) {
3 if ( @!chmod("include/", 0777) ) exit ("woops!, 'include/data.php' no existe e include/ no pudo ser Chmodeado");
4 if ( @!touch ("include/data.php") ) exit ("woops!, 'include/data.php' no existe y no pudo ser creado");
6 require_once("include/const.php");
7 error_reporting(E_STRICT | E_ALL);
9 function CREAR_TBL($TBL,$QUERY) {
10 global $link;
11 if ( isset($_POST['reiniciar']) ) {
12 @mysql_query("DROP TABLE IF EXISTS $TBL;", $link) or die('!->No se pudo eliminar la tabla "'.$TBL.'".<br /><pre>' . mysql_error() . '</pre>');
14 $QUERY = "CREATE TABLE IF NOT EXISTS ". $TBL . " (" . $QUERY . ");";
15 $x = @mysql_query($QUERY, $link) or die('!->No se pudo crear la tabla "'. $TBL .'".<br /><pre>' . mysql_error() . '</pre>');
16 if ($x) {echo "- Creada: '$TBL'<br />";}
19 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
20 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
21 <head>
22 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
23 <meta http-equiv="Content-Style-type" content="text/css" />
24 <meta http-equiv="Content-Script-type" content="text/javascript" />
25 <meta http-equiv="Content-Language" content="es" />
26 <link rel="StyleSheet" href="estilo.css" type="text/css" />
27 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
28 <link rel="start" href="/" />
29 <title>Instalador de MUPI</title>
30 </head>
31 <body>
32 <div id="centerwrapper">
33 <div id="content">
36 $DB_motor = isset($DB_motor) ? $DB_motor : "localhost";
37 $DB_usuario = isset($DB_usuario) ? $DB_usuario : "";
38 $DB_base = isset($DB_base) ? $DB_base : "";
39 $MapKey = isset($MapKey) ? $MapKey : "";
40 if (!isset($_POST['instalar'])) {
41 echo '<h1>'._NOMBRE_.' - Instalador</h1><br />
42 <form action="'. $_SERVER['PHP_SELF'] .'" method="post">
43 <table border="0">
44 <tr><td colspan="2"><h2>Configuración MySQL</h2></td></tr>
45 <tr>
46 <td>Dirección del servidor MySQL:</td>
47 <td><input type="text" name="motor" maxlength="100" size="20" value="localhost" /></td>
48 </tr>
49 <tr>
50 <td>Base de datos a utilizar:</td>
51 <td><input type="text" name="base" maxlength="100" size="20" value="'.$DB_base.'" /></td>
52 </tr>
53 <tr>
54 <td>Usuario:</td>
55 <td><input type="text" name="usuario" maxlength="100" size="20" value="'.$DB_usuario.'" /></td>
56 </tr>
57 <tr>
58 <td>Clave:</td>
59 <td><input type="password" name="clave" maxlength="30" size="20" value="" /></td>
60 </tr>
61 <tr><td colspan="2"><h2>Google Maps</h2></td></tr>
62 <tr>
63 <tr><td colspan="2"><blockquote>Puede utilizar la siguiente Google Map API Key si es una instalación en Localhost:<br />ABQIAAAASN5hkWhvednkFD23rB1SbBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSp-JAzoCx9P7_e-8fs8e7L37rPSw</blockquote></td></tr>
64 <td>Google Map API Key:</td>
65 <td><input type="text" name="MapKey" maxlength="100" size="20" value="'.$MapKey.'" /></td>
66 </tr>
67 <tr><td colspan="2"><h2>Administración</h2></td></tr>
68 <tr>
69 <td>Nombre Administrador:</td>
70 <td><input type="text" name="admin" maxlength="100" size="20" value="" /></td>
71 </tr>
72 <tr>
73 <td>Correo electrónico:</td>
74 <td><input type="text" name="email" maxlength="100" size="20" value="" /></td>
75 </tr>
76 <tr>
77 <td>Clave:</td>
78 <td><input type="password" name="admin_clave" maxlength="20" size="20" value="" /></td>
79 </tr>
80 <tr>
81 <td>Clave (repetir):</td>
82 <td><input type="password" name="admin_clave2" maxlength="20" size="20" value="" /></td>
83 </tr>
84 </table>
85 <br />
86 <input type="checkbox" name="reiniciar" value="" />Destruir tablas si existen
87 <br />
88 <input type="submit" name="instalar" value="Instalar" />
89 </form>
91 } else {
92 echo '<b>'._NOMBRE_.' - Instalador : Instalando</b><br />';
93 if ($_POST['admin_clave'] != $_POST['admin_clave2']) {
94 echo '<h3>+Las contraseñas no coinciden.</h3><br />
95 <a href="javascript:history.back();">Regresar al instalador</a>';
97 echo '<h3>+Creando conexión a la base de datos...</h3><br />';
98 $link = @mysql_connect($_POST['motor'], $_POST['usuario'], $_POST['clave']) or die('Por favor revise sus datos, puesto que se produjo el siguiente error:<br /><pre>' . mysql_error() . '</pre>');
99 mysql_select_db($_POST['base'], $link) or die('!->La base de datos seleccionada "'.$_POST['base'].'" no existe');
100 echo '- Base de datos conectada...<br />';
101 echo '<h3>+Creando Archivo con datos de conexión...</h3><br />';
102 $fh = @fopen("include/data.php", 'w') or die("No se pudo escribir 'data.php'.<br />");
103 if ($fh) {
104 $Datos = "<?php ";
105 fwrite($fh, $Datos);
106 $Datos = '$DB_motor = "'. $_POST['motor'] .'";' . '$DB_usuario = "'. $_POST['usuario'] . '";'. '$DB_clave = "'. $_POST['clave'] .'";' . '$DB_base = "'. $_POST['base'] .'";' . '$MapKey = "'. $_POST['MapKey'] .'";';
107 fwrite($fh, $Datos);
108 $Datos = " ?>\n";
109 fwrite($fh, $Datos);
110 fclose($fh);
112 echo '- Creado<br />';
113 echo '<h3>+Creando Tablas...</h3><br />';
114 if ( isset($_POST['reiniciar']) ) { echo '->Se solicitó destruir y crear tablas<br />'; }
116 Tabla que contiene los datos de los clientes.
117 Esta tabla solo contendrá los datos relaventes a la identificación y contacto de cliente
119 $q="codigo VARCHAR(100) primary key, clave VARCHAR(32) not null, nombre VARCHAR(32) not null, razon VARCHAR(100) not null, email VARCHAR(50), telefono1 VARCHAR(20) not null, telefono2 VARCHAR(20), telefono3 VARCHAR(20), logotipo VARCHAR(255), notas VARCHAR(500), userlevel tinyint(1) unsigned not null, userid VARCHAR(32), timestamp int(11) unsigned not null";
120 CREAR_TBL(TBL_USERS, $q);
123 Tabla que contiene a los USUARIOS activos
124 NOTA: En un futuro se va a unir con TBL_ACTIVE_GUESTS
126 $q="codigo VARCHAR(30) primary key, timestamp int(11) unsigned not null";
127 CREAR_TBL(TBL_ACTIVE_USERS, $q);
130 Tabla que contiene a los VISITANTES activos
131 NOTA: En un futuro se va a unir con TBL_ACTIVE_USERS
133 $q="ip VARCHAR(15) primary key, timestamp int(11) unsigned not null";
134 CREAR_TBL(TBL_ACTIVE_GUESTS, $q);
137 Tabla que contiene la descripción de cada mupi habido y por haber
138 No contiene información sobre quién lo arrenda ni desde cuando, solo lo ubica en el mapa.
139 Ademas contiene la direccion (path) a la imagen/foto generica de este MUPI en particular.
140 NOTA: El campo evento tendrá el código de algún evento ocurrido (si hubiera) a este MUPI.
141 Si el evento le ocurré al MUPI en general (ej. le choca un automovil) entonces deberá
142 asignarle el evento al MUPI.
143 Si el evento llegará a afectar a una sola de las pantallas, entonces deberá relacionar dicho
144 evento con la pantalla afectada y no con el MUPI. Ver detalles en tabla TBL_MUPI_FACES.
146 $q="id_mupi INT NOT NULL AUTO_INCREMENT PRIMARY KEY, codigo_mupi VARCHAR(100) NOT NULL, direccion VARCHAR(255), foto_generica VARCHAR(255), lon DOUBLE DEFAULT NULL, lat DOUBLE DEFAULT NULL, codigo_evento VARCHAR(50), codigo_calle VARCHAR(255)";
147 CREAR_TBL(TBL_MUPI, $q);
150 Tabla que contiene la descripción de cada pedido (compra) realizada.
151 La finalidad es no repetir los mismos datos para cada pantalla, si no que se enlazaría cada pantalla con un código de pedido que le indicaría el cliente y la foto que debe llevar.
153 $q="codigo_pedido INT NOT NULL AUTO_INCREMENT PRIMARY KEY, codigo VARCHAR(100), catorcena_inicio int(11), catorcena_fin int(11), foto_pantalla VARCHAR(255), costo INT, descripcion VARCHAR(255)";
154 CREAR_TBL(TBL_MUPI_ORDERS, $q);
157 Tabla que contiene la descripción de cada calle.
158 La finalidad es poder enlazar con la tabla de mupis para que puedan determinar que MUPIS estan sobre la misma calle.
160 $q="codigo_calle INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ubicacion VARCHAR(255), grupo_calle VARCHAR(255), impactos INT";
161 CREAR_TBL(TBL_STREETS, $q);
164 Esta tabla es una tabla relacionada con TBL_MUPI en el sentido de que a travez de ella se determinan las pantallas alquiladas
165 Ademas de su fecha de alquiler, quien es su "alquilador", que tipo de pantalla es (peatonal/vehicular) y la foto actual del MUPI.
166 NOTA: Dado que el daño a un MUPI (llamado "evento") puede producirse en una sola pantalla (ej. el pintando callejero de una pantalla)
167 entonces también los eventos pueden ser asociados a estas (pantallas).
169 $q="id_pantalla INT NOT NULL AUTO_INCREMENT PRIMARY KEY, tipo_pantalla tinyint(1), codigo_mupi VARCHAR(100), codigo_pedido INT, codigo_evento VARCHAR(50), foto_real VARCHAR(255), catorcena int(11)";
170 CREAR_TBL(TBL_MUPI_FACES, $q);
173 La tabla de eventos contiene la fecha cuando sucedió el evento y la descripción del evento.
174 No tiene campo para decir que MUPI afectó porque al contrario es en las tablas TBL_MUPI y
175 TBL_MUPI_FACES en las que se relaciona con una entrada de esta tabla.
178 $q="id_evento INT NOT NULL AUTO_INCREMENT PRIMARY KEY, timestamp INT(11), categoria VARCHAR(100), afectado VARCHAR(100), descripcion_evento VARCHAR(500), foto_evento INT(11)";
179 CREAR_TBL(TBL_EVENTS, $q);
182 Esta tabla es un cache de GEOCODES. Requerido por PHPGoogleMapApi para optimizar la búsqueda de los mismos GEOCODES.
183 Ademas puede ser util en un futuro para referenciar los MUPIS por su dirección en lugar de sus coordenadas.
185 $q="address VARCHAR(255) NOT NULL PRIMARY KEY, lon float default NULL, lat float default NULL";
186 CREAR_TBL(TBL_GEOCODE_CACHE, $q);
189 Esta tabla funciona como una versión básica de un registro de pares.
190 Servirá para llevar las estadísticas de todo el sitio:
191 -Numero de visitas
193 $q="id_registro INT NOT NULL AUTO_INCREMENT PRIMARY KEY, clave VARCHAR(255), valor TEXT, detalle TEXT, autor VARCHAR(255), timestamp int(11) unsigned not null";
194 CREAR_TBL(TBL_REGISTRY, $q);
197 Esta tabla albergara todas las imagenes usadas.
198 Se diferenciaran por su categoria y podrán verla a travez de su ID.
200 $q="id_imagen INT NOT NULL AUTO_INCREMENT PRIMARY KEY, categoria VARCHAR(100), mime VARCHAR(100)";
201 CREAR_TBL(TBL_IMG, $q);
204 Esta tabla se encarga de llevar los comentarios de los usuarios.
206 $q="id_comentario INT NOT NULL AUTO_INCREMENT PRIMARY KEY, codigo TEXT, comentario VARCHAR(500), timestamp int(11), tipo tinyint(1)";
207 CREAR_TBL(TBL_COMMENTS, $q);
210 Esta tabla se encarga de llevar las referencias en calle de los Eco Mupis
212 $q="id_referencia INT NOT NULL AUTO_INCREMENT PRIMARY KEY, lon DOUBLE NULL, lat DOUBLE default NULL, codigo_calle INT(11), imagen_referencia INT(11)";
213 CREAR_TBL(TBL_REFS, $q);
215 echo '<h3>+Creando usuario '.$_POST['admin'].'...</h3><br />';
216 $q = "INSERT INTO ".TBL_USERS." VALUES ('".$_POST['admin'] . "', '" . md5($_POST['admin_clave']) . "', 'Administrador Principal', 'Administrador', '" . $_POST['email'] . "', '0','','','','Creado durante de la instalación', 9, 0," . time() . ") ON DUPLICATE KEY UPDATE codigo=VALUES(codigo), clave=VALUES(clave), email=VALUES(email)";
217 @mysql_query($q, $link) or die('!->No se pudo insertar el usuario<br /><pre>' . mysql_error() . '</pre>');;
218 echo '- Creado<br />';
219 mysql_close($link);
220 echo '<br /><b>Instalación completa</b><br />';
223 </div>
224 </div>
225 </body>
226 </html>