summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/includes/comunes.php
diff options
context:
space:
mode:
authoralonso <alonso@us.es>2010-10-23 09:34:04 +0000
committeralonso <alonso@us.es>2010-10-23 09:34:04 +0000
commit3ec149cb19165453434984c88e8ba03f648e578e (patch)
tree9d315751684c2c27ed66ad645aeea52ce9027859 /admin/WebConsole/includes/comunes.php
parent550b680d176cbccfecfe35fad440dd570d90ba5b (diff)
git-svn-id: https://opengnsys.es/svn/trunk@1314 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin/WebConsole/includes/comunes.php')
-rw-r--r--admin/WebConsole/includes/comunes.php378
1 files changed, 378 insertions, 0 deletions
diff --git a/admin/WebConsole/includes/comunes.php b/admin/WebConsole/includes/comunes.php
new file mode 100644
index 00000000..b3e81e82
--- /dev/null
+++ b/admin/WebConsole/includes/comunes.php
@@ -0,0 +1,378 @@
+<?
+ //________________________________________________________________________________________
+ //
+ // Trocea en elementos de una matriz la cadena enviada como parametro separando por parametros
+ // Parámetros:
+ // - trama: La trama
+ // Devuelve:
+ // Una matriz con las parejas de paramertos "nombre=valor"
+ //________________________________________________________________________________________
+ function extrae_parametros($parametros,$chsep,$chval){
+ $ParametrosCadena="";
+ $auxP=split($chsep,$parametros);
+ for ($i=0;$i<sizeof($auxP);$i++){
+ $dualparam=split($chval,$auxP[$i]);
+
+ if (isset($dualparam[0]) && isset($dualparam[1])){
+ $streval='$ParametrosCadena["'.$dualparam[0].'"]="'.$dualparam[1].'";';
+ eval($streval);
+ }
+ }
+ return($ParametrosCadena);
+ }
+ //________________________________________________________________________________________
+ //
+ // Trocea en elementos de una matriz la cadena enviada como parametro separando por parametros
+ // y devolviendo el elegido
+ // Parámetros:
+ // Devuelve:
+ //________________________________________________________________________________________
+ function extrae_parametro($parametros,$chsep,$chval,$chr){
+ $ParametrosCadena="";
+ $auxP=split($chsep,$parametros);
+ for ($i=0;$i<sizeof($auxP);$i++){
+ $dualparam=split($chval,$auxP[$i]);
+ if (isset($dualparam[0]) && isset($dualparam[1])){
+ if($dualparam[0]==$chr)
+ return($dualparam[1]);
+ }
+ }
+ return("");
+ }
+ //________________________________________________________________________________________
+ //
+ // Busca una cadena dentro de otra.
+ // Especificaciones:
+ // Puede ser sensible a las mayúsculas
+ // Parametros:
+ // cadena; cadena donde se va a buscar
+ // subcadena; cadena a buscar
+ // swsensible; si es sensible o no a las mayúsculas y minúsculas
+ // Devuelve:
+ // La posición de comienzo de la subcadena dentro de la cadena, o (-1) en caso de no estar dentro
+ //________________________________________________________________________________________
+ function EnCadena($cadena,$subcadena,$swsensible = false) {
+ $i=0;
+ while (strlen($cadena)>=$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="";
+ $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=split($ch,$parametros);
+ for($i=0;$i<sizeof($auxprm);$i++){
+ list($nemonico,$valor)=split("=",$auxprm[$i]);
+ if(isset($tbParametros[$nemonico])){
+ if($tbParametros[$nemonico]["visual"]==1){
+ $tbParametrosValor[$nemonico]["descripcion"]=$tbParametros[$nemonico]["descripcion"];
+ switch($tbParametros[$nemonico]["tipopa"]){
+ case 0: // El valor lo toma directamente
+ $tbParametrosValor[$nemonico]["valor"]=$valor;
+ break;
+ case 1: // El valor lo toma de una tabla */
+ $tbParametrosValor[$nemonico]["valor"]=TomaDato($cmd,0,$tbParametros[$nemonico]["nomtabla"],$valor,$tbParametros[$nemonico]["nomidentificador"],$tbParametros[$nemonico]["nomliteral"]);
+ break;
+ case 2: // El parámetro es compuesto de otros parametros
+ $blkprm=split(chr(10),substr($auxprm[$i],4));
+ for($j=0;$j<sizeof($blkprm);$j++){
+ $tbSubParametrosValor=array();
+ ParametrosValor($cmd,$blkprm[$j],&$tbSubParametrosValor,chr(9));
+ for($k=0;$k<sizeof($tbSubParametrosValor);$k++){
+ $elem=current($tbSubParametrosValor);
+ $tbParametrosValor[$nemonico][$j]["valor"].=$elem["descripcion"];
+ $tbParametrosValor[$nemonico][$j]["valor"].=": ".$elem["valor"];
+ $tbParametrosValor[$nemonico][$j]["valor"].=", ";
+ next($tbSubParametrosValor);
+ }
+ }
+ break;
+ case 3: // El valor lo toma de una array
+ $tbcte=split($tbParametros[$nemonico]["nomidentificador"],$tbParametros[$nemonico]["nomliteral"]);
+ $tbParametrosValor[$nemonico]["valor"]=$tbcte[$valor];
+ break;
+ case 4: // El valor lo toma directamente pero está codificado con urlencode
+ $tbParametrosValor[$nemonico]["valor"]='<PRE>'.urldecode($valor).'</PRE>';
+
+ }
+ }
+ }
+ }
+ }
+ /*______________________________________________________________________
+ 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);
+ } \ No newline at end of file