Cambio entre embeber imagenes en base de datos a ocuparlas desde disco.
[ecomupi.git] / contenido / sub.php
blobb6c106c1680a31e65d677be39a2ad4fccab092dc
1 <?php
2 /*Crear un link HTML*/
3 function CREAR_LINK($sAccion, $sTexto, $sTitulo) {
4 return "<a href=\"$sAccion\" title=\"$sTitulo\">$sTexto</a>";
7 /*Crear un link apropiado para GET*/
8 function CREAR_LINK_GET($sAccion, $sTexto, $sTitulo) {
9 return "<a href=\"?"._ACC_."=$sAccion\" title=\"$sTitulo\">$sTexto</a>";
12 function CONTENIDO_en_linea(){
13 global $session, $database;
14 echo ($database->num_active_users + $database->num_active_guests) . ' usuario(s) en línea: ';
15 echo $database->num_active_users . ' Cliente(s) y ';
16 echo $database->num_active_guests . ' Visitante(s)';
17 echo "<ul>";
18 $q = "SELECT codigo FROM " . TBL_ACTIVE_USERS . " ORDER BY timestamp DESC,codigo";
19 //echo $q;
20 $result = $database->query($q);
21 $num_rows = mysql_numrows($result);
22 DEPURAR($num_rows);
23 if($num_rows > 0){
24 for($i=0; $i<$num_rows; $i++){
25 $uname = mysql_result($result,$i,"codigo");
26 echo CREAR_LINK_GET("ver+cliente:$uname","<li>" . $uname . "</li>" , "Ver la información de este cliente");
29 echo "</ul>";
32 function CONTENIDO_mostrar_principal() {
33 global $session;
35 CONTENIDO_mostrar_logo_cliente();
37 if ( isset( $_GET[_ACC_]) ) {
38 $ACC = explode(":",$_GET[_ACC_]);
39 if ( isset( $ACC[0] ) ) { $accion = urldecode($ACC[0]); }
40 } else {
41 $accion = "ingresar";
43 /* Verificamos si es permitido navegar al recurso pedido sin ser admin*/
44 // Admin salta esta prueba claro :D
45 if ( !$session->isAdmin() ) {
46 //Restricciones para usuarios que no se han loggeado
47 if ( !$session->logged_in ) {
48 switch ( $accion ) {
49 case "ayuda contacto": break;
50 case "rpr clave": break;
51 default:
52 $accion= "ingresar";
56 $usuario = isset( $ACC[1] ) ? $ACC[1] : "";
57 switch ( $accion ) {
58 case "ingresar":
59 CONTENIDO_usuario_ingresar();
60 break;
62 case "salir":
63 $session->logout();
64 header("Location: ./");
65 break;
67 case "ayuda contacto":
68 CONTENIDO_ayuda_contacto() ;
69 break;
71 case "rpr clave":
72 CONTENIDO_recuperar_clave();
73 break;
75 case "ver reportes":
76 ADMIN_reportes();
77 break;
79 case "ver ubicaciones":
80 CONTENIDO_mupis_ubicaciones($usuario);
81 break;
83 case "ver estadisticas":
84 CONTENIDO_global_estadisticas($usuario);
85 break;
87 case "gestionar eventos":
88 case "ver eventos":
89 $evento = isset( $_GET['evento'] ) ? $_GET['evento'] : "";
90 CONTENIDO_mupis_eventos($usuario, $evento);
91 break;
93 /******************** Hasta aqui puede llegar un NO administrador ***************************/
95 case "ver cliente":
96 if($session->isAdmin()){
97 CONTENIDO_usuario_info( $usuario );
98 break;
101 case "listas":
102 if($session->isAdmin()){
103 $tipoDeLista= isset( $_GET['tipo'] ) ? $_GET['tipo'] : "";
104 CONTENIDO_listas( $usuario, $tipoDeLista );
105 break;
108 case "editar usuario":
109 if($session->isAdmin()){
110 CONTENIDO_usuario_editar( $usuario );
111 break;
114 case "ver clientes":
115 case "gestionar clientes":
116 $NivelesPermitidos = array(ADMIN_LEVEL, SALESMAN_LEVEL);
117 if (in_array($session->userlevel, $NivelesPermitidos)) {
118 CONTENIDO_admin();
119 break;
122 case "gestionar pantallas":
123 if($session->isAdmin()){
124 $pantalla= isset( $_GET['id'] ) ? $_GET['id'] : "";
125 $catorcena= isset( $_GET['catorcena'] ) ? $_GET['catorcena'] : "";
126 $calle= isset( $_GET['calle'] ) ? $_GET['calle'] : "";
127 CONTENIDO_pantallas($usuario,$pantalla,$catorcena,$calle);
128 break;
131 case "ver pedidos":
132 case "gestionar pedidos":
133 if($session->isAdmin()){
134 $pedido = isset( $_GET['pedido'] ) ? $_GET['pedido'] : "";
135 CONTENIDO_pedidos($usuario,$pedido);
136 break;
139 case "registro":
140 if($session->isAdmin()){
141 CONTENIDO_usuario_registrar();
142 break;
145 case "gestionar mupis":
146 if($session->isAdmin()){
147 $mupi = isset( $_GET['mupi'] ) ? $_GET['mupi'] : "";
148 $calle = isset( $_GET['calle'] ) ? $_GET['calle'] : NULL;
149 CONTENIDO_mupis($usuario,$mupi,$calle);
150 break;
153 case "gestionar calles":
154 if($session->isAdmin()){
155 $calle = isset( $_GET['calle'] ) ? $_GET['calle'] : "";
156 CONTENIDO_calles($usuario,$calle);
157 break;
160 case "gestionar comentarios":
161 if($session->isAdmin()){
162 $id_comentario = isset( $_GET['comentario'] ) ? $_GET['comentario'] : "";
163 CONTENIDO_comentarios($usuario, $id_comentario);
164 break;
167 case "gestionar referencias":
168 if($session->isAdmin()){
169 $id_referencia = isset( $_GET['referencia'] ) ? $_GET['referencia'] : "";
170 CONTENIDO_referencias($usuario, $id_referencia);
171 break;
174 case "ver":
175 if($session->isAdmin()){
176 $id = isset( $ACC[1] ) ? $ACC[1] : "";
177 echo '<h1>Mostrando imagen con Id. '.$id.'</h1>';
178 echo '<center>'.CargarImagenDesdeBD($id).'</center>';
179 break;
182 case "cargar pantallas":
183 if($session->isAdmin()){
184 CONTENIDO_cargar_pantallas();
185 break;
188 default:
189 CONTENIDO_global_404();
192 function IMAGEN ( $ruta, $alt="", $width="", $height="" ) {
193 return '<img src="'. $ruta . '" style="max-width:'.$width.'; max-height:'.$height.'" alt="'. $alt .'" />';
196 function CONTENIDO_mostrar_logo_cliente() {
197 global $session, $database;
198 $NivelesPermitidos = array(ADMIN_LEVEL, SALESMAN_LEVEL, DEMO_LEVEL);
199 if ( !in_array($session->userlevel, $NivelesPermitidos) && $session->logged_in ) {
200 $q = "SELECT logotipo FROM ". TBL_USERS . " WHERE codigo='".$session->codigo."';";
201 $result = $database->query($q);
202 echo '<center>' . '<img src="include/ver.php?id='.mysql_result($result,0,"logotipo").'" />'. '</center><hr />';
206 function INICIAR_MENUES () {
207 global $session;
208 switch ($session->userlevel) {
209 case ADMIN_LEVEL:
210 $s =
211 '<div class="chromestyle" id="chromemenu" style="font-size:0.8em">
212 <ul>'
213 .'<li><a href="./">Inicio</a></li>'
214 .'<li><a href="#" rel="menu_herramientas">Acciones</a></li>'
215 .'<li>'. CREAR_LINK_GET("registro","Registrar cliente", "Agregar un nuevo cliente al sistema") .'</li>'
216 .'<li>'. CREAR_LINK_GET("ver+ubicaciones","Ubicaciones", "Ver mapa de MUPIS") .'</li>'
217 .'<li>'. CREAR_LINK_GET("gestionar+pantallas","Gestionar pantallas", "Eliminar o modificar pantallas") .'</li>'
218 .'<li>'. CREAR_LINK_GET("gestionar+pedidos","Gestionar pedidos", "Eliminar o modificar pedidos") .'</li>'
219 .'<li>'. CREAR_LINK_GET("ver+reportes", "Reportes", "Generar reportes") .'</li>'
220 .'<li><a href="./?accion=salir">Cerrar sesión</a></li>
221 <li>&nbsp;&nbsp;&nbsp;&nbsp;</li>
222 <li>&nbsp;&nbsp;&nbsp;</li>
223 <li>&nbsp;&nbsp;</li>
224 <li>&nbsp;</li>
225 </ul>
226 </div>
228 //Herramientas
229 $s .= '
230 <div id="menu_herramientas" class="dropmenudiv">'
231 . CREAR_LINK_GET("cargar+pantallas", "Cargar Pantallas", "Cargar fotos enumeradas de pantallas")
232 . CREAR_LINK_GET("gestionar+clientes","Editar Clientes", "Gestionar clientes")
233 . CREAR_LINK_GET("gestionar+mupis","Editar Ubicaciones", "Eliminar o modificar MUPIS")
234 . CREAR_LINK_GET("gestionar+calles","Editar Calles", "Eliminar o modificar calles")
235 . CREAR_LINK_GET("gestionar+eventos","Editar Eventos", "Agregar, Eliminar o modificar eventos")
236 . CREAR_LINK_GET("gestionar+referencias", "Editar Referencias", "Eliminar o modificar referencias de calle")
237 . CREAR_LINK_GET("gestionar+comentarios", "Editar Comentarios", "Eliminar o modificar comentarios")
238 .'</div>';
239 break;
241 case SALESMAN_LEVEL:
242 $s =
244 <div class="chromestyle" id="chromemenu">
245 <ul>
246 <li><a href="./">Inicio</a></li>'
247 .'<li>'. CREAR_LINK_GET("ver+ubicaciones","Ubicaciones", "Ver mapa de MUPIS") .'</li>'
248 .'<li>'. CREAR_LINK_GET("ver+clientes","Clientes", "Ver lista de clientes") .'</li>'
249 .'<li><a href="./?accion=salir">Cerrar sesión</a></li>
250 <li>&nbsp;&nbsp;&nbsp;&nbsp;</li>
251 <li>&nbsp;&nbsp;&nbsp;</li>
252 <li>&nbsp;&nbsp;</li>
253 <li>&nbsp;</li>
254 </ul>
255 </div>
257 break;
259 CASE CLIENT_LEVEL:
260 $s =
262 <div class="chromestyle" id="chromemenu">
263 <ul>
264 <li><a href="./">Estadísticas</a></li>
265 <li><a href="./?accion=ver+ubicaciones">Mis Ubicaciones</a></li>
266 <li><a href="./?accion=ver+eventos" >Eventos</a></li>
267 <li><a href="./?accion=ayuda+contacto">Comenta</a></li>
268 <li><a href="./?accion=ver+reportes">Reportes</a></li>
269 <li><a href="./?accion=salir">Cerrar sesión</a></li>
270 <li>&nbsp;&nbsp;&nbsp;&nbsp;</li>
271 <li>&nbsp;&nbsp;&nbsp;</li>
272 <li>&nbsp;&nbsp;</li>
273 <li>&nbsp;</li>
274 </ul>
275 </div>
277 break;
279 case DEMO_LEVEL:
280 $s =
282 <div class="chromestyle" id="chromemenu">
283 <ul>
284 <li><a href="./">Inicio</a></li>'
285 .'<li>'. CREAR_LINK_GET("ver+ubicaciones","Ubicaciones", "Ver mapa de MUPIS") .'</li>'
286 .'<li><a href="./?accion=salir">Cerrar sesión</a></li>
287 <li>&nbsp;&nbsp;&nbsp;&nbsp;</li>
288 <li>&nbsp;&nbsp;&nbsp;</li>
289 <li>&nbsp;&nbsp;</li>
290 <li>&nbsp;</li>
291 </ul>
292 </div>
294 break;
295 break;
297 case USER_LEVEL:
298 $s =
300 <div class="chromestyle" id="chromemenu">
301 <ul>
302 <li><a href="./" onclick="return false">Estadísticas</a></li>
303 <li><a href="./?accion=ver+ubicaciones">Mis Ubicaciones</a></li>
304 <li><a href="./" onclick="return false">Eventos</a></li>
305 <li><a href="./?accion=ayuda+contacto">Comenta</a></li>
306 <li><a href="./" onclick="return false"">Reportes</a></li>
307 <li><a href="./?accion=salir">Cerrar sesión</a></li>
308 <li>&nbsp;&nbsp;&nbsp;&nbsp;</li>
309 <li>&nbsp;&nbsp;&nbsp;</li>
310 <li>&nbsp;&nbsp;</li>
311 <li>&nbsp;</li>
312 </ul>
313 </div>
315 break;
317 default:
318 $s =
320 <div class="chromestyle" id="chromemenu">
321 <ul>
322 <li><a href="./?accion=salir">Cerrar sesión</a></li>
323 </ul>
324 </div>
326 Woops!, parece que Ud. esta inscrito en el sistema, pero su nivel de acceso es <b>'.$session->userlevel.'</b>.<br />
327 Sin embargo no se alarme, el sistema solo a impedido su acceso para evitar riesgos de seguridad, todos los datos que haya tenido en su cuenta permenacerán intactos.<br />
328 Por favor contacte con el administrador e indiquele que revise el <b>nivel de acceso</b> de su cuenta. Gracias.
329 </p>
332 // Finalmente iniciamos el script.
333 $s .= '<script type="text/javascript">cssdropdown.startchrome("chromemenu")</script>';
334 return $s;
337 function Query2Table($result, $tableFeatures="") {
338 $table = "";
339 $table .= "<table $tableFeatures>\n\n";
340 $noFields = mysql_num_fields($result);
341 $table .= "<tr>\n";
342 for ($i = 0; $i < $noFields; $i++) {
343 $field = mysql_field_name($result, $i);
344 $table .= "\t<th>$field</th>\n";
346 while ($r = mysql_fetch_row($result)) {
347 $table .= "<tr>\n";
348 foreach ($r as $column) {
349 $table .= "\t<td>$column</td>\n";
351 $table .= "</tr>\n";
353 $table .= "</table>\n\n";
354 return $table;
357 function AnularFechaNula ($time,$EnVacioHoy=false) {
358 if ( $EnVacioHoy ) { $vacio = date("d-m-Y"); } else { $vacio = ""; }
359 if ( $time ) { return date("d-m-Y", $time); } else { return $vacio; }
361 function SCRIPT ($Script) {
362 return '<script type="text/javascript">$(document).ready(function (){'.$Script.'});</script>';
364 function CargarImagenEnBD ($NombreCampo, $Categoria, $Id_Imagen = 0) {
365 global $database;
367 Verificamos que exista la superglobal $_FILES para el indice del supuesto campo INPUT=FILE para no trabajar de gusto...
369 //print_ar($_FILES);
370 if ( !$_FILES[$NombreCampo]['error'] ) {
371 //echo $ParsedIMG;
372 $q = "INSERT INTO ".TBL_IMG." (id_imagen, categoria, mime) VALUES(".$Id_Imagen.", '".$Categoria."', '".$_FILES[$NombreCampo]['type']."') ON DUPLICATE KEY UPDATE categoria=VALUES(categoria), mime=VALUES(mime);";
373 $database->query($q);
374 $insert_id = mysql_insert_id($database->connection);
375 move_uploaded_file($_FILES[$NombreCampo]['tmp_name'],"img/$insert_id");
376 return $insert_id;
377 } else {
379 Ok, si no esta establecida ninguna imagen y nos dieron y $Id_Imagen es porque quieren eliminarla.
380 * Eliminamos los datos de esa fila para recuperar el espacio.
381 * Retornamos NULL para denotar la nueva anti-referencia.
383 if ( $Id_Imagen ) {
384 $q = "DELETE FROM ".TBL_IMG." WHERE id_imagen=".$Id_Imagen.";";
385 $database->query($q);
388 return NULL;
391 function CargarImagenDesdeBD ($id, $height='100%') {
392 return '<img style="height:'.$height.';" src="include/ver.php?id='.$id.'" />';
395 function CargarImagenDesdeBD2 ($id, $height='100%') {
396 return "<img style='height:".$height.";' src='include/ver.php?id=".$id."' />";
399 function GenerarTooltip ($texto) {
400 return ' onMouseOver=\'toolTip("'.addslashes($texto).'")\' onMouseOut="toolTip()" ';
403 function Mensaje ($texto, $tipo=_M_INFO){
404 switch ( $tipo ) {
405 case _M_INFO:
406 $id = "info";
407 break;
408 case _M_ERROR:
409 $id = "error";
410 break;
411 case _M_NOTA:
412 $id = "nota";
413 break;
414 default:
415 return 'Error: no se definió el $tipo de mensaje';
418 return "<div id=\"$id\">".$texto."</div>";
422 function truncate($string, $max = 120, $replacement = '...')
424 if (strlen($string) <= $max)
426 return $string;
428 $leave = $max - strlen ($replacement);
429 return substr_replace($string, $replacement, $leave);
432 function EnNulidad($string, $reemplazo){
433 if (!$string) {
434 return $reemplazo;
436 return $string;
439 function CONTENIDO_listas( $usuario, $tipoDeLista ){
440 global $database;
441 $q = "SELECT @codigo_mupi := (SELECT id_mupi FROM ".TBL_MUPI." as b WHERE a.codigo_mupi=b.id_mupi) as codigo_mupi, @codigo_mupi_traducido := (SELECT CONCAT((SELECT @ubicacion := b.ubicacion FROM emupi_calles AS b WHERE c.codigo_calle=b.codigo_calle), '. ', direccion , ' | ' , c.codigo_calle, '.' , @codigo_mupi_parcial := c.codigo_mupi ) FROM emupi_mupis as c WHERE c.id_mupi= @codigo_mupi) AS ubicacion, tipo_pantalla, id_pantalla FROM ".TBL_MUPI_FACES. " AS a WHERE catorcena = '".Obtener_catorcena_cercana()."' ORDER BY ubicacion, @codigo_mupi_parcial, tipo_pantalla";
442 $result = $database->query($q);
443 echo Query2Table($result);
446 function JS_($script){
447 return "<script type='text/javascript'>".$script."</script>";
450 function JS_onload($script){
451 return "<script type='text/javascript'>$(document).ready(function(){".$script."});</script>";