00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00029 class ilLMStatistics {
00030
00031 var $AppletData;
00032 var $AppletDataInfoString;
00033 var $Seitenanz;
00034 var $KapitelZuSeite2;
00035 var $SessionVonNach2;
00036 var $Kapitelanz;
00037 var $KapitelVonNach2;
00038 var $OberkapitelZuKapitel2;
00039 var $Seitenname2;
00040 var $Kapitelname2;
00041 var $appStats;
00042 var $from;
00043 var $to;
00044 var $user_IDs;
00045 var $lm_id;
00046 var $user_selection;
00047
00048 function ilLMStatistics($obj_id) {
00049 $this->lm_id = $obj_id;
00050 }
00051
00052 function outputHTML() {
00053 $this->calcStats (0);
00054 }
00055
00056 function calcStats($mode) {
00057
00058 global $tpl, $lng, $ilias, $db;
00059
00060 if ($mode == 1) {
00061 $from = $this->from;
00062 $to = $this->to;
00063 $user_IDs = $this->user_IDs;
00064 $LehrModulID = $this->lm_ID;
00065 $user_selection = $this->user_selection;
00066 $this->appStats = 0;
00067 } else {
00068 $_SESSION["il_track_yearf"] = $_POST["yearf"];
00069 $_SESSION["il_track_yeart"] = $_POST["yeart"];
00070 $_SESSION["lmID"] = $_POST["lmID"];
00071 $_SESSION["il_track_monthf"] = $_POST["monthf"];
00072 $_SESSION["il_track_montht"] = $_POST["montht"];
00073 $_SESSION["il_track_dayf"] = $_POST["dayf"];
00074 $_SESSION["il_track_dayt"] = $_POST["dayt"];
00075 $_SESSION["il_track_stat"] = $_POST["stat"];
00076 $_SESSION["il_track_language"] = $_POST["language"];
00077 $_SESSION["il_track_author"] = $_POST["author"];
00078 $_SESSION["il_track_author1"] = $_POST["author1"];
00079 $_SESSION["il_track_lm"] = $_POST["lmID"];
00080 $_SESSION["il_track_tst"] = $_POST["tst"];
00081 $_SESSION["il_object_type"] = $_POST["object_type"];
00082 $_SESSION["il_track_stat2"] = $_POST["stat2"];
00083
00084 $user_selection = $_POST["stat2"];
00085 $LehrModulID = $_SESSION["lmID"];
00086 $yearf = $_POST["yearf"];
00087 $monthf = $_POST["monthf"];
00088 $dayf = $_POST["dayf"];
00089 $yeart = $_POST["yeart"];
00090 $montht = $_POST["montht"];
00091 $dayt = $_POST["dayt"];
00092 $from = $yearf."-".$monthf."-".$dayf." 00:00:00";
00093 $to = $yeart."-".$montht."-".$dayt." 23:59:59";
00094 $user_IDs = $_SESSION["userSelected_stat"];
00095 }
00096
00097
00098
00099 if (count($user_IDs) > 0 || ($user_selection == "all")) {
00100
00101
00102
00103 if (count($user_IDs) > 0) {
00104 $stringUserID = "(";
00105 foreach ($user_IDs as $result_id) {
00106 $stringUserID = $stringUserID.$result_id.",";
00107 }
00108 $stringUserID = substr($stringUserID, 0, -1);
00109 $stringUserID = $stringUserID.")";
00110 }
00111
00112
00113
00114
00115 $SessionMaxVerweildauer = 1800;
00116 $IntervallMax[1] = 10;
00117 $IntervallMax[2] = 30;
00118 $IntervallMax[3] = 60;
00119 $IntervallMax[4] = 120;
00120 $IntervallMax[5] = 600;
00121 $IntervallMax[6] = $SessionMaxVerweildauer;
00122 $IntervallSeitenMax[0] = -1;
00123 $IntervallSeitenMax[1] = 0;
00124 $IntervallSeitenMax[2] = 1;
00125 $IntervallSeitenMax[3] = 5;
00126 $IntervallSeitenMax[4] = 20;
00127 $IntervallSeitenMax[5] = 50;
00128 $RankBenoetigteZugriffe = 1;
00129 $RankAnzahl = 10;
00130
00131 $KapitelAbdeckungsKennzahlFaktor2 = 0.5;
00132 $KapitelAbdeckungsKennzahlFaktor3 = 1.0;
00133 $KapitelAbdeckungsKennzahlFaktor4 = 1.5;
00134 $KapitelAbdeckungsKennzahlFaktor5 = 2.0;
00135
00136
00137
00138
00139
00140 $q = "SELECT child, parent,depth FROM lm_tree";
00141 $result = $ilias->db->query($q);
00142 while ($row = $result->fetchRow()) {
00143 $vatizumkind[$row[0]] = $row[1];
00144 $seitenTiefe[$row[0]] = $row[2];
00145 }
00146
00147
00148
00149 $q = "SELECT obj_id,title,type,lm_id FROM lm_data WHERE lm_id='".$LehrModulID."'";
00150
00151 $result = $ilias->db->query($q);
00152 while ($row = $result->fetchRow()) {
00153
00154
00155
00156 if ($row[2] == 'st') {
00157 $Kapitelanz ++;
00158 $KapitelID[$Kapitelanz] = $row[0];
00159 $KapitelName[$Kapitelanz] = $row[1];
00160 $KapitelLernModul[$Kapitelanz] = $row[3];
00161 $rKapitelID[$row[0]] = $Kapitelanz;
00162 }
00163 if ($row[2] == 'pg') {
00164 $Seitenanz ++;
00165 $SeitenID[$Seitenanz] = $row[0];
00166 $SeitenName[$Seitenanz] = $row[1];
00167 $SeitenLernModul[$Seitenanz] = $row[3];
00168 $rSeitenID[$row[0]] = $Seitenanz;
00169 }
00170 }
00171
00172
00173
00174 if ($_POST["stat2"] == 'all') {
00175 $q = "SELECT id, user_id,acc_obj_id,acc_sub_id,session_id, acc_time FROM ut_access WHERE acc_obj_id='".$LehrModulID."' AND acc_time>'".$from."' AND acc_time<'".$to."' ";
00176 } else {
00177 $q = "SELECT id, user_id, acc_obj_id, acc_sub_id, session_id, acc_time FROM ut_access WHERE acc_obj_id='".$LehrModulID."' AND acc_time>'".$from."' AND acc_time<'".$to."' AND user_id IN ".$stringUserID." ";
00178 }
00179 $result = $ilias->db->query($q);
00180
00181 while ($row = $result->fetchRow()) {
00182
00183 if (($rSeitenID[$row[3]] != 0) && ($rKapitelID[$vatizumkind[$row[3]]] != 0)) {
00184
00185 if ($row[1] > $UserTopID) {
00186 $UserTopID = $row[1];
00187 }
00188
00189 $UserZugriffe[$row[1]]++;
00190 $SeitenZugriffe[$rSeitenID[$row[3]]]++;
00191 $GesamtSeitenZugriffe ++;
00192 $KapitelSeitenZugriffe[$rKapitelID[$vatizumkind[$row[3]]]]++;
00193 $checkS = false;
00194
00195
00196
00197 for ($i = 0; $i <= count($SessionCheck[$row[1]]); $i ++) {
00198 if ($row[4] == $SessionCheck[$row[1]][$i][0]) {
00199 $pos = $SessionCheck[$row[1]][$i][1];
00200 $checkS = true;
00201 }
00202 }
00203
00204
00205
00206 if ($checkS) {
00207
00208
00209
00210 $SessionGesamtZugriffe ++;
00211 $SessionEndSekundeDummy[$pos] = (substr($row[5], -2));
00212 $SessionEndMinuteDummy[$pos] = (substr($row[5], -5, 2));
00213 $SessionEndStundeDummy[$pos] = (substr($row[5], -8, 2));
00214 $SessionEndGesamt = $SessionEndSekundeDummy[$pos] + $SessionEndMinuteDummy[$pos] * 60 + $SessionEndStundeDummy[$pos] * 60 * 60;
00215
00216 if (($SessionEndGesamt - $SessionStartGesamt[$pos]) > 0) {
00217 $SessionZugriffDifferenz = $SessionEndGesamt - $SessionStartGesamt[$pos];
00218 }
00219
00220 if ($SessionZugriffDifferenz < $SessionMaxVerweildauer) {
00221
00222
00223
00224 if ($SessionZugriffDifferenz <= $IntervallMax[1]) {
00225 $IntervallAnz[1]++;
00226 } else
00227 if ($SessionZugriffDifferenz <= $IntervallMax[2]) {
00228 $IntervallAnz[2]++;
00229 } else
00230 if ($SessionZugriffDifferenz <= $IntervallMax[3]) {
00231 $IntervallAnz[3]++;
00232 } else
00233 if ($SessionZugriffDifferenz <= $IntervallMax[4]) {
00234 $IntervallAnz[4]++;
00235 } else
00236 if ($SessionZugriffDifferenz <= $IntervallMax[5]) {
00237 $IntervallAnz[5]++;
00238 } else {
00239 $IntervallAnz[6]++;
00240 }
00241
00242 $MessbareSessionZugriffe ++;
00243
00244 $SessionsVerweildauer[$MessbareSessionZugriffe] = $SessionZugriffDifferenz;
00245
00246 if ($SessionZugriffe[$pos] == 1) {
00247 $MessbareSessions ++;
00248 $UserSessionAnz[$row[1]]++;
00249 }
00250
00251 $SessionZugriffe[$pos]++;
00252 $SeitenVerweildauerListe[$rSeitenID[$row[3]]][$SeitenMessbareZugriffe[$rSeitenID[$row[3]]]] = $SessionZugriffDifferenz;
00253 $SeitenMessbareZugriffe[$rSeitenID[$row[3]]]++;
00254 $SessionEndTime[$pos] = $row[5];
00255 $SessionStartGesamt[$pos] = $SessionEndGesamt;
00256 $SessionGesamtDauerAll += $SessionZugriffDifferenz;
00257 $SessionGesamtDauer[$pos] += $SessionZugriffDifferenz;
00258 $UserGesamtSessionsDauer[$row[1]] += $SessionZugriffDifferenz;
00259 $UserSessionZugriffe[$row[1]]++;
00260 $SeiteGesamtVerweilZeit[$rSeitenID[$row[3]]] += $SessionZugriffDifferenz;
00261
00262 $SessionVonNach[$SessionQuellSeite[$pos]][$rSeitenID[$row[3]]]++;
00263 $KapitelVonNach[$rKapitelID[$vatizumkind[$SeitenID[$SessionQuellSeite[$pos]]]]][$rKapitelID[$vatizumkind[$row[3]]]]++;
00264 $SessionQuellSeite[$pos] = $rSeitenID[$row[3]];
00265
00266 } else {
00267 $checkS = false;
00268 }
00269
00270 }
00271
00272
00273
00274 if ($checkS == false) {
00275
00276 $Sessionanz ++;
00277
00278 $aktSessionAnzahlUser = count($SessionCheck[$row[1]]) + 1;
00279 $SessionCheck[$row[1]][$aktSessionAnzahlUser][0] = $row[4];
00280 $SessionCheck[$row[1]][$aktSessionAnzahlUser][1] = $Sessionanz;
00281
00282 $SessionZugriffe[$Sessionanz] = 1;
00283 $SessionID[$Sessionanz] = $row[4];
00284 $SessionUserID[$Sessionanz] = $row[1];
00285 $SessionStartTime[$Sessionanz] = $row[5];
00286
00287 $SessionQuellSeite[$Sessionanz] = $rSeitenID[$row[3]];
00288 $SessionStartSekunde[$Sessionanz] = (substr($SessionStartTime[$Sessionanz], -2));
00289 $SessionStartMinute[$Sessionanz] = (substr($SessionStartTime[$Sessionanz], -5, 2));
00290 $SessionStartStunde[$Sessionanz] = (substr($SessionStartTime[$Sessionanz], -8, 2));
00291 $SessionStartGesamt[$Sessionanz] = $SessionStartSekunde[$Sessionanz] + $SessionStartMinute[$Sessionanz] * 60 + $SessionStartStunde[$Sessionanz] * 60 * 60;
00292
00293 }
00294 }
00295 }
00296
00297
00298
00299
00300
00301
00302
00303
00304 for ($i = 1; $i <= $Seitenanz; $i ++) {
00305
00306 if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[1]) {
00307 $IntervallSeitenAnz[1]++;
00308 } else
00309 if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[2]) {
00310 $IntervallSeitenAnz[2]++;
00311 } else
00312 if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[3]) {
00313 $IntervallSeitenAnz[3]++;
00314 } else
00315 if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[4]) {
00316 $IntervallSeitenAnz[4]++;
00317 } else
00318 if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[5]) {
00319 $IntervallSeitenAnz[5]++;
00320 } else {
00321 $IntervallSeitenAnz[6]++;
00322 }
00323 }
00324
00325
00326
00327
00328
00329 if (count($SessionsVerweildauer) > 0) {
00330 sort($SessionsVerweildauer);
00331 }
00332
00333
00334 if ($MessbareSessions > 0) {
00335 $SessionDurchschnittsDauer = $SessionGesamtDauerAll / $MessbareSessions;
00336 }
00337
00338
00339 if ($MessbareSessionZugriffe > 0) {
00340 $SeitenVerweildauerDurchschnitt = $SessionGesamtDauerAll / $MessbareSessionZugriffe;
00341 }
00342
00343
00344
00345 $SeitenVerweildauerSpannweite = $SessionsVerweildauer[$MessbareSessionZugriffe -1] - $SessionsVerweildauer[0];
00346
00347
00348
00349 if ($MessbareSessionZugriffe % 2 == 0) {
00350
00351 $VerweildauerMedianPosA = ($MessbareSessionZugriffe) / 2;
00352 $VerweildauerMedianPosB = ($MessbareSessionZugriffe +1) / 2 + 1;
00353 $VerweildauerMedian = ($SessionsVerweildauer[$VerweildauerMedianPosA -1] + $SessionsVerweildauer[$VerweildauerMedianPosB -1]) / 2;
00354 } else {
00355 $VerweildauerMedianPos = ($MessbareSessionZugriffe +1) / 2;
00356 $VerweildauerMedian = $SessionsVerweildauer[$VerweildauerMedianPos -1];
00357 }
00358
00359 $SeitenVerweildauerVarianz = ilLMStatistics::varianzSV($SessionsVerweildauer, $SeitenVerweildauerDurchschnitt);
00360
00361 $SeitenVerweildauerStandartAbw = sqrt($SeitenVerweildauerVarianz);
00362
00363 if ($SeitenVerweildauerStandartAbw > 0) {
00364 $SeitenVerweildauerVarKoef = $SeitenVerweildauerDurchschnitt / $SeitenVerweildauerStandartAbw;
00365 }
00366
00367
00368
00369 for ($i = 1; $i <= $Seitenanz; $i ++) {
00370 if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00371 $SeitenGesamtVerweilMax[$i] = $SeiteGesamtVerweilZeit[$i];
00372 $SeitenGesamtVerweilMaxID[$i] = $i;
00373 }
00374 }
00375
00376 if (count($SeitenGesamtVerweilMax) > 0) {
00377 array_multisort($SeitenGesamtVerweilMax, SORT_DESC, $SeitenGesamtVerweilMaxID);
00378 }
00379
00380
00381
00382 for ($i = 1; $i <= $Seitenanz; $i ++) {
00383 if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00384 $SeitenGesamtVerweilMin[$i] = $SeiteGesamtVerweilZeit[$i];
00385 $SeitenGesamtVerweilMinID[$i] = $i;
00386 }
00387 }
00388
00389 if (count($SeitenGesamtVerweilMin) > 0) {
00390 array_multisort($SeitenGesamtVerweilMin, SORT_ASC, $SeitenGesamtVerweilMinID);
00391 }
00392
00393
00394
00395 for ($i = 1; $i <= $Seitenanz; $i ++) {
00396 if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00397 $SeitenDurchschnittVerweilMax[$i] = $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i];
00398 $SeitenDurchschnittVerweilMaxID[$i] = $i;
00399 }
00400 }
00401 if (count($SeitenDurchschnittVerweilMax) > 0) {
00402 array_multisort($SeitenDurchschnittVerweilMax, SORT_DESC, $SeitenDurchschnittVerweilMaxID);
00403 }
00404
00405
00406
00407 for ($i = 1; $i <= $Seitenanz; $i ++) {
00408 if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00409 $SeitenDurchschnittVerweilMin[$i] = $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i];
00410 $SeitenDurchschnittVerweilMinID[$i] = $i;
00411 }
00412 }
00413 if (count($SeitenDurchschnittVerweilMin) > 0) {
00414 array_multisort($SeitenDurchschnittVerweilMin, SORT_ASC, $SeitenDurchschnittVerweilMinID);
00415 }
00416
00417
00418
00419
00420
00421 for ($i = 1; $i <= $UserTopID; $i ++) {
00422 if ($UserGesamtSessionsDauer[$i] > 0) {
00423 $UserGesamtSessionsDauerMax[$i] = $UserGesamtSessionsDauer[$i];
00424 $UserGesamtSessionsDauerMaxID[$i] = $i;
00425 } else {
00426 $UserGesamtSessionsDauerMax[$i] = "";
00427 $UserGesamtSessionsDauerMaxID[$i] = "";
00428 }
00429 }
00430 if (count($UserGesamtSessionsDauerMax) > 0) {
00431 array_multisort($UserGesamtSessionsDauerMax, SORT_DESC, $UserGesamtSessionsDauerMaxID);
00432 }
00433
00434
00435
00436 for ($i = 1; $i <= $UserTopID; $i ++) {
00437 if ($UserSessionAnz[$i] > 0) {
00438 $UserSessionAnzMax[$i] = $UserSessionAnz[$i];
00439 $UserSessionAnzMaxID[$i] = $i;
00440 } else {
00441 $UserSessionAnzMax[$i] = "";
00442 $UserSessionAnzMaxID[$i] = "";
00443 }
00444 }
00445 if (count($UserSessionAnzMax) > 0) {
00446 array_multisort($UserSessionAnzMax, SORT_DESC, $UserSessionAnzMaxID);
00447 }
00448
00449
00450
00451 for ($i = 0; $i <= $UserTopID; $i ++) {
00452 if ($UserZugriffe[$i] > 0) {
00453 $UserAnz ++;
00454 }
00455 }
00456
00457 for ($i = 0; $i <= $UserTopID; $i ++) {
00458 if ($UserSessionAnz[$i] > 0) {
00459 $UserMessbarAnz ++;
00460 }
00461 }
00462
00463
00464
00465
00466
00467 for ($i = 1; $i <= $Seitenanz; $i ++) {
00468
00469 if ($SeitenZugriffe[$i] > 0) {
00470 $SeitenZugriffMax[$i] = $SeitenZugriffe[$i];
00471 $SeitenZugriffMaxID[$i] = $i;
00472 } else {
00473 $SeitenZugriffMax[$i] = "";
00474 $SeitenZugriffMaxID[$i] = "";
00475 }
00476 }
00477
00478 if (count($SeitenZugriffMax) > 0) {
00479 array_multisort($SeitenZugriffMax, SORT_DESC, $SeitenZugriffMaxID);
00480 }
00481
00482
00483
00484 for ($i = 1; $i <= $Seitenanz; $i ++) {
00485
00486 if ($SeitenZugriffe[$i] > 0) {
00487 $SeitenZugriffMin[$i] = $SeitenZugriffe[$i];
00488 $SeitenZugriffMinID[$i] = $i;
00489 } else {
00490 $SeitenZugriffMin[$i] = "";
00491 $SeitenZugriffMinID[$i] = $i;
00492 }
00493 }
00494
00495 if (count($SeitenZugriffMin) > 0) {
00496 array_multisort($SeitenZugriffMin, SORT_ASC, $SeitenZugriffMinID);
00497 }
00498
00499
00500
00501 if (count($SeitenZugriffMax) % 2 == 0) {
00502
00503 $SeitenZugriffeMedianPosA = (count($SeitenZugriffMax)) / 2;
00504 $SeitenZugriffeMedianPosB = (count($SeitenZugriffMax) + 1) / 2 + 1;
00505 $SeitenZugriffeMedian = ($SeitenZugriffMax[$SeitenZugriffeMedianPosA -1] + $SeitenZugriffMax[$SeitenZugriffeMedianPosB -1]) / 2;
00506 } else {
00507 $SeitenZugriffeMedianPos = (count($SeitenZugriffMax) + 1) / 2;
00508 $SeitenZugriffeMedian = $SeitenZugriffMax[$SeitenZugriffeMedianPos -1];
00509 }
00510
00511
00512
00513 $SeitenZugriffeSpannweite = $SeitenZugriffMax[0] - $SeitenZugriffMax[count($SeitenZugriffMax) - 1];
00514
00515
00516 $MaxZW = 0;
00517 for ($i = 1; $i <= $Seitenanz; $i ++) {
00518 $ZugriffsWert[$SeitenZugriffe[$i]]++;
00519 if ($SeitenZugriffe[$i] > $MaxZW) {
00520 $MaxZW = $SeitenZugriffe[$i];
00521 }
00522 }
00523 for ($i = 0; $i <= $MaxZW; $i ++) {
00524 if ($ZugriffsWert[$i] > $ZugriffsWertMaxAus) {
00525 $ZugriffsWertMaxAus = $ZugriffsWert[$i];
00526 $ZugriffsWertMax = $i;
00527 }
00528 }
00529
00530
00531
00532 if ($Seitenanz > 0) {
00533 $SeitenZugriffeVarianz = ilLMStatistics::varianzSV($SeitenZugriffMax, $GesamtSeitenZugriffe / $Seitenanz);
00534 }
00535 $SeitenZugriffeStandartAbw = sqrt($SeitenZugriffeVarianz);
00536
00537 if (($Seitenanz > 0) && ($GesamtSeitenZugriffe / $Seitenanz) > 0) {
00538 $SeitenZugriffeVarKoef = $SeitenZugriffeStandartAbw / ($GesamtSeitenZugriffe / $Seitenanz);
00539 }
00540
00541
00542
00543
00544
00545 for ($i = 1; $i <= $Sessionanz; $i ++) {
00546 $SessionGesamtDauerMax[$i] = $SessionGesamtDauer[$i];
00547 $SessionGesamtDauerMaxID[$i] = $i;
00548 }
00549
00550 if (count($SessionGesamtDauerMax) > 0) {
00551 array_multisort($SessionGesamtDauerMax, SORT_DESC, $SessionGesamtDauerMaxID);
00552 }
00553
00554 if ($Sessionanz > 0) {
00555 $SessionDurschnittsZeit = $GesamtSeitenZugriffe / $Sessionanz;
00556 }
00557
00558
00559
00560 for ($i = 1; $i <= $Seitenanz; $i ++) {
00561 if ($SeitenMessbareZugriffe[$i] > 0) {
00562 $EinzelSeitenVarianz[$i] = ilLMStatistics::varianzSV($SeitenVerweildauerListe[$i], $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i]);
00563 if ($EinzelSeitenVarianz[$i] > 0) {
00564 $EinzelSeitenVarKoef[$i] = ($SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i]) / sqrt($EinzelSeitenVarianz[$i]);
00565 }
00566 }
00567 }
00568
00569 for ($i = 1; $i <= $Seitenanz; $i ++) {
00570 if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00571 $EinzelSeitenVarMax[$i] = $EinzelSeitenVarianz[$i];
00572 $EinzelSeitenVarMaxID[$i] = $i;
00573 }
00574 }
00575 if (count($EinzelSeitenVarMax) > 0) {
00576 array_multisort($EinzelSeitenVarMax, SORT_DESC, $EinzelSeitenVarMaxID);
00577 }
00578
00579
00580 for ($i = 1; $i <= $Seitenanz; $i ++) {
00581 if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00582 $EinzelSeitenVarMin[$i] = $EinzelSeitenVarianz[$i];
00583 $EinzelSeitenVarMinID[$i] = $i;
00584 }
00585 }
00586 if (count($EinzelSeitenVarMin) > 0) {
00587 array_multisort($EinzelSeitenVarMin, SORT_ASC, $EinzelSeitenVarMinID);
00588 }
00589
00590
00591 for ($i = 1; $i <= $Seitenanz; $i ++) {
00592 if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00593 $EinzelSeitenVarKoefMax[$i] = $EinzelSeitenVarKoef[$i];
00594 $EinzelSeitenVarKoefMaxID[$i] = $i;
00595 }
00596 }
00597 if (count($EinzelSeitenVarKoefMax) > 0) {
00598 array_multisort($EinzelSeitenVarKoefMax, SORT_DESC, $EinzelSeitenVarKoefMaxID);
00599 }
00600
00601
00602 for ($i = 1; $i <= $Seitenanz; $i ++) {
00603 if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00604 $EinzelSeitenVarKoefMin[$i] = $EinzelSeitenVarKoef[$i];
00605 $EinzelSeitenVarKoefMinID[$i] = $i;
00606 }
00607 }
00608 if (count($EinzelSeitenVarKoefMin) > 0) {
00609 array_multisort($EinzelSeitenVarKoefMin, SORT_ASC, $EinzelSeitenVarKoefMinID);
00610 }
00611
00612
00613
00614
00615
00616 $knoten = 0;
00617 $tiefe = 0;
00618 $KapitelAbdeckungsKennzahl1 = 1;
00619
00620 for ($i = 1; $i <= $Seitenanz; $i ++) {
00621
00622 $knoten = $SeitenID[$i];
00623 $tiefe = $seitenTiefe[$SeitenID[$i]];
00624
00625 while ($tiefe > 1) {
00626
00627 $knoten = $vatizumkind[$knoten];
00628 $KapitelZugriffe[$rKapitelID[$knoten]] += $SeitenZugriffe[$i];
00629 $KapitelGesamtVerweilZeit[$rKapitelID[$knoten]] += $SeiteGesamtVerweilZeit[$i];
00630 $KapitelMessbareZugriffe[$rKapitelID[$knoten]] += $SeitenMessbareZugriffe[$i];
00631 $KapitelSeitenSumme[$rKapitelID[$knoten]]++;
00632 if ($tiefe == 2) {
00633 $KapitelGesamtSeitenAnzEbene2 ++;
00634 }
00635 if ($tiefe == 3) {
00636 $KapitelGesamtSeitenAnzEbene3 ++;
00637 }
00638 if ($tiefe == 4) {
00639 $KapitelGesamtSeitenAnzEbene4 ++;
00640 }
00641 if ($tiefe == 5) {
00642 $KapitelGesamtSeitenAnzEbene5 ++;
00643 }
00644 $tiefe = $seitenTiefe[$knoten];
00645 }
00646 }
00647
00648
00649
00650 for ($i = 1; $i <= $Kapitelanz; $i ++) {
00651
00652 if ($seitenTiefe[$KapitelID[$i]] == 2) {
00653
00654 $KapitelTiefe2Anzahl ++;
00655
00656 if ($KapitelZugriffe[$i] > 0) {
00657 $KapitelZugriffMax2[$i] = $KapitelZugriffe[$i];
00658 $KapitelZugriffMaxID2[$i] = $i;
00659 } else {
00660 $KapitelZugriffMax2[$i] = "";
00661 $KapitelZugriffMaxID2[$i] = $i;
00662 }
00663 }
00664 if ($seitenTiefe[$KapitelID[$i]] == 3) {
00665 $KapitelTiefe3Anzahl ++;
00666 if ($KapitelZugriffe[$i] > 0) {
00667 $KapitelZugriffMax3[$i] = $KapitelZugriffe[$i];
00668 $KapitelZugriffMaxID3[$i] = $i;
00669 } else {
00670 $KapitelZugriffMax3[$i] = "";
00671 $KapitelZugriffMaxID3[$i] = $i;
00672 }
00673 }
00674 if ($seitenTiefe[$KapitelID[$i]] == 4) {
00675 $KapitelTiefe4Anzahl ++;
00676 if ($KapitelZugriffe[$i] > 0) {
00677 $KapitelZugriffMax4[$i] = $KapitelZugriffe[$i];
00678 $KapitelZugriffMaxID4[$i] = $i;
00679 } else {
00680 $KapitelZugriffMax4[$i] = "";
00681 $KapitelZugriffMaxID4[$i] = $i;
00682 }
00683 }
00684 if ($seitenTiefe[$KapitelID[$i]] >= 5) {
00685 $KapitelTiefe5Anzahl ++;
00686 if ($KapitelZugriffe[$i] > 0) {
00687 $KapitelZugriffMax5[$i] = $KapitelZugriffe[$i];
00688 $KapitelZugriffMaxID5[$i] = $i;
00689 } else {
00690 $KapitelZugriffMax5[$i] = "";
00691 $KapitelZugriffMaxID5[$i] = $i;
00692 }
00693 }
00694 }
00695
00696 if (count($KapitelZugriffMax2) > 0) {
00697 array_multisort($KapitelZugriffMax2, SORT_DESC, $KapitelZugriffMaxID2);
00698 }
00699 if (count($KapitelZugriffMax3) > 0) {
00700 array_multisort($KapitelZugriffMax3, SORT_DESC, $KapitelZugriffMaxID3);
00701 }
00702 if (count($KapitelZugriffMax4) > 0) {
00703 array_multisort($KapitelZugriffMax4, SORT_DESC, $KapitelZugriffMaxID4);
00704 }
00705 if (count($KapitelZugriffMax5) > 0) {
00706 array_multisort($KapitelZugriffMax5, SORT_DESC, $KapitelZugriffMaxID5);
00707 }
00708
00709
00710
00711 for ($i = 1; $i <= $Kapitelanz; $i ++) {
00712
00713 if ($KapitelZugriffe[$i] > 0) {
00714 $KapitelZugriffMin[$i] = $KapitelZugriffe[$i];
00715 $KapitelZugriffMinID[$i] = $i;
00716 } else {
00717 $KapitelZugriffMin[$i] = "";
00718 $KapitelZugriffMinID[$i] = $i;
00719 }
00720 }
00721
00722 if (count($KapitelZugriffMin) > 0) {
00723 array_multisort($KapitelZugriffMin, SORT_ASC, $KapitelZugriffMinID);
00724 }
00725
00726
00727
00728 for ($i = 1; $i <= $Kapitelanz; $i ++) {
00729 if ($seitenTiefe[$KapitelID[$i]] == 2) {
00730 if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00731 $KapitelGesamtVerweilMax2[$i] = $KapitelGesamtVerweilZeit[$i];
00732 $KapitelGesamtVerweilMaxID2[$i] = $i;
00733 }
00734 }
00735 if ($seitenTiefe[$KapitelID[$i]] == 3) {
00736 if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00737 $KapitelGesamtVerweilMax3[$i] = $KapitelGesamtVerweilZeit[$i];
00738 $KapitelGesamtVerweilMaxID3[$i] = $i;
00739 }
00740 }
00741 if ($seitenTiefe[$KapitelID[$i]] == 4) {
00742 if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00743 $KapitelGesamtVerweilMax4[$i] = $KapitelGesamtVerweilZeit[$i];
00744 $KapitelGesamtVerweilMaxID4[$i] = $i;
00745 }
00746 }
00747 if ($seitenTiefe[$KapitelID[$i]] >= 5) {
00748 if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00749 $KapitelGesamtVerweilMax5[$i] = $KapitelGesamtVerweilZeit[$i];
00750 $KapitelGesamtVerweilMaxID5[$i] = $i;
00751 }
00752 }
00753 }
00754
00755 if (count($KapitelGesamtVerweilMax2) > 0) {
00756 array_multisort($KapitelGesamtVerweilMax2, SORT_DESC, $KapitelGesamtVerweilMaxID2);
00757 }
00758 if (count($KapitelGesamtVerweilMax3) > 0) {
00759 array_multisort($KapitelGesamtVerweilMax3, SORT_DESC, $KapitelGesamtVerweilMaxID3);
00760 }
00761 if (count($KapitelGesamtVerweilMax4) > 0) {
00762 array_multisort($KapitelGesamtVerweilMax4, SORT_DESC, $KapitelGesamtVerweilMaxID4);
00763 }
00764 if (count($KapitelGesamtVerweilMax5) > 0) {
00765 array_multisort($KapitelGesamtVerweilMax5, SORT_DESC, $KapitelGesamtVerweilMaxID5);
00766 }
00767
00768
00769 for ($i = 1; $i <= $Kapitelanz; $i ++) {
00770 if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
00771 $KapitelGesamtVerweilMin[$i] = $KapitelGesamtVerweilZeit[$i];
00772 $KapitelGesamtVerweilMinID[$i] = $i;
00773 }
00774 }
00775
00776 if (count($KapitelGesamtVerweilMin) > 0) {
00777 array_multisort($KapitelGesamtVerweilMin, SORT_ASC, $KapitelGesamtVerweilMinID);
00778 }
00779
00780
00781
00782 for ($i = 1; $i <= $Kapitelanz; $i ++) {
00783 $KapitelSeitenSummeMax[$i] = $KapitelSeitenSumme[$i];
00784 $KapitelSeitenSummeMaxID[$i] = $i;
00785 }
00786
00787 if (count($KapitelGesamtVerweilMax) > 0) {
00788 array_multisort($KapitelSeitenSummeMax, SORT_DESC, $KapitelSeitenSummeMaxID);
00789 }
00790
00791
00792 $summe = 0;
00793 for ($i = 0; $i <= $Kapitelanz; $i ++) {
00794 $summe += $KapitelZugriffMax2[$i];
00795 }
00796 if ($KapitelGesamtSeitenAnzEbene2 > 0) {
00797 $KapitelDurchZugriffe2 = $summe / $KapitelGesamtSeitenAnzEbene2;
00798 }
00799 $summe = 0;
00800 for ($i = 0; $i <= $Kapitelanz; $i ++) {
00801 $summe += $KapitelZugriffMax3[$i];
00802 }
00803 if ($KapitelGesamtSeitenAnzEbene3 > 0) {
00804 $KapitelDurchZugriffe3 = $summe / $KapitelGesamtSeitenAnzEbene3;
00805 }
00806 $summe = 0;
00807 for ($i = 0; $i <= $Kapitelanz; $i ++) {
00808 $summe += $KapitelZugriffMax4[$i];
00809 }
00810 if ($KapitelGesamtSeitenAnzEbene4 > 0) {
00811 $KapitelDurchZugriffe4 = $summe / $KapitelGesamtSeitenAnzEbene4;
00812 }
00813 $summe = 0;
00814 for ($i = 0; $i <= $Kapitelanz; $i ++) {
00815 $summe += $KapitelZugriffMax5[$i];
00816 }
00817 if ($KapitelGesamtSeitenAnzEbene5 > 0) {
00818 $KapitelDurchZugriffe5 = $summe / $KapitelGesamtSeitenAnzEbene5;
00819 }
00820
00821 for ($i = 1; $i <= $Seitenanz; $i ++) {
00822 $knoten = $SeitenID[$i];
00823 $tiefe = $seitenTiefe[$SeitenID[$i]];
00824
00825 while ($tiefe > 1) {
00826 $knoten = $vatizumkind[$knoten];
00827 if (($seitenTiefe[$knoten] == 2) && ($KapitelDurchZugriffe2 > 0)) {
00828 if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
00829 $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
00830 }
00831 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor2) {
00832 $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
00833 }
00834 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor3) {
00835 $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
00836 }
00837 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor4) {
00838 $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
00839 }
00840 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor5) {
00841 $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
00842 }
00843 }
00844 if (($seitenTiefe[$knoten] == 3) && ($KapitelDurchZugriffe3 > 0)) {
00845 if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
00846 $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
00847 }
00848 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor2) {
00849 $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
00850 }
00851 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor3) {
00852 $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
00853 }
00854 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor4) {
00855 $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
00856 }
00857 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor5) {
00858 $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
00859 }
00860 }
00861 if (($seitenTiefe[$knoten] == 4) && ($KapitelDurchZugriffe4 > 0)) {
00862 if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
00863 $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
00864 }
00865 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor2) {
00866 $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
00867 }
00868 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor3) {
00869 $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
00870 }
00871 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor4) {
00872 $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
00873 }
00874 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor5) {
00875 $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
00876 }
00877 }
00878 if (($seitenTiefe[$knoten] >= 5) && ($KapitelDurchZugriffe5 > 0)) {
00879 if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
00880 $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
00881 }
00882 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor2) {
00883 $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
00884 }
00885 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor3) {
00886 $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
00887 }
00888 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor4) {
00889 $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
00890 }
00891 if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor5) {
00892 $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
00893 }
00894 }
00895 $tiefe = $seitenTiefe[$knoten];
00896 }
00897
00898 }
00899
00900
00912 $TNA = 300;
00913 $hop = 3;
00914
00915
00916
00917
00918
00919
00920
00921
00922
00923
00924
00925
00926
00927
00928 $slider = 1;
00929 $SeitenStatsName[$slider] = $lng->txt("stats_page_number");
00930 $SeitenStatsWert[$slider] = round($Seitenanz);
00931 $slider ++;
00932 $SeitenStatsName[$slider] = $lng->txt("stats_page_number_access");
00933 $SeitenStatsWert[$slider] = round($GesamtSeitenZugriffe)."z";
00934 $slider ++;
00935 $SeitenStatsName[$slider] = $lng->txt("stats_page_total_dwell_time");
00936 $SeitenStatsWert[$slider] = ilLMStatistics::s_to_h($SessionGesamtDauerAll)." (".round($SessionGesamtDauerAll)."s)";
00937 $slider ++;
00938 if ($Seitenanz > 0) {
00939 $SeitenStatsName[$slider] = $lng->txt("stats_page_average_access");
00940 $SeitenStatsWert[$slider] = round(($GesamtSeitenZugriffe / $Seitenanz), 2)."z";
00941 $slider ++;
00942 }
00943 $SeitenStatsName[$slider] = $lng->txt("stats_page_median_access");
00944 $SeitenStatsWert[$slider] = round($SeitenZugriffeMedian)."z";
00945 $slider ++;
00946 $SeitenStatsName[$slider] = $lng->txt("stats_page_mode_access");
00947 $SeitenStatsWert[$slider] = $lng->txt("stats_occurrence").": ".round($ZugriffsWertMax)." (#: ".$ZugriffsWertMaxAus." )";
00948 $slider ++;
00949 $SeitenStatsName[$slider] = $lng->txt("stats_page_range_access");
00950 $SeitenStatsWert[$slider] = round($SeitenZugriffeSpannweite)."z";
00951 $slider ++;
00952 $SeitenStatsName[$slider] = $lng->txt("stats_page_variance_access");
00953 $SeitenStatsWert[$slider] = round($SeitenZugriffeVarianz, 2);
00954 $slider ++;
00955 $SeitenStatsName[$slider] = $lng->txt("stats_page_deviation_access");
00956 $SeitenStatsWert[$slider] = round($SeitenZugriffeStandartAbw, 2)."z";
00957 $slider ++;
00958 $SeitenStatsName[$slider] = $lng->txt("stats_page_varcoeff_access");
00959 $SeitenStatsWert[$slider] = round($SeitenZugriffeVarKoef, 2);
00960 $slider ++;
00961 $SeitenStatsName[$slider] = $lng->txt("stats_page_average_dwell_time");
00962 $SeitenStatsWert[$slider] = round($SeitenVerweildauerDurchschnitt, 2)."s";
00963 $slider ++;
00964 $SeitenStatsName[$slider] = $lng->txt("stats_page_median_dwell_time");
00965 $SeitenStatsWert[$slider] = round($VerweildauerMedian);
00966 $slider ++;
00967 $SeitenStatsName[$slider] = $lng->txt("stats_page_range_dwell_time");
00968 $SeitenStatsWert[$slider] = round($SeitenVerweildauerSpannweite)."s";
00969 $slider ++;
00970 $SeitenStatsName[$slider] = $lng->txt("stats_page_variance_dwell_time");
00971 $SeitenStatsWert[$slider] = round($SeitenVerweildauerVarianz, 2);
00972 $slider ++;
00973 $SeitenStatsName[$slider] = $lng->txt("stats_page_deviation_dwell_time");
00974 $SeitenStatsWert[$slider] = round($SeitenVerweildauerStandartAbw, 2)."s";
00975 $slider ++;
00976 $SeitenStatsName[$slider] = $lng->txt("stats_page_varcoeff_dwell_time");
00977 $SeitenStatsWert[$slider] = round($SeitenVerweildauerVarKoef, 2);
00978 $slider ++;
00979 $slider = count($SeitenStatsWert);
00980
00981 $slider += 2;
00982
00983 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_longest_total_dwell_time")."</b>";
00984 $SeitenStatsWert[$slider] = "";
00985 for ($i = 0; $i < $RankAnzahl; $i ++) {
00986 $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenGesamtVerweilMaxID[$i]], 0, $TNA));
00987 $SeitenStatsWert[$i +1 + $slider] = ilLMStatistics::s_to_h($SeitenGesamtVerweilMax[$i])." (".
00988 (is_numeric($SeitenGesamtVerweilMax[$i])?$SeitenGesamtVerweilMax[$i]:"0")."s, mZ:".(is_numeric($SeitenMessbareZugriffe[$SeitenGesamtVerweilMaxID[$i]])?$SeitenMessbareZugriffe[$SeitenGesamtVerweilMaxID[$i]]:"0").")";
00989 }
00990 $slider += $RankAnzahl + $hop;
00991
00992 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_stubbiest_total_dwell_time")."</b>";
00993 $SeitenStatsWert[$slider] = "";
00994 for ($i = 0; $i < $RankAnzahl; $i ++) {
00995 $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenGesamtVerweilMinID[$i]], 0, $TNA));
00996 $SeitenStatsWert[$i +1 + $slider] =
00997 round(is_numeric($SeitenGesamtVerweilMin[$i])?$SeitenGesamtVerweilMin[$i]:"0")."s (mZ:".(is_numeric($SeitenMessbareZugriffe[$SeitenGesamtVerweilMinID[$i]])?$SeitenMessbareZugriffe[$SeitenGesamtVerweilMinID[$i]]:"0") .")";
00998 }
00999 $slider += $RankAnzahl + $hop;
01000
01001 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_longest_average_dwell_time")."</b>";
01002 $SeitenStatsWert[$slider] = "";
01003 for ($i = 0; $i < $RankAnzahl; $i ++) {
01004 $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenDurchschnittVerweilMaxID[$i]], 0, $TNA));
01005 $SeitenStatsWert[$i +1 + $slider] =
01006 round(is_numeric($SeitenDurchschnittVerweilMax[$i])?$SeitenDurchschnittVerweilMax[$i]:0)."s (mZ:".(is_numeric($SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMaxID[$i]])?$SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMaxID[$i]]:"0").")";
01007 }
01008 $slider += $RankAnzahl + $hop;
01009
01010 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_stubbiest_average_dwell_time")."</b>";
01011 $SeitenStatsWert[$slider] = "";
01012 for ($i = 0; $i < $RankAnzahl; $i ++) {
01013 $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenDurchschnittVerweilMinID[$i]], 0, $TNA));
01014 $SeitenStatsWert[$i +1 + $slider] =
01015 round($SeitenDurchschnittVerweilMin[$i])."s (mZ:".(is_numeric($SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMinID[$i]])?$SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMinID[$i]]:"0").")";
01016 }
01017 $slider += $RankAnzahl + $hop;
01018
01019 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_most_access")."</b>";
01020 $SeitenStatsWert[$slider] = "";
01021 for ($i = 0; $i < $RankAnzahl; $i ++) {
01022 $SeitenStatsName[($i +1) + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenZugriffMaxID[$i]], 0, $TNA));
01023 $SeitenStatsWert[($i +1) + $slider] = round($SeitenZugriffMax[$i])."z ";
01024 }
01025 $slider += $RankAnzahl + $hop;
01026
01027 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_fewest_access")."</b>";
01028 $SeitenStatsWert[$slider] = "";
01029 for ($i = 0; $i < $RankAnzahl; $i ++) {
01030 $SeitenStatsName[($i +1) + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenZugriffMinID[$i]], 0, $TNA));
01031 $SeitenStatsWert[($i +1) + $slider] = round($SeitenZugriffMin[$i])."z ";
01032 }
01033 $slider += $RankAnzahl + $hop;
01034
01035 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_highest_deviation")."</b>";
01036 $SeitenStatsWert[$slider] = "";
01037 for ($i = 0; $i < $RankAnzahl; $i ++) {
01038 $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarMaxID[$i]], 0, $TNA));
01039 $SeitenStatsWert[$i +1 + $slider] = round(sqrt($EinzelSeitenVarMax[$i]), 2)." (mZ:"
01040 .(is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarMaxID[$i]])?$SeitenMessbareZugriffe[$EinzelSeitenVarMaxID[$i]]:0).")";
01041 }
01042 $slider += $RankAnzahl + $hop;
01043
01044 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_least_deviation")."</b>";
01045 $SeitenStatsWert[$slider] = "";
01046 for ($i = 0; $i < $RankAnzahl; $i ++) {
01047 $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarMinID[$i]], 0, $TNA));
01048 $SeitenStatsWert[$i +1 + $slider] = round(sqrt($EinzelSeitenVarMin[$i]), 2)." (mZ:".
01049 (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarMinID[$i]])?$SeitenMessbareZugriffe[$EinzelSeitenVarMinID[$i]]:0).")";
01050 }
01051 $slider += $RankAnzahl + $hop;
01052
01053 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_highest_varcoeff")."</b>";
01054 $SeitenStatsWert[$slider] = "";
01055 for ($i = 0; $i < $RankAnzahl; $i ++) {
01056 $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarKoefMaxID[$i]], 0, $TNA));
01057 $SeitenStatsWert[$i +1 + $slider] = round(sqrt($EinzelSeitenVarKoefMax[$i]), 2)." (mZ:".
01058 (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarKoefMaxID[$i]])?$SeitenMessbareZugriffe[$EinzelSeitenVarKoefMaxID[$i]]:0).")";
01059 }
01060 $slider += $RankAnzahl + $hop;
01061
01062 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_lowest_varcoeff")."</b>";
01063 $SeitenStatsWert[$slider] = "";
01064 for ($i = 0; $i < $RankAnzahl; $i ++) {
01065 $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarKoefMinID[$i]], 0, $TNA));
01066 $SeitenStatsWert[$i +1 + $slider] = round(sqrt($EinzelSeitenVarKoefMin[$i]), 2)." (mZ:".
01067 (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarKoefMinID[$i]])?$SeitenMessbareZugriffe[$EinzelSeitenVarKoefMinID[$i]]:0).")";
01068 }
01069 $slider += $RankAnzahl + $hop;
01070
01071 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_interval_dwell_time")."</b>";
01072 $SeitenStatsWert[$slider] = "";
01073 $summe = 0;
01074 for ($i = 1; $i <= count($IntervallMax); $i ++) {
01075 $SeitenStatsName[$i + $slider] = $IntervallMax[$i -1].$lng->txt("stats_sec")." ".$lng->txt("stats_until")." ".$IntervallMax[$i]." ".$lng->txt("stats_sec").":";
01076 $SeitenStatsWert[$i + $slider] = round($IntervallAnz[$i])."z";
01077 $summe += $IntervallAnz[$i];
01078 }
01079 $slider += count($IntervallMax) + 1;
01080
01081 $SeitenStatsName[$slider] = $lng->txt("stats_summation").": ";
01082 $SeitenStatsWert[$slider] = $summe." ".$lng->txt("stats_accesses");
01083
01084 $slider += $hop;
01085
01086 $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_interval_page_access")."</b>";
01087 $SeitenStatsWert[$slider] = "";
01088 $summe = 0;
01089 for ($i = 1; $i <= count($IntervallSeitenMax); $i ++) {
01090 $SeitenStatsName[$i + $slider] = ($IntervallSeitenMax[$i -1] + 1)." ".$lng->txt("stats_until")." ".$IntervallSeitenMax[$i]." ".$lng->txt("stats_accesses");
01091 $SeitenStatsWert[$i + $slider] = round($IntervallSeitenAnz[$i])." ".$lng->txt("stats_pages");
01092 $summe += $IntervallSeitenAnz[$i];
01093 }
01094 $slider += count($IntervallSeitenMax) + 2;
01095
01096 $SeitenStatsName[$slider] = $lng->txt("stats_summation").": ";
01097 $SeitenStatsWert[$slider] = $summe." ".$lng->txt("stats_pages");
01098
01099 $slider += $hop;
01100
01101
01102 $slider2 ++;
01103 $SessionStatsName[$slider2] = $lng->txt("stats_session_number");
01104 $SessionStatsWert[$slider2] = round($Sessionanz);
01105 $slider2 ++;
01106 $SessionStatsName[$slider2] = $lng->txt("stats_session_evaluable");
01107 $SessionStatsWert[$slider2] = round($MessbareSessions);
01108 $slider2 ++;
01109 $SessionStatsName[$slider2] = $lng->txt("stats_session_involved_usr");
01110 $SessionStatsWert[$slider2] = round($UserAnz);
01111 $slider2 ++;
01112 $SessionStatsName[$slider2] = $lng->txt("stats_session_evaluable_usr");
01113 $SessionStatsWert[$slider2] = round($UserMessbarAnz);
01114 $slider2 ++;
01115 $SessionStatsName[$slider2] = $lng->txt("stats_session_evaluable_access");
01116 $SessionStatsWert[$slider2] = round($MessbareSessionZugriffe);
01117 $slider2 ++;
01118 $SessionStatsName[$slider2] = $lng->txt("stats_session_average_page_access");
01119 $SessionStatsWert[$slider2] = round($SessionDurschnittsZeit, 4);
01120 $slider2 ++;
01121 $SessionStatsName[$slider2] = $lng->txt("stats_session_total_duration");
01122 $SessionStatsWert[$slider2] = ilLMStatistics::s_to_h($SessionGesamtDauerAll)." (".$SessionGesamtDauerAll.$lng->txt("stats_sec").")";
01123 $slider2 ++;
01124 $SessionStatsName[$slider2] = $lng->txt("stats_session_average_length");
01125 $SessionStatsWert[$slider2] = ilLMStatistics::s_to_m($SessionDurchschnittsDauer);
01126 $slider2 ++;
01127
01128 $slider2 += $hop;
01129
01130 $SessionStatsName[$slider2] = "<b>".$lng->txt("stats_session_longest")."</b>";
01131 $SessionStatsWert[$slider2] = "";
01132
01133 include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
01134
01135 $anonymous = !ilObjUserTracking::_enabledUserRelatedData();
01136
01137
01138 for ($i = 0; $i < $RankAnzahl; $i ++) {
01139 $SessionStatsName[$i +1 + $slider2] = ($i +1).". ".$lng->txt("stats_user")." ". ($anonymous?$i+1:ilObjUser::_lookupLogin($SessionUserID[$SessionGesamtDauerMaxID[$i]]));
01140 $SessionStatsWert[$i +1 + $slider2] = ilLMStatistics::s_to_h($SessionGesamtDauerMax[$i])." (".$SessionGesamtDauerMax[$i].$lng->txt("stats_sec").")";
01141 }
01142 $slider2 += $RankAnzahl + $hop;
01143
01144 $SessionStatsName[$slider2] = "<b>".$lng->txt("stats_session_longest_total_duration_usr")."</b>";
01145 $SessionStatsWert[$slider2] = "";
01146 for ($i = 0; $i < $RankAnzahl; $i ++) {
01147 $SessionStatsName[$i +1 + $slider2] = ($i +1).". ".$lng->txt("stats_user")." ".($anonymous?$i+1:ilObjUser::_lookupLogin($UserGesamtSessionsDauerMaxID[$i]));
01148 $SessionStatsWert[$i +1 + $slider2] = ilLMStatistics::s_to_h($UserGesamtSessionsDauerMax[$i])." (".$UserGesamtSessionsDauerMax[$i].$lng->txt("stats_sec").")";
01149 }
01150 $slider2 += $RankAnzahl + $hop;
01151
01152 $SessionStatsName[$slider2] = "<b>".$lng->txt("stats_session_most").":"."</b>";
01153 $SessionStatsWert[$slider2] = "";
01154 for ($i = 0; $i < $RankAnzahl; $i ++) {
01155 $SessionStatsName[$i +1 + $slider2] = ($i +1).". ".$lng->txt("stats_user")." ".($anonymous?$i+1:ilObjUser::_lookupLogin($UserSessionAnzMaxID[$i]));
01156 $SessionStatsWert[$i +1 + $slider2] = round($UserSessionAnzMax[$i])." ".$lng->txt("stats_sessions");
01157 }
01158 $slider2 += $RankAnzahl + $hop;
01159
01160
01161
01162 $hop = 0;
01163
01164 $slider3 ++;
01165 $KapitelStatsName[$slider3] = $lng->txt("stats_chapter_number");
01166 $KapitelStatsWert[$slider3] = round($Kapitelanz);
01167 $slider3 ++;
01168 $KapitelStatsName[$slider3] = $lng->txt("stats_depth")." 0";
01169 $KapitelStatsWert[$slider3] = round($KapitelTiefe2Anzahl);
01170 $slider3 ++;
01171 $KapitelStatsName[$slider3] = $lng->txt("stats_depth")." 1";
01172 $KapitelStatsWert[$slider3] = round($KapitelTiefe3Anzahl);
01173 $slider3 ++;
01174 $KapitelStatsName[$slider3] = $lng->txt("stats_depth")." 2";
01175 $KapitelStatsWert[$slider3] = round($KapitelTiefe4Anzahl);
01176 $slider3 ++;
01177 $KapitelStatsName[$slider3] = $lng->txt("stats_depth")." 3+";
01178 $KapitelStatsWert[$slider3] = round($KapitelTiefe5Anzahl);
01179 $slider3 ++;
01180
01181 $slider3 += $hop;
01182
01183 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_longest_total_dwell_time_depth")." 0:"."</b>";
01184 $KapitelStatsWert[$slider3] = "";
01185 for ($i = 0; $i < min($KapitelTiefe2Anzahl,$RankAnzahl); $i ++) {
01186 $KapitelStatsName[$i + 1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID2[$i]], 0, $TNA));
01187 $KapitelStatsWert[$i + 1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax2[$i]);
01188
01189 }
01190 $slider3 += $i + $hop + 1;
01191
01192
01193 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_most_access_depth")." 0:"."</b>";
01194 $KapitelStatsWert[$slider3] = "";
01195 for ($i = 0; $i < min($KapitelTiefe2Anzahl, $RankAnzahl); $i ++) {
01196 $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID2[$i]], 0, $TNA));
01197 $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMax2[$i])." ".$lng->txt("stats_accesses");
01198 }
01199 $slider3 += $i + $hop + 1;
01200
01201
01202 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_longest_total_dwell_time_depth")." 1:"."</b>";
01203 $KapitelStatsWert[$slider3] = "";
01204 for ($i = 0; $i < min($KapitelTiefe3Anzahl, $RankAnzahl); $i ++) {
01205 $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID3[$i]], 0, $TNA));
01206 $KapitelStatsWert[$i +1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax3[$i]);
01207 }
01208
01209 $slider3 += $i + $hop + 1;
01210
01211 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_most_access_depth")." 1:"."</b>";
01212 $KapitelStatsWert[$slider3] = "";
01213 for ($i = 0; $i < min($KapitelTiefe3Anzahl, $RankAnzahl); $i ++) {
01214 $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID3[$i]], 0, $TNA));
01215 $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMax3[$i])." ".$lng->txt("stats_accesses");
01216 }
01217 $slider3 += $i + $hop + 1;
01218
01219
01220 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_longest_total_dwell_time_depth")." 2:"."</b>";
01221 $KapitelStatsWert[$slider3] = "";
01222 for ($i = 0; $i < min($KapitelTiefe4Anzahl, $RankAnzahl); $i ++) {
01223 $KapitelStatsName[$i +1 + $slider3] = ($i + 1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID4[$i]], 0, $TNA));
01224 $KapitelStatsWert[$i +1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax4[$i]);
01225
01226 }
01227 $slider3 += $i + $hop + 1;
01228
01229
01230 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_most_access_depth")." 2:"."</b>";
01231 $KapitelStatsWert[$slider3] = "";
01232 for ($i = 0; $i < min($KapitelTiefe4Anzahl, $RankAnzahl); $i ++) {
01233 $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID4[$i]], 0, $TNA));
01234 $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMax4[$i])." ".$lng->txt("stats_accesses");
01235
01236 }
01237 $slider3 += $i + $hop + 1;
01238
01239
01240 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_longest_total_dwell_time_depth")." 3+:"."</b>";
01241 $KapitelStatsWert[$slider3] = "";
01242 for ($i = 0; $i < min($KapitelTiefe5Anzahl, $RankAnzahl); $i ++) {
01243 $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID5[$i]], 0, $TNA));
01244 $KapitelStatsWert[$i +1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax5[$i]);
01245 }
01246 $slider3 += $i + $hop + 1;
01247
01248
01249
01250 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_most_access_depth")." 3+:"."</b>";
01251 $KapitelStatsWert[$slider3] = "";
01252 for ($i = 0; $i < min($KapitelTiefe5Anzahl, $RankAnzahl); $i ++) {
01253 $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID5[$i]], 0, $TNA));
01254 $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMax5[$i])." ".$lng->txt("stats_accesses");
01255 }
01256
01257 $slider3 += $i + $hop + 1;
01258
01259 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_stubbiest_total_dwell_time").":"."</b>";
01260 $KapitelStatsWert[$slider3] = "";
01261 for ($i = 0; $i < $RankAnzahl; $i ++) {
01262 $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMinID[$i]], 0, $TNA));
01263 $KapitelStatsWert[$i +1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMin[$i]);
01264 }
01265 $slider3 += $RankAnzahl + $hop;
01266
01267 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_fewest_access").":"."</b>";
01268 $KapitelStatsWert[$slider3] = "";
01269 for ($i = 0; $i < $RankAnzahl; $i ++) {
01270 $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMinID[$i]], 0, $TNA));
01271 $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMin[$i])." ".$lng->txt("stats_accesses");
01272 }
01273 $slider3 += $RankAnzahl + $hop;
01274
01275 $slider3save = $slider3;
01276
01277
01278 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_depth_coverage")." 0:"."</b>";
01279 $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses").">0";
01280 $KapitelStatsWertA2[$slider3] = ">".floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor2);
01281 $KapitelStatsWertA3[$slider3] = ">".floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor3);
01282 $KapitelStatsWertA4[$slider3] = ">".floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor4);
01283 $KapitelStatsWertA5[$slider3] = ">".floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor5);
01284
01285 $u = 0;
01286 for ($i = 1; $i <= $Kapitelanz; $i ++) {
01287 if ($seitenTiefe[$KapitelID[$i]] == 2) {
01288 if ($KapitelSeitenSumme[$i] > 0) {
01289 $u ++;
01290 $KapitelStatsName[$u +1 + $slider3] = $u.". ".str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA))." (".$KapitelSeitenSumme[$i]." ".$lng->txt("stats_pages").")";
01291 $KapitelStatsWertA1[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]).")";
01292 $KapitelStatsWertA2[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]).")";
01293 $KapitelStatsWertA3[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]).")";
01294 $KapitelStatsWertA4[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]).")";
01295 $KapitelStatsWertA5[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]).")";
01296 }
01297 }
01298 }
01299 $slider3 += $u + $hop +2;
01300
01301
01302 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_depth_coverage")." 1:"."</b>";
01303 $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses").">0";
01304 $KapitelStatsWertA2[$slider3] = ">".floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor2);
01305 $KapitelStatsWertA3[$slider3] = ">".floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor3);
01306 $KapitelStatsWertA4[$slider3] = ">".floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor4);
01307 $KapitelStatsWertA5[$slider3] = ">".floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor5);
01308 $u = 0;
01309 for ($i = 1; $i <= $Kapitelanz; $i ++) {
01310 if ($seitenTiefe[$KapitelID[$i]] == 3) {
01311 if ($KapitelSeitenSumme[$i] > 0) {
01312 $u ++;
01313 $KapitelStatsName[$u +1 + $slider3] = str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA))." (".$KapitelSeitenSumme[$i]." ".$lng->txt("stats_pages").")";
01314 $KapitelStatsWertA1[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]).")";
01315 $KapitelStatsWertA2[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]).")";
01316 $KapitelStatsWertA3[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]).")";
01317 $KapitelStatsWertA4[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]).")";
01318 $KapitelStatsWertA5[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]).")";
01319 }
01320 }
01321 }
01322 $slider3 += $u + $hop +2;
01323
01324
01325 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_depth_coverage")." 2:"."</b>";
01326 $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses").">0";
01327 $KapitelStatsWertA2[$slider3] = ">".floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor2);
01328 $KapitelStatsWertA3[$slider3] = ">".floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor3);
01329 $KapitelStatsWertA4[$slider3] = ">".floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor4);
01330 $KapitelStatsWertA5[$slider3] = ">".floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor5);
01331 $u = 0;
01332 for ($i = 1; $i <= $Kapitelanz; $i ++) {
01333 if ($seitenTiefe[$KapitelID[$i]] == 4) {
01334 if ($KapitelSeitenSumme[$i] > 0) {
01335 $u ++;
01336 $KapitelStatsName[$u +1 + $slider3] = str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA))." (".$KapitelSeitenSumme[$i]." ".$lng->txt("stats_pages").")";
01337 $KapitelStatsWertA1[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]).")";
01338 $KapitelStatsWertA2[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]).")";
01339 $KapitelStatsWertA3[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]).")";
01340 $KapitelStatsWertA4[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]).")";
01341 $KapitelStatsWertA5[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]).")";
01342 }
01343 }
01344 }
01345 $slider3 += $u + $hop +2;
01346
01347
01348 $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_depth_coverage")." 3+:"."</b>";
01349 $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses").">0";
01350 $KapitelStatsWertA2[$slider3] = ">".floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor2);
01351 $KapitelStatsWertA3[$slider3] = ">".floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor3);
01352 $KapitelStatsWertA4[$slider3] = ">".floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor4);
01353 $KapitelStatsWertA5[$slider3] = ">".floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor5);
01354 $u = 0;
01355 for ($i = 1; $i <= $Kapitelanz; $i ++) {
01356 if ($seitenTiefe[$KapitelID[$i]] == 5) {
01357 if ($KapitelSeitenSumme[$i] > 0) {
01358 $u ++;
01359 $KapitelStatsName[$u +1 + $slider3] = str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA))." (".$KapitelSeitenSumme[$i]." ".$lng->txt("stats_pages").")";
01360 $KapitelStatsWertA1[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]).")";
01361 $KapitelStatsWertA2[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]).")";
01362 $KapitelStatsWertA3[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]).")";
01363 $KapitelStatsWertA4[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]).")";
01364 $KapitelStatsWertA5[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]).")";
01365 }
01366 }
01367 }
01368 $slider3 += $u + $hop +2;
01369
01370
01371
01372 if ($_POST["stat"] == 'u') {
01373
01374
01375 $delim1 = " ";
01376
01377 for ($i = 1; $i <= $Seitenanz; $i ++) {
01378 $KapitelZuSeite2 = $KapitelZuSeite2. (-1 + $rKapitelID[$vatizumkind[$SeitenID[$i]]]).$delim1;
01379 }
01380 for ($i = 1; $i <= $Seitenanz; $i ++) {
01381 for ($j = 1; $j <= $Seitenanz; $j ++) {
01382 $SessionVonNach2 = $SessionVonNach2. (0 + $SessionVonNach[$i][$j]).$delim1;
01383 }
01384 }
01385 for ($i = 1; $i <= $Kapitelanz; $i ++) {
01386 for ($j = 1; $j <= $Kapitelanz; $j ++) {
01387 $KapitelVonNach2 = $KapitelVonNach2. (0 + $KapitelVonNach[$i][$j]).$delim1;
01388 }
01389 }
01390 for ($i = 1; $i <= $Kapitelanz; $i ++) {
01391 $OberkapitelZuKapitel2 = $OberkapitelZuKapitel2. (-1 + $rKapitelID[$vatizumkind[$KapitelID[$i]]]).$delim1;
01392 }
01393
01394 $delim2 = " sName ";
01395
01396 for ($i = 1; $i <= $Seitenanz; $i ++) {
01397 $Seitenname2 = $Seitenname2.$SeitenName[$i].$delim2;
01398 }
01399
01400 $delim3 = " kName ";
01401
01402 for ($i = 1; $i <= $Kapitelanz; $i ++) {
01403 $Kapitelname2 = $Kapitelname2.$KapitelName[$i].$delim3;
01404 }
01405
01406 }
01407
01408
01409 else {
01410
01411
01412 include_once "./classes/class.ilTableGUI.php";
01413
01414 $tpl->addBlockfile("ADM_CONTENT", "adm_content", MODULE_PATH."/templates/default/tpl.lm_statistics_result.html");
01415 $tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
01416 $tpl->addBlockfile("TRACK_TABLE", "track_table", "tpl.table.html");
01417 $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
01418
01419 if ($_POST["stat"] == 'd') {
01420 $title_new = array ("time", "", "", "", "", "");
01421 } else {
01422 $title_new = array ("time", "count");
01423 }
01424
01425 $tbl = new ilTableGUI();
01426 $tbl->setTitle($lng->txt("obj_trac"), 0);
01427 foreach ($title_new as $val) {
01428 $header_names[] = $lng->txt($val);
01429 }
01430 $tbl->disable("sort");
01431 $tbl->setHeaderNames($header_names);
01432 if ($_POST["stat"] == 'h') {
01433 $num = $slider +1;
01434
01435 } else
01436 if ($_POST["stat"] == 'd') {
01437 $num = $slider3save + $slider3 + 1;
01438
01439 } else
01440 if ($_POST["stat"] == 'o') {
01441 $num = $slider2 +1;
01442
01443 } else {
01444 $num = 24;
01445
01446 }
01447 $tbl->setStyle("table", "std");
01448 $tbl->render();
01449
01450 if ($_POST["stat"] == 'h') {
01451 for ($i = 0; $i < $num; $i ++) {
01452 $data[0] = $SeitenStatsName[$i];
01453 $data[1] = $SeitenStatsWert[$i];
01454 $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2";
01455 foreach ($data as $key => $val) {
01456 $tpl->setCurrentBlock("text");
01457 $tpl->setVariable("TEXT_CONTENT", $val);
01458 $tpl->parseCurrentBlock();
01459 $tpl->setCurrentBlock("table_cell");
01460 $tpl->parseCurrentBlock();
01461 }
01462 $tpl->setCurrentBlock("tbl_content");
01463 $tpl->setVariable("CSS_ROW", $css_row);
01464 $tpl->parseCurrentBlock();
01465 }
01466 $tpl->parseCurrentBlock();
01467 } else
01468 if ($_POST["stat"] == 'd') {
01469 for ($i = 1; $i < $slider3save; $i ++) {
01470 $data[0] = $KapitelStatsName[$i];
01471 $data[1] = $KapitelStatsWert[$i];
01472 $data[2] = "";
01473 $data[3] = "";
01474 $data[4] = "";
01475 $data[5] = "";
01476 $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2";
01477 foreach ($data as $key => $val) {
01478 $tpl->setCurrentBlock("text");
01479 $tpl->setVariable("TEXT_CONTENT", $val);
01480 $tpl->parseCurrentBlock();
01481 $tpl->setCurrentBlock("table_cell");
01482 $tpl->parseCurrentBlock();
01483 }
01484 $tpl->setCurrentBlock("tbl_content");
01485 $tpl->setVariable("CSS_ROW", $css_row);
01486 $tpl->parseCurrentBlock();
01487 }
01488
01489 for ($i = $slider3save; $i < $slider3; $i ++) {
01490 $data[0] = $KapitelStatsName[$i];
01491 $data[1] = $KapitelStatsWertA1[$i];
01492 $data[2] = $KapitelStatsWertA2[$i];
01493 $data[3] = $KapitelStatsWertA3[$i];
01494 $data[4] = $KapitelStatsWertA4[$i];
01495 $data[5] = $KapitelStatsWertA5[$i];
01496 $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2";
01497 foreach ($data as $key => $val) {
01498 $tpl->setCurrentBlock("text");
01499 $tpl->setVariable("TEXT_CONTENT", $val);
01500 $tpl->parseCurrentBlock();
01501 $tpl->setCurrentBlock("table_cell");
01502 $tpl->parseCurrentBlock();
01503 }
01504 $tpl->setCurrentBlock("tbl_content");
01505 $tpl->setVariable("CSS_ROW", $css_row);
01506 $tpl->parseCurrentBlock();
01507 }
01508 $tpl->parseCurrentBlock();
01509 } else
01510 if ($_POST["stat"] == 'o') {
01511 for ($i = 0; $i < $num; $i ++) {
01512 $data[0] = $SessionStatsName[$i];
01513 $data[1] = $SessionStatsWert[$i];
01514 $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2";
01515 foreach ($data as $key => $val) {
01516 $tpl->setCurrentBlock("text");
01517 $tpl->setVariable("TEXT_CONTENT", $val);
01518 $tpl->parseCurrentBlock();
01519 $tpl->setCurrentBlock("table_cell");
01520 $tpl->parseCurrentBlock();
01521 }
01522 $tpl->setCurrentBlock("tbl_content");
01523 $tpl->setVariable("CSS_ROW", $css_row);
01524 $tpl->parseCurrentBlock();
01525 }
01526 $tpl->parseCurrentBlock();
01527 }
01528 $tpl->setCurrentBlock("adm_content");
01529 $tpl->setVariable("TXT_TIME_PERIOD", $lng->txt("time_segment"));
01530 switch ($_POST["stat"]) {
01531 case "h" :
01532 $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_pages_statisics"));
01533 $tpl->setVariable("TXT_TRACKED_HELP", $lng->txt("help"));
01534 $tpl->setVariable("VAL_TRACKED_HELP_LINK", "<a href='".MODULE_URL."/docs/pagestats_help.html' target='_blank'>"."Link"."</a>");
01535 break;
01536 case "u" :
01537 $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_navigation"));
01538 break;
01539 case "d" :
01540 $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_chapter_statisics"));
01541 $tpl->setVariable("TXT_TRACKED_HELP", $lng->txt("help"));
01542 $tpl->setVariable("VAL_TRACKED_HELP_LINK", "<a href='".MODULE_URL."/docs/chapterstats_help.html' target='_blank'>"."Link"."</a>");
01543 break;
01544 case "o" :
01545 $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_sessions_statisics"));
01546 $tpl->setVariable("TXT_TRACKED_HELP", $lng->txt("help"));
01547 $tpl->setVariable("VAL_TRACKED_HELP_LINK", "<a href='".MODULE_URL."/docs/sessionstats_help.html' target='_blank'>"."Link"."</a>");
01548 break;
01549 }
01550 $tpl->setVariable("VAL_DATEF", date("Y-m-d", mktime(0, 0, 0, $monthf, $dayf, $yearf)));
01551 $tpl->setVariable("TXT_TO", $lng->txt("to"));
01552 $tpl->setVariable("VAL_DATET", date("Y-m-d", mktime(0, 0, 0, $montht, $dayt, $yeart)));
01553 $tpl->setVariable("TXT_USER_LANGUAGE", $lng->txt("user_language"));
01554 if ($_POST["language"] == "0") {
01555 $tpl->setVariable("VAL_LANGUAGE", $lng->txt("any_language"));
01556 } else {
01557 $tpl->setVariable("VAL_LANGUAGE", $lng->txt("lang_".$_POST["language"]));
01558 }
01559 $rLehrmodulID = $_SESSION["il_track_rlm_id"];
01560 $LehrmodulName = $_SESSION["il_track_lm_name"];
01561 $tpl->setVariable("TXT_TRACKED_OBJECTS", $lng->txt("tracked_objects"));
01562 $tpl->setVariable("VAL_TRACKED_OBJECTS", $LehrmodulName[$rLehrmodulID[$_POST["lmID"]]]);
01563 $tpl->setVariable("LEGENDE", $lng->txt("stats_legend"));
01564 $tpl->setVariable("VAL_LEGENDE_MZ", $lng->txt("stats_measurable_hits"));
01565 $tpl->setVariable("VAL_LEGENDE_Z", $lng->txt("stats_hits"));
01566 $tpl->setVariable("LEGENDE_MZ", "mz");
01567 $tpl->setVariable("LEGENDE_Z", "z");
01568 $tpl->parseCurrentBlock();
01569 }
01570
01571
01572 $this->Seitenanz = $Seitenanz;
01573 $this->KapitelZuSeite2 = $KapitelZuSeite2;
01574 $this->SessionVonNach2 = $SessionVonNach2;
01575 $this->Kapitelanz = $Kapitelanz;
01576 $this->KapitelVonNach2 = $KapitelVonNach2;
01577 $this->OberkapitelZuKapitel2 = $OberkapitelZuKapitel2;
01578 $this->Seitenname2 = $Seitenname2;
01579 $this->Kapitelname2 = $Kapitelname2;
01580
01581 }
01582
01583 }
01584
01585 function outputApplet() {
01586 global $tpl, $lng, $ilias, $db;
01587 $this->calcStats (0);
01588
01589 $tpl->setVariable("Sprache", "<param name='Sprache' value= '".$ilias->account->prefs["language"]."'>");
01590 $tpl->setVariable("Seitenanz2", "<param name='Seitenanz2' value= '".$this->Seitenanz."'>");
01591 $tpl->setVariable("KapitelZuSeite2", "<param name='KapitelZuSeite2' value= '".$this->KapitelZuSeite2."'>");
01592 $tpl->setVariable("SessionVonNach2", "<param name='SessionVonNach2' value= '".$this->SessionVonNach2."'>");
01593 $tpl->setVariable("Kapitelanz2", "<param name='Kapitelanz2' value= '".$this->Kapitelanz."'>");
01594 $tpl->setVariable("KapitelVonNach2", "<param name='KapitelVonNach2' value= '".$this->KapitelVonNach2."'>");
01595 $tpl->setVariable("OberkapitelZuKapitel2", "<param name='OberkapitelZuKapitel2' value= '".$this->OberkapitelZuKapitel2."'>");
01596 $tpl->setVariable("Seitenname2", "<param name='Seitenname2' value= '".$this->Seitenname2."'>");
01597 $tpl->setVariable("Kapitelname2", "<param name='Kapitelname2' value= '".$this->Kapitelname2."'>");
01598
01599 include_once "./classes/class.ilTableGUI.php";
01600 $tpl->addBlockFile("ADM_CONTENT", "adm_content", MODULE_PATH."/templates/default/tpl.lm_statistics_result_applet.html");
01601 $tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
01602 $tpl->setVariable("TXT_TRACKED_OBJECTS2", "Beobachtungsmodell");
01603 $tpl->setVariable("CODEBASE", MODULE_URL."/lib");
01604 $tpl->setCurrentBlock("adm_content");
01605 $tpl->parseCurrentBlock();
01606 }
01607
01608
01609
01610
01611
01617 function varianzSV($arr, $mittelwert) {
01618
01619 if (!count($arr))
01620 return 0;
01621
01622 $summe = 0;
01623
01624 for ($i = 0; $i < count($arr); $i ++) {
01625 $summe += ($arr[$i] - $mittelwert) * ($arr[$i] - $mittelwert);
01626 }
01627 return $summe / (count($arr));
01628 }
01629
01630 function s_to_h($sek) {
01631 $stund = floor($sek / 3600);
01632 $min = floor(($sek - $stund * 3600) / 60);
01633 $restsek = ($sek - $stund * 3600 - $min * 60);
01634 return $stund."h,".$min."m,".$restsek."s";
01635 }
01636
01637
01638
01639 function s_to_m($sek) {
01640 $min = floor($sek / 60);
01641 $restsek = ($sek - $min * 60);
01642 return $min."m,".round($restsek)."s";
01643 }
01644
01645 function proz($str) {
01646 return $str;
01647
01648
01649
01650
01651
01652
01653
01654
01655
01656
01657
01658
01659
01660
01661
01662
01663
01664
01665 }
01666
01667 }
01668 define(MODULE_PATH, ILIAS_ABSOLUTE_PATH."/Services/Tracking");
01669 define(MODULE_URL, ILIAS_HTTP_PATH."/Services/Tracking");
01670 ?>