source: admin/WebConsole/principal/estadisticas.php

qndtest
Last change on this file was 2f149a8, checked in by Irina Gómez <irinagomez@…>, 2 years ago

#1066 #1031 Admin console: in the SQL query the ambiguity in the field 'inremotepc' is removed.

(Reported by Ramón Gómez - US).

  • Property mode set to 100644
File size: 4.7 KB
Line 
1<?php
2/*
3 *
4 */
5
6include_once(__DIR__ . "/../includes/ctrlacc.php");
7include_once(__DIR__ . "/../includes/CreaComando.php");
8include_once(__DIR__ . "/../clases/AdoPhp.php");
9include_once(__DIR__ . "/../idiomas/php/$idioma/estadisticas_$idioma.php");
10
11$cmd=CreaComando($cadenaconexion);
12if (!$cmd) {
13    header('Location: '.$pagerror.'?herror=2'); // Database connection error
14}
15// Retrieving statistics from the database.
16$data = get_statistics($cmd, $idcentro);
17
18?>
19<html lang="es">
20<head>
21    <title>Administración web de aulas</title>
22    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
23    <link rel="stylesheet" type="text/css" href="../estilos.css">
24</head>
25<body>
26<div align="center" class="cabeceras"><?php echo $TbMsg['TITLE_STATS'] ?></div>
27<?php if ($data) { ?>
28    <div align="center" class="subcabeceras"><?php echo $data["ou"] ?></div>
29    <p>
30    <table align="center" class="tabla_listados_sin">
31        <?php
32        print_data_row($TbMsg['LABEL_LABS'], $data['labs']);
33        if ($data['labs'] > 0) {
34            print_data_row($TbMsg['LABEL_HASPROF'], $data['hasprof'], $data['labs']);
35            print_data_row($TbMsg['LABEL_REMOTELAB'], $data['remotelab'], $data['labs']);
36            print_data_row($TbMsg['LABEL_CLIENTS'], $data['clients']);
37            print_data_row($TbMsg['LABEL_HASCONFIG'], $data['hasconfig'], $data['clients']);
38            print_data_row($TbMsg['LABEL_HASREPO'], $data['hasrepo'], $data['clients']);
39            print_data_row($TbMsg['LABEL_HASHARD'], $data['hashard'], $data['clients']);
40            print_data_row($TbMsg['LABEL_HASSERIAL'], $data['hasserial'], $data['clients']);
41        }
42        print_data_row($TbMsg['LABEL_REPOS'], $data['repos']);
43        if ($data['repos'] > 0) {
44            print_data_row($TbMsg['LABEL_IMAGES'], $data['images']);
45            if ($data['images'] > 0) {
46                print_data_row($TbMsg['LABEL_MONOIMG'], $data['monoimg'], $data['images']);
47                print_data_row($TbMsg['LABEL_HASSOFT'], $data['hassoft'], $data['images']);
48                print_data_row($TbMsg['LABEL_REMOTEIMG'], $data['remoteimg'], $data['images']);
49                print_data_row($TbMsg['LABEL_OSES'], $data['oses']);
50            }
51        }
52        print_data_row($TbMsg['LABEL_MENUS'], $data['menus']);
53        print_data_row($TbMsg['LABEL_PROCS'], $data['procs']);
54        print_data_row($TbMsg['LABEL_TASKS'], $data['tasks']);
55        ?>
56    </table>
57<?php } else {?>
58    <p align="center"><?php echo $TbMsg['MSG_UNAVAILABLE'] ?></p>
59<?php } ?>
60<div align="center" class="pie"><a href="javascript:history.go(-1)">Volver</a></div>
61</body>
62</html>
63<?php
64/**
65 * @function get_statistics
66 * @param $cmd
67 * @param $id
68 * @return array
69 */
70function get_statistics($cmd, $id) {
71    $rs=new Recordset;
72    $cmd->texto = <<<EOT
73SELECT *
74  FROM (SELECT nombrecentro AS ou,
75               COUNT(DISTINCT idaula) AS labs,
76               COUNT(DISTINCT IF(idordprofesor > 0, idaula, NULL)) AS hasprof,
77               COUNT(DISTINCT IF(aulas.inremotepc = 1, idaula, NULL)) AS remotelab,
78               COUNT(idordenador) AS clients,
79               COUNT(numserie) AS hasconfig,
80               COUNT(IF(idrepositorio > 0, 1, NULL)) AS hasrepo,
81               COUNT(IF(idperfilhard > 0, 1, NULL)) AS hashard,
82               COUNT(IF(numserie = '', NULL, 1)) AS hasserial
83          FROM centros
84          LEFT JOIN aulas USING(idcentro)
85          LEFT JOIN ordenadores USING(idaula)
86         WHERE idcentro = $id) AS t1,
87       (SELECT COUNT(*) AS repos
88          FROM repositorios
89         WHERE idcentro = $id) AS t2,
90       (SELECT COUNT(*) AS images,
91               COUNT(IF(tipo = 1, 1, NULL)) AS monoimg,
92               COUNT(IF(idperfilsoft > 0, 1, NULL)) AS hassoft,
93               COUNT(IF(inremotepc = 1, 1, NULL)) AS remoteimg,
94               COUNT(DISTINCT idnombreso) AS oses
95          FROM imagenes
96          LEFT JOIN perfilessoft USING(idperfilsoft)
97          LEFT JOIN nombresos USING(idnombreso)
98         WHERE imagenes.idcentro = $id) AS t3,
99       (SELECT COUNT(*) AS menus
100          FROM menus
101         WHERE idcentro = $id) AS t4,
102       (SELECT COUNT(*) as procs
103          FROM procedimientos
104         WHERE idcentro = $id) AS t5,
105       (SELECT COUNT(*) as tasks
106          FROM tareas
107         WHERE idcentro = $id) AS t6;
108EOT;
109    $rs->Comando=&$cmd;
110    if (!$rs->Abrir()) {
111        return(null); // Error opening the record set
112    }
113    $rs->Primero();
114    $data = $rs->campos;
115    $rs->Cerrar();
116    return($data);
117}
118
119/**
120 * @param string $label
121 * @param int $value
122 * @param int $total
123 */
124function print_data_row($label, $value, $total=0) {
125    echo "\t\t<tr><th>&nbsp;$label:&nbsp;</th><td>&nbsp;$value" .
126        ($total>0 ? " (".intval($value*100/$total)."%)" : "") . "&nbsp;</td></tr>\n";
127}
Note: See TracBrowser for help on using the repository browser.