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) {
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">
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
>
32 <div id
="centerwrapper">
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">
44 <tr><td colspan="2"><h2>Configuración MySQL</h2></td></tr>
46 <td>Dirección del servidor MySQL:</td>
47 <td><input type="text" name="motor" maxlength="100" size="20" value="localhost" /></td>
50 <td>Base de datos a utilizar:</td>
51 <td><input type="text" name="base" maxlength="100" size="20" value="'.$DB_base.'" /></td>
55 <td><input type="text" name="usuario" maxlength="100" size="20" value="'.$DB_usuario.'" /></td>
59 <td><input type="password" name="clave" maxlength="30" size="20" value="" /></td>
61 <tr><td colspan="2"><h2>Google Maps</h2></td></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>
67 <tr><td colspan="2"><h2>Administración</h2></td></tr>
69 <td>Nombre Administrador:</td>
70 <td><input type="text" name="admin" maxlength="100" size="20" value="" /></td>
73 <td>Correo electrónico:</td>
74 <td><input type="text" name="email" maxlength="100" size="20" value="" /></td>
78 <td><input type="password" name="admin_clave" maxlength="20" size="20" value="" /></td>
81 <td>Clave (repetir):</td>
82 <td><input type="password" name="admin_clave2" maxlength="20" size="20" value="" /></td>
86 <input type="checkbox" name="reiniciar" value="" />Destruir tablas si existen
88 <input type="submit" name="instalar" value="Instalar" />
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 />");
106 $Datos = '$DB_motor = "'. $_POST['motor'] .'";' . '$DB_usuario = "'. $_POST['usuario'] . '";'. '$DB_clave = "'. $_POST['clave'] .'";' . '$DB_base = "'. $_POST['base'] .'";' . '$MapKey = "'. $_POST['MapKey'] .'";';
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="codigo_mupi VARCHAR(100) NOT NULL PRIMARY KEY, direccion VARCHAR(255), foto_generica VARCHAR(255), lon float default NULL, lat float 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)";
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)";
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 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, codigo_pantalla_mupi VARCHAR(100), codigo_mupi VARCHAR(100), codigo_pedido INT, codigo_evento VARCHAR(50), foto_real VARCHAR(255), catorcena_inicio 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="codigo_evento VARCHAR(50) NOT NULL PRIMARY KEY, descripcion_evento VARCHAR(500)";
179 CREAR_TBL(TBL_MUPI_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:
193 $q="clave VARCHAR(255) NOT NULL PRIMARY KEY, valor VARCHAR(255)";
194 CREAR_TBL(TBL_REGISTRY
, $q);
196 echo '<h3>+Creando usuario '.$_POST['admin'].'...</h3><br />';
197 $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)";
198 @mysql_query
($q, $link) or die('!->No se pudo insertar el usuario<br /><pre>' . mysql_error() . '</pre>');;
199 echo '- Creado<br />';
201 echo '<br /><b>Instalación completa</b><br />';