source: admin/WebConsole/includes/comunes.php @ 88fc95a

918-git-images-111dconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacion
Last change on this file since 88fc95a was 157b7d3, checked in by Ramón M. Gómez <ramongomez@…>, 6 years ago

#834: Fix wrong variable type.

  • Property mode set to 100644
File size: 13.9 KB
Line 
1<?php
2        //________________________________________________________________________________________
3        //
4        //      Trocea en elementos de una matriz la cadena enviada como parametro separando por parametros
5        //      Parámetros:
6        //              - trama: La trama
7        //       Devuelve:
8        //              Una matriz con las parejas de parámertos "nombre=valor"
9        //________________________________________________________________________________________
10        function extrae_parametros($parametros,$chsep,$chval){
11                $ParametrosCadena=array();
12                $auxP=explode($chsep,$parametros);
13                for ($i=0;$i<sizeof($auxP);$i++){
14                        $dualparam=explode($chval,$auxP[$i]);
15
16                        if (isset($dualparam[0]) && isset($dualparam[1])){
17                                $streval='$ParametrosCadena["'.$dualparam[0].'"]="'.$dualparam[1].'";';
18                                eval($streval);
19                        }
20                }
21                return($ParametrosCadena);
22        }
23        //________________________________________________________________________________________
24        //
25        //      Trocea en elementos de una matriz la cadena enviada como parametro separando por parametros
26        //      y devolviendo el elegido
27        //      Parámetros:
28        //       Devuelve:
29        //________________________________________________________________________________________
30        function extrae_parametro($parametros,$chsep,$chval,$chr){
31                $ParametrosCadena="";
32                $auxP=explode($chsep,$parametros);
33                for ($i=0;$i<sizeof($auxP);$i++){
34                        $dualparam=explode($chval,$auxP[$i]);
35                        if (isset($dualparam[0]) && isset($dualparam[1])){
36                                if($dualparam[0]==$chr)
37                                        return($dualparam[1]);
38                        }
39                }
40                return("");
41        }
42        //________________________________________________________________________________________
43        //
44        //      Busca una cadena dentro de otra.
45        // Especificaciones:
46        //              Puede ser sensible a las  mayúsculas
47        // Parametros:
48        //              cadena; cadena donde se va a buscar
49        //              subcadena; cadena a buscar
50        //              swsensible; si es sensible o no a las mayúsculas y minúsculas
51        // Devuelve:
52        //              La posición de comienzo de la subcadena dentro de la cadena, o (-1) en caso de no estar dentro
53        //________________________________________________________________________________________
54        function EnCadena($cadena,$subcadena,$swsensible = false) {
55                $i=0;
56                while (strlen($cadena)>=$i) {
57                        unset($substring);
58                        if ($swsensible) {
59                                $subcadena=strtolower($subcadena);
60                                $cadena=strtolower($cadena);
61                        }
62                        $substring=substr($cadena,$i,strlen($subcadena));
63                        if ($substring==$subcadena) return$i;
64                        $i++;
65                }
66                return -1;
67         }
68        //_____________________________________________________________________________________________
69        // Búsqueda binaria o dicotómica en una tabla y devuelve el índice del elemento buscado tabla de una dimension
70        //_____________________________________________________________________________________________
71        function busca_indicebinario($dato,$tabla,$cont){
72                if (empty($tabla)) return(-1);
73                $a=0;
74                $b=$cont-1;
75                do{
76                        $p=round(($a+$b)/2,0);
77                        if ($tabla[$p]==$dato)
78                                return($p);
79                       
80                        else{
81                                        if ($tabla[$p]<$dato){
82                                                $a=$p+1;
83                                        }
84                                        else
85                                                $b=$p-1;
86                        }
87                }while($b>=$a);
88                return(-1);
89        }
90        //_____________________________________________________________________________________________
91        // Búsqueda binaria o dicotómica en una tabla y devuelve el índice del elemento buscado tabla de dos dimensiones
92        //_____________________________________________________________________________________________
93        function busca_indicebinariodual($dato,$tabla,$cont){
94                $a=0;
95                $b=$cont-1;
96                do{
97                        $p=round(($a+$b)/2,0);
98                        if ($tabla[$p][0]==$dato)
99                                return($p);
100                       
101                        else{
102                                        if ($tabla[$p][0]<$dato){
103                                                $a=$p+1;
104                                        }
105                                        else
106                                                $b=$p-1;
107                        }
108                }while($b>=$a);
109                return(-1);
110        }
111        //___________________________________________________________________________________
112        //
113        // Crea un Array con las especificaciones de los parámetros de los comandos
114        //___________________________________________________________________________________
115        function CreaTablaParametros($cmd)
116        {
117                $cmd->texto="SELECT * FROM parametros ORDER BY nemonico";
118                $rs=new Recordset;             
119                $rs->Comando=&$cmd;
120                if (!$rs->Abrir()) return(false); // Error al abrir recordset
121                $cont=0;
122                while (!$rs->EOF){
123                        $nemo=$rs->campos["nemonico"];
124                        $auxtabla_parametros=array();
125                        $auxtabla_parametros["nemonico"]=$nemo;
126                        $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"];
127                        $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"];
128                        $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"];
129                        $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"];
130                        $auxtabla_parametros["tipopa"]=$rs->campos["tipopa"];
131                        $auxtabla_parametros["visual"]=$rs->campos["visual"];
132                        $tabla_parametros[$nemo]=$auxtabla_parametros;
133                        $cont++;
134                        $rs->Siguiente();
135                }
136                return($tabla_parametros);
137        }
138        //___________________________________________________________________________________
139        //
140        // Crea una tabla en memoria con los valores reales de los parámetros enviados
141        //
142        //      Parámetros:
143        //              $cmd: Objeto comando (Operativo)
144        //              $parámetros: El formato de parámetros que viaje en las trama y que es el mismo
145        //              que se almacenan en las tablas de procedimientos_acciones o acciones
146        //___________________________________________________________________________________
147               
148        function ParametrosValor($cmd,$parametros,&$tbParametrosValor,$ch="\r")
149        {
150                global $tbParametros;
151                $html="";
152                $auxprm=explode($ch,$parametros);
153                for($i=0;$i<sizeof($auxprm);$i++){
154                        list($nemonico,$valor)=explode("=",$auxprm[$i]);
155                        if(isset($tbParametros[$nemonico])){
156                                if($tbParametros[$nemonico]["visual"]==1){
157                                        $tbParametrosValor[$nemonico]["descripcion"]=$tbParametros[$nemonico]["descripcion"];
158                                        switch($tbParametros[$nemonico]["tipopa"]){
159                                                case 0: // El valor lo toma directamente
160                                                        $tbParametrosValor[$nemonico]["valor"]=$valor;
161                                                        break;
162                                                case 1: // El valor lo toma de una tabla */
163                                                        $tbParametrosValor[$nemonico]["valor"]=TomaDato($cmd,0,$tbParametros[$nemonico]["nomtabla"],$valor,$tbParametros[$nemonico]["nomidentificador"],$tbParametros[$nemonico]["nomliteral"]);
164                                                        break;
165                                                case 2: // El parámetro es compuesto de otros parametros
166                                                        $blkprm=explode(chr(10),substr($auxprm[$i],4));
167                                                        for($j=0;$j<sizeof($blkprm);$j++){
168                                                                $tbSubParametrosValor=array();
169                                                                ParametrosValor($cmd,$blkprm[$j],$tbSubParametrosValor,chr(9));
170                                                                for($k=0;$k<sizeof($tbSubParametrosValor);$k++){
171                                                                        $elem=current($tbSubParametrosValor);
172                                                                        $tbParametrosValor[$nemonico][$j]["valor"].=$elem["descripcion"];                                                       
173                                                                        $tbParametrosValor[$nemonico][$j]["valor"].=": ".$elem["valor"];
174                                                                        $tbParametrosValor[$nemonico][$j]["valor"].=", ";
175                                                                        next($tbSubParametrosValor);                                                           
176                                                                }
177                                                        }
178                                                        break; 
179                                                case 3: // El valor lo toma de una array
180                                                        $tbcte=explode($tbParametros[$nemonico]["nomidentificador"],$tbParametros[$nemonico]["nomliteral"]);
181                                                        $tbParametrosValor[$nemonico]["valor"]=$tbcte[$valor];
182                                                        break;
183                                                case 4: // El valor lo toma directamente pero está codificado con urlencode
184                                                        $tbParametrosValor[$nemonico]["valor"]='<PRE>'.urldecode($valor).'</PRE>';
185                                                        break;
186                                                case 5: // El valor es 0 ó 1 y se muestra NO o SI
187                                                        $tbSN[0]="No";
188                                                        $tbSN[1]="Si";
189                                                        $tbParametrosValor[$nemonico]["valor"]=$tbSN[$valor];
190                                        }
191                                }
192                        }       
193                }
194        }
195        /*______________________________________________________________________
196                Redirecciona a la página de error
197                Parametros:
198                        - Literal del error
199        _______________________________________________________________________*/
200        function RedireccionaError($herror){
201
202                $urlerror=urldecode($herror);
203                $wurl="../seguridad/logerror.php?herror=".$urlerror;
204                Header('Location: '.$wurl);
205        }
206
207        /*______________________________________________________________________
208                Elimina de la cadena de parametros, el parametro iph ( que debe ser el ultimo)
209                Parametros:
210                        - cadena de parametros de un comando
211                Devuelve:
212                        - la cadena sin el parametro iph y su valor
213        _______________________________________________________________________*/
214        function Sin_iph($cadena){
215
216                $pos=EnCadena($cadena,"iph=") ;
217                if($pos==-1) return($cadena);
218                return(substr($cadena,0,$pos));
219        }
220        /*______________________________________________________________________
221                Elimina de la cadena de parametros, el parametro mac ( que debe ser el ultimo)
222                Parametros:
223                        - cadena de parametros de un comando
224                Devuelve:
225                        - la cadena sin el parametro iph y su valor
226        _______________________________________________________________________*/
227        function Sin_mac($cadena){
228
229                $pos=EnCadena($cadena,"mac=") ;
230                if($pos==-1) return($cadena);
231                return(substr($cadena,0,$pos));
232        }
233        /*______________________________________________________________________
234                Formatea un campo númerico con los puntos de las unidades de millar
235                Parametros:
236                        - cadena con el valor del campo
237                Devuelve:
238                        - la cadena con los puntos de los miles
239        ________________________________________________________________________*/
240        function formatomiles($cadena){
241                $len=strlen($cadena);
242                $cadenafinal="";
243                $m=1;
244                for($i=$len-1;$i>=0;$i--){
245                        $cadenafinal=substr($cadena,$i,1).$cadenafinal;
246                        if($m%3==0 && $i>0){
247                                        $cadenafinal=".".$cadenafinal;
248                                        $m=0;
249                        }
250                        $m++;
251                }
252                return($cadenafinal);
253        }
254        /*______________________________________________________________________
255                Devuelve la url de la imagen y la descripción de un ámbito
256                Parametros:
257                        - ambito: Identificador del ambito
258                        - urlimg: Por referencia. Es donde se devuelve la url de la imagen     
259                        - textambito: Por referencia. Es donde se devuelve la descripción
260                       
261                Devuelve:
262                        - Los dos parámetros pasados por referencia
263        ________________________________________________________________________*/
264        function tomaAmbito($ambito,&$urlimg,&$textambito)
265        {
266                global $AMBITO_CENTROS;
267                global $AMBITO_GRUPOSAULAS;
268                global $AMBITO_AULAS;
269                global $AMBITO_GRUPOSORDENADORES;
270                global $AMBITO_ORDENADORES;
271
272                switch($ambito){
273                        case $AMBITO_CENTROS :
274                                $urlimg='../images/iconos/centros.gif';
275                                $textambito="Centros";
276                                break;
277                        case $AMBITO_GRUPOSAULAS :
278                                $urlimg='../images/iconos/carpeta.gif';
279                                $textambito="Grupos de aulas";
280                                break;
281                        case $AMBITO_AULAS :
282                                $urlimg='../images/iconos/aula.gif';
283                                $textambito="Aulas";
284                                break; 
285                        case $AMBITO_GRUPOSORDENADORES :
286                                $urlimg='../images/iconos/carpeta.gif';
287                                $textambito="Grupos de ordenadores";
288                                break;
289                        case $AMBITO_ORDENADORES :
290                                $urlimg='../images/iconos/ordenador.gif';
291                                $textambito="Ordenadores";
292                                break;
293                        default:
294                                $urlimg='../images/iconos/ordenador.gif';
295                                $textambito="Ordenadores";
296                                break;                 
297                }       
298        }
299        /*______________________________________________________________________
300       
301                Devuelve la descripción de un ambito
302                Parametros:
303                        - cmd: Objeto comando (Operativo)
304                        - ambito: tipo de ambito
305                        - idambito: Identificador del ambito
306                        - textambito: Por referencia. Es donde se devuelve la descripción
307                       
308                Devuelve:
309                        - Los dos parámetros pasados por referencia
310        ________________________________________________________________________*/
311       
312        function tomaDescriAmbito($cmd,$ambito,$idambito,&$textambito)
313        {
314                global $AMBITO_CENTROS;
315                global $AMBITO_GRUPOSAULAS;
316                global $AMBITO_AULAS;
317                global $AMBITO_GRUPOSORDENADORES;
318                global $AMBITO_ORDENADORES;
319
320                        switch($ambito){
321                                case $AMBITO_CENTROS :
322                                        $textambito=TomaDato($cmd,0,'centros',$idambito,'idcentro','nombrecentro');
323                                        break;
324                                case $AMBITO_GRUPOSAULAS :
325                                        $textambito=TomaDato($cmd,0,'grupos',$idambito,'idgrupo','nombregrupo');
326                                        break;
327                                case $AMBITO_AULAS :
328                                        $textambito=TomaDato($cmd,0,'aulas',$idambito,'idaula','nombreaula');
329                                        break;
330                                case $AMBITO_GRUPOSORDENADORES :
331                                        $textambito=TomaDato($cmd,0,'gruposordenadores',$idambito,'idgrupo','nombregrupoordenador');
332                                        break;
333                                case $AMBITO_ORDENADORES :
334                                        $textambito=TomaDato($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador');
335                                        break;
336                                default:       
337                                        $textambito="";
338                        }
339        }
340        /*______________________________________________________________________
341       
342                Devuelve el código html de una etiqueta SELECT para un ámbito concreto
343                Parametros:
344                        - cmd: Objeto comando (Operativo)
345                        - ambito: tipo de ambito
346                        - idambito: Identificador del ambito
347                        - $idcentro: Centro donde pertenecen o 0 para todos
348                        - $wdth: Ancho del desplegable
349                Devuelve:
350                        - Los dos parámetros pasados por referencia
351        ________________________________________________________________________*/
352       
353        function tomaSelectAmbito($cmd,$ambito,$idambito,$idcentro,$wdth)
354        {
355                global $AMBITO_CENTROS;
356                global $AMBITO_GRUPOSAULAS;
357                global $AMBITO_AULAS;
358                global $AMBITO_GRUPOSORDENADORES;
359                global $AMBITO_ORDENADORES;
360               
361                switch($ambito){
362                        case $AMBITO_CENTROS :
363                                $selecHtml=HTMLSELECT($cmd,1,'centros',$idcentro,'idcentro','nombrecentro',$wdth);
364                                break;
365                        case $AMBITO_GRUPOSAULAS :
366                                $selecHtml=HTMLSELECT($cmd,$idcentro,'grupos',$idambito,'idgrupo','nombregrupo',$wdth,"","","tipo=".$AMBITO_GRUPOSAULAS);
367                                break;
368                        case $AMBITO_AULAS :
369                                $selecHtml=HTMLSELECT($cmd,$idcentro,'aulas',$idambito,'idaula','nombreaula',$wdth);
370                                break;
371                        case $AMBITO_GRUPOSORDENADORES :
372                                $selecHtml=HTMLSELECT($cmd,0,'gruposordenadores',$idambito,'idgrupo ','nombregrupoordenador',$wdth);
373                                break;
374                        case $AMBITO_ORDENADORES :
375                                $clsWhere=" idaula IN (SELECT idaula FROM aulas WHERE idcentro=".$idcentro.")";
376                                $selecHtml=HTMLSELECT($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador',$wdth,"","",$clsWhere);
377                                break;
378                        default:       
379                                $selecHtml="";                                 
380                }
381                return($selecHtml);     
382        }
383
384        /*
385         * Devuelve el valor legible para un tamaño (en múltiplos de 1024).
386         * Nota: obtenido de la documentación de PHP (php.net).
387         * Parámetros:
388         *      bytes - tamaño en bytes (entero)
389         * Devielve:
390         *      cadena con número en formato de sistema internacional (2 decimales)
391         */
392        function humanSize($bytes) {
393                $si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
394                $base = 1024;
395                $class = min((int)log($bytes , $base) , count($si_prefix) - 1);
396                if ($class < 0) {
397                        return '0 B';
398                } else {
399                        return sprintf('%1.2f' , $bytes / pow($base, $class)) . ' ' . $si_prefix[$class];
400                }
401        }
402
Note: See TracBrowser for help on using the repository browser.