source: admin/WebConsole/includes/comunes.php @ 53fba30

918-git-images-111dconfigfileconfigure-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-instalacionwebconsole3
Last change on this file since 53fba30 was 3ec149c, checked in by alonso <alonso@…>, 15 years ago

git-svn-id: https://opengnsys.es/svn/trunk@1314 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 13.1 KB
Line 
1<?
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 paramertos "nombre=valor"
9        //________________________________________________________________________________________
10        function extrae_parametros($parametros,$chsep,$chval){
11                $ParametrosCadena="";
12                $auxP=split($chsep,$parametros);
13                for ($i=0;$i<sizeof($auxP);$i++){
14                        $dualparam=split($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=split($chsep,$parametros);
33                for ($i=0;$i<sizeof($auxP);$i++){
34                        $dualparam=split($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="";
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=split($ch,$parametros);
153                for($i=0;$i<sizeof($auxprm);$i++){
154                        list($nemonico,$valor)=split("=",$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=split(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=split($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                                                       
186                                        }
187                                }
188                        }       
189                }
190        }
191        /*______________________________________________________________________
192                Redirecciona a la página de error
193                Parametros:
194                        - Literal del error
195        _______________________________________________________________________*/
196        function RedireccionaError($herror){
197
198                $urlerror=urldecode($herror);
199                $wurl="../seguridad/logerror.php?herror=".$urlerror;
200                Header('Location: '.$wurl);
201        }
202
203        /*______________________________________________________________________
204                Elimina de la cadena de parametros, el parametro iph ( que debe ser el ultimo)
205                Parametros:
206                        - cadena de parametros de un comando
207                Devuelve:
208                        - la cadena sin el parametro iph y su valor
209        _______________________________________________________________________*/
210        function Sin_iph($cadena){
211
212                $pos=EnCadena($cadena,"iph=") ;
213                if($pos==-1) return($cadena);
214                return(substr($cadena,0,$pos));
215        }
216        /*______________________________________________________________________
217                Elimina de la cadena de parametros, el parametro mac ( que debe ser el ultimo)
218                Parametros:
219                        - cadena de parametros de un comando
220                Devuelve:
221                        - la cadena sin el parametro iph y su valor
222        _______________________________________________________________________*/
223        function Sin_mac($cadena){
224
225                $pos=EnCadena($cadena,"mac=") ;
226                if($pos==-1) return($cadena);
227                return(substr($cadena,0,$pos));
228        }
229        /*______________________________________________________________________
230                Formatea un campo númerico con los puntos de las unidades de millar
231                Parametros:
232                        - cadena con el valor del campo
233                Devuelve:
234                        - la cadena con los puntos de los miles
235        ________________________________________________________________________*/
236        function formatomiles($cadena){
237                $len=strlen($cadena);
238                $cadenafinal="";
239                $m=1;
240                for($i=$len-1;$i>=0;$i--){
241                        $cadenafinal=substr($cadena,$i,1).$cadenafinal;
242                        if($m%3==0 && $i>0){
243                                        $cadenafinal=".".$cadenafinal;
244                                        $m=0;
245                        }
246                        $m++;
247                }
248                return($cadenafinal);
249        }
250        /*______________________________________________________________________
251                Devuelve la url de la imagen y la descripción de un ámbito
252                Parametros:
253                        - ambito: Identificador del ambito
254                        - urlimg: Por referencia. Es donde se devuelve la url de la imagen     
255                        - textambito: Por referencia. Es donde se devuelve la descripción
256                       
257                Devuelve:
258                        - Los dos parámetros pasados por referencia
259        ________________________________________________________________________*/
260        function tomaAmbito($ambito,$urlimg,$textambito)
261        {
262                global $AMBITO_CENTROS;
263                global $AMBITO_GRUPOSAULAS;
264                global $AMBITO_AULAS;
265                global $AMBITO_GRUPOSORDENADORES;
266                global $AMBITO_ORDENADORES;
267
268                switch($ambito){
269                        case $AMBITO_CENTROS :
270                                $urlimg='../images/iconos/centros.gif';
271                                $textambito="Centros";
272                                break;
273                        case $AMBITO_GRUPOSAULAS :
274                                $urlimg='../images/iconos/carpeta.gif';
275                                $textambito="Grupos de aulas";
276                                break;
277                        case $AMBITO_AULAS :
278                                $urlimg='../images/iconos/aula.gif';
279                                $textambito="Aulas";
280                                break; 
281                        case $AMBITO_GRUPOSORDENADORES :
282                                $urlimg='../images/iconos/carpeta.gif';
283                                $textambito="Grupos de ordenadores";
284                                break;
285                        case $AMBITO_ORDENADORES :
286                                $urlimg='../images/iconos/ordenador.gif';
287                                $textambito="Ordenadores";
288                                break;
289                        default:
290                                $urlimg='../images/iconos/ordenador.gif';
291                                $textambito="Ordenadores";
292                                break;                 
293                }       
294        }
295        /*______________________________________________________________________
296       
297                Devuelve la descripción de un ambito
298                Parametros:
299                        -       cmd: Objeto comando (Operativo)
300                        - ambito: tipo de ambito
301                        - idambito: Identificador del ambito
302                        - textambito: Por referencia. Es donde se devuelve la descripción
303                       
304                Devuelve:
305                        - Los dos parámetros pasados por referencia
306        ________________________________________________________________________*/
307       
308        function tomaDescriAmbito($cmd,$ambito,$idambito,$textambito)
309        {
310                global $AMBITO_CENTROS;
311                global $AMBITO_GRUPOSAULAS;
312                global $AMBITO_AULAS;
313                global $AMBITO_GRUPOSORDENADORES;
314                global $AMBITO_ORDENADORES;
315
316                        switch($ambito){
317                                case $AMBITO_CENTROS :
318                                        $textambito=TomaDato($cmd,0,'centros',$idambito,'idcentro','nombrecentro');
319                                        break;
320                                case $AMBITO_GRUPOSAULAS :
321                                        $textambito=TomaDato($cmd,0,'grupos',$idambito,'idgrupo','nombregrupo');
322                                        break;
323                                case $AMBITO_AULAS :
324                                        $textambito=TomaDato($cmd,0,'aulas',$idambito,'idaula','nombreaula');
325                                        break;
326                                case $AMBITO_GRUPOSORDENADORES :
327                                        $textambito=TomaDato($cmd,0,'gruposordenadores',$idambito,'idgrupo','nombregrupoordenador');
328                                        break;
329                                case $AMBITO_ORDENADORES :
330                                        $textambito=TomaDato($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador');
331                                        break;
332                                default:       
333                                        $textambito;                                   
334                        }
335        }
336        /*______________________________________________________________________
337       
338                Devuelve el código html de una etiqueta SELECT para un ámbito concreto
339                Parametros:
340                        - cmd: Objeto comando (Operativo)
341                        - ambito: tipo de ambito
342                        - idambito: Identificador del ambito
343                        - $idcentro: Centro donde pertenecen o 0 para todos
344                        - $wdth: Ancho del desplegable
345                Devuelve:
346                        - Los dos parámetros pasados por referencia
347        ________________________________________________________________________*/
348       
349        function tomaSelectAmbito($cmd,$ambito,$idambito,$idcentro,$wdth)
350        {
351                global $AMBITO_CENTROS;
352                global $AMBITO_GRUPOSAULAS;
353                global $AMBITO_AULAS;
354                global $AMBITO_GRUPOSORDENADORES;
355                global $AMBITO_ORDENADORES;
356               
357                switch($ambito){
358                        case $AMBITO_CENTROS :
359                                $selecHtml=HTMLSELECT($cmd,1,'centros',$idcentro,'idcentro','nombrecentro',$wdth);
360                                break;
361                        case $AMBITO_GRUPOSAULAS :
362                                $selecHtml=HTMLSELECT($cmd,$idcentro,'grupos',$idambito,'idgrupo','nombregrupo',$wdth,"","","tipo=".$AMBITO_GRUPOSAULAS);
363                                break;
364                        case $AMBITO_AULAS :
365                                $selecHtml=HTMLSELECT($cmd,$idcentro,'aulas',$idambito,'idaula','nombreaula',$wdth);
366                                break;
367                        case $AMBITO_GRUPOSORDENADORES :
368                                $selecHtml=HTMLSELECT($cmd,0,'gruposordenadores',$idambito,'idgrupo ','nombregrupoordenador',$wdth);
369                                break;
370                        case $AMBITO_ORDENADORES :
371                                $clsWhere=" idaula IN (SELECT idaula FROM aulas WHERE idcentro=".$idcentro.")";
372                                $selecHtml=HTMLSELECT($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador',$wdth,"","",$clsWhere);
373                                break;
374                        default:       
375                                $selecHtml="";                                 
376                }
377                return($selecHtml);     
378        }
Note: See TracBrowser for help on using the repository browser.