=$i) { unset($substring); if ($swsensible) { $subcadena=strtolower($subcadena); $cadena=strtolower($cadena); } $substring=substr($cadena,$i,strlen($subcadena)); if ($substring==$subcadena) return$i; $i++; } return -1; } //_____________________________________________________________________________________________ // Búsqueda binaria o dicotómica en una tabla y devuelve el índice del elemento buscado tabla de una dimension //_____________________________________________________________________________________________ function busca_indicebinario($dato,$tabla,$cont){ if (empty($tabla)) return(-1); $a=0; $b=$cont-1; do{ $p=round(($a+$b)/2,0); if ($tabla[$p]==$dato) return($p); else{ if ($tabla[$p]<$dato){ $a=$p+1; } else $b=$p-1; } }while($b>=$a); return(-1); } //_____________________________________________________________________________________________ // Búsqueda binaria o dicotómica en una tabla y devuelve el índice del elemento buscado tabla de dos dimensiones //_____________________________________________________________________________________________ function busca_indicebinariodual($dato,$tabla,$cont){ $a=0; $b=$cont-1; do{ $p=round(($a+$b)/2,0); if ($tabla[$p][0]==$dato) return($p); else{ if ($tabla[$p][0]<$dato){ $a=$p+1; } else $b=$p-1; } }while($b>=$a); return(-1); } //___________________________________________________________________________________ // // Crea un Array con las especificaciones de los parámetros de los comandos //___________________________________________________________________________________ function CreaTablaParametros($cmd) { $cmd->texto="SELECT * FROM parametros ORDER BY nemonico"; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(false); // Error al abrir recordset $cont=0; while (!$rs->EOF){ $nemo=$rs->campos["nemonico"]; $auxtabla_parametros=array(); $auxtabla_parametros["nemonico"]=$nemo; $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"]; $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"]; $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"]; $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"]; $auxtabla_parametros["tipopa"]=$rs->campos["tipopa"]; $auxtabla_parametros["visual"]=$rs->campos["visual"]; $tabla_parametros[$nemo]=$auxtabla_parametros; $cont++; $rs->Siguiente(); } return($tabla_parametros); } //___________________________________________________________________________________ // // Crea una tabla en memoria con los valores reales de los parámetros enviados // // Parámetros: // $cmd: Objeto comando (Operativo) // $parámetros: El formato de parámetros que viaje en las trama y que es el mismo // que se almacenan en las tablas de procedimientos_acciones o acciones //___________________________________________________________________________________ function ParametrosValor($cmd,$parametros,&$tbParametrosValor,$ch="\r") { global $tbParametros; $html=""; $auxprm=explode($ch,$parametros); for($i=0;$i'; break; case 5: // El valor es 0 ó 1 y se muestra NO o SI $tbSN[0]="No"; $tbSN[1]="Si"; $tbParametrosValor[$nemonico]["valor"]=$tbSN[$valor]; } } } } } /*______________________________________________________________________ Redirecciona a la página de error Parametros: - Literal del error _______________________________________________________________________*/ function RedireccionaError($herror){ $urlerror=urldecode($herror); $wurl="../seguridad/logerror.php?herror=".$urlerror; Header('Location: '.$wurl); } /*______________________________________________________________________ Elimina de la cadena de parametros, el parametro iph ( que debe ser el ultimo) Parametros: - cadena de parametros de un comando Devuelve: - la cadena sin el parametro iph y su valor _______________________________________________________________________*/ function Sin_iph($cadena){ $pos=EnCadena($cadena,"iph=") ; if($pos==-1) return($cadena); return(substr($cadena,0,$pos)); } /*______________________________________________________________________ Elimina de la cadena de parametros, el parametro mac ( que debe ser el ultimo) Parametros: - cadena de parametros de un comando Devuelve: - la cadena sin el parametro iph y su valor _______________________________________________________________________*/ function Sin_mac($cadena){ $pos=EnCadena($cadena,"mac=") ; if($pos==-1) return($cadena); return(substr($cadena,0,$pos)); } /*______________________________________________________________________ Formatea un campo númerico con los puntos de las unidades de millar Parametros: - cadena con el valor del campo Devuelve: - la cadena con los puntos de los miles ________________________________________________________________________*/ function formatomiles($cadena){ $len=strlen($cadena); $cadenafinal=""; $m=1; for($i=$len-1;$i>=0;$i--){ $cadenafinal=substr($cadena,$i,1).$cadenafinal; if($m%3==0 && $i>0){ $cadenafinal=".".$cadenafinal; $m=0; } $m++; } return($cadenafinal); } /*______________________________________________________________________ Devuelve la url de la imagen y la descripción de un ámbito Parametros: - ambito: Identificador del ambito - urlimg: Por referencia. Es donde se devuelve la url de la imagen - textambito: Por referencia. Es donde se devuelve la descripción Devuelve: - Los dos parámetros pasados por referencia ________________________________________________________________________*/ function tomaAmbito($ambito,&$urlimg,&$textambito) { global $AMBITO_CENTROS; global $AMBITO_GRUPOSAULAS; global $AMBITO_AULAS; global $AMBITO_GRUPOSORDENADORES; global $AMBITO_ORDENADORES; switch($ambito){ case $AMBITO_CENTROS : $urlimg='../images/iconos/centros.gif'; $textambito="Centros"; break; case $AMBITO_GRUPOSAULAS : $urlimg='../images/iconos/carpeta.gif'; $textambito="Grupos de aulas"; break; case $AMBITO_AULAS : $urlimg='../images/iconos/aula.gif'; $textambito="Aulas"; break; case $AMBITO_GRUPOSORDENADORES : $urlimg='../images/iconos/carpeta.gif'; $textambito="Grupos de ordenadores"; break; case $AMBITO_ORDENADORES : $urlimg='../images/iconos/ordenador.gif'; $textambito="Ordenadores"; break; default: $urlimg='../images/iconos/ordenador.gif'; $textambito="Ordenadores"; break; } } /*______________________________________________________________________ Devuelve la descripción de un ambito Parametros: - cmd: Objeto comando (Operativo) - ambito: tipo de ambito - idambito: Identificador del ambito - textambito: Por referencia. Es donde se devuelve la descripción Devuelve: - Los dos parámetros pasados por referencia ________________________________________________________________________*/ function tomaDescriAmbito($cmd,$ambito,$idambito,&$textambito) { global $AMBITO_CENTROS; global $AMBITO_GRUPOSAULAS; global $AMBITO_AULAS; global $AMBITO_GRUPOSORDENADORES; global $AMBITO_ORDENADORES; switch($ambito){ case $AMBITO_CENTROS : $textambito=TomaDato($cmd,0,'centros',$idambito,'idcentro','nombrecentro'); break; case $AMBITO_GRUPOSAULAS : $textambito=TomaDato($cmd,0,'grupos',$idambito,'idgrupo','nombregrupo'); break; case $AMBITO_AULAS : $textambito=TomaDato($cmd,0,'aulas',$idambito,'idaula','nombreaula'); break; case $AMBITO_GRUPOSORDENADORES : $textambito=TomaDato($cmd,0,'gruposordenadores',$idambito,'idgrupo','nombregrupoordenador'); break; case $AMBITO_ORDENADORES : $textambito=TomaDato($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador'); break; default: $textambito=""; } } /*______________________________________________________________________ Devuelve el código html de una etiqueta SELECT para un ámbito concreto Parametros: - cmd: Objeto comando (Operativo) - ambito: tipo de ambito - idambito: Identificador del ambito - $idcentro: Centro donde pertenecen o 0 para todos - $wdth: Ancho del desplegable Devuelve: - Los dos parámetros pasados por referencia ________________________________________________________________________*/ function tomaSelectAmbito($cmd,$ambito,$idambito,$idcentro,$wdth) { global $AMBITO_CENTROS; global $AMBITO_GRUPOSAULAS; global $AMBITO_AULAS; global $AMBITO_GRUPOSORDENADORES; global $AMBITO_ORDENADORES; switch($ambito){ case $AMBITO_CENTROS : $selecHtml=HTMLSELECT($cmd,1,'centros',$idcentro,'idcentro','nombrecentro',$wdth); break; case $AMBITO_GRUPOSAULAS : $selecHtml=HTMLSELECT($cmd,$idcentro,'grupos',$idambito,'idgrupo','nombregrupo',$wdth,"","","tipo=".$AMBITO_GRUPOSAULAS); break; case $AMBITO_AULAS : $selecHtml=HTMLSELECT($cmd,$idcentro,'aulas',$idambito,'idaula','nombreaula',$wdth); break; case $AMBITO_GRUPOSORDENADORES : $selecHtml=HTMLSELECT($cmd,0,'gruposordenadores',$idambito,'idgrupo','nombregrupoordenador',$wdth); break; case $AMBITO_ORDENADORES : $clsWhere=" idaula IN (SELECT idaula FROM aulas WHERE idcentro=".$idcentro.")"; $selecHtml=HTMLSELECT($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador',$wdth,"","",$clsWhere); break; default: $selecHtml=""; } return($selecHtml); } /* * Devuelve el valor legible para un tamaño (en múltiplos de 1024). * Nota: obtenido de la documentación de PHP (php.net). * Parámetros: * bytes - tamaño en bytes (entero) * Devielve: * cadena con número en formato de sistema internacional (2 decimales) */ function humanSize($bytes) { $si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' ); $base = 1024; $class = min((int)log($bytes , $base) , count($si_prefix) - 1); if ($class < 0) { return '0 B'; } else { return sprintf('%1.2f' , $bytes / pow($base, $class)) . ' ' . $si_prefix[$class]; } } function now_params() { $year = intval(date('Y')) - 2010; $month = intval(date('m')) - 1; $day = intval(date('j')) - 1; $hour = intval(date('g')); $am_pm = date('a'); $minute = intval(date('i')); $params['map_year'] = 1 << $year; $params['map_month'] = 1 << $month; $params['map_day'] = 1 << $day; $params['map_hour'] = 1 << $hour; $params['map_am_pm'] = strcmp($am_pm, 'am') ? 1 : 0; $params['map_minute'] = $minute; return $params; }