ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilLMStatistics.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
9 
20  var $appStats;
21  var $from;
22  var $to;
23  var $user_IDs;
24  var $lm_id;
26 
27  function ilLMStatistics($obj_id) {
28  $this->lm_id = $obj_id;
29  }
30 
31  function outputHTML() {
32  $this->calcStats (0);
33  }
34 
35  function calcStats($mode) {
36 
37  global $tpl, $lng, $ilias, $db, $ilDB;
38 
39  if ($mode == 1) { //wenn Aufruf aus Applet
41  $to = $this->to;
43  $LehrModulID = $this->lm_ID;
45  $this->appStats = 0;
46  } else {
47  $_SESSION["il_track_yearf"] = $_POST["yearf"];
48  $_SESSION["il_track_yeart"] = $_POST["yeart"];
49  $_SESSION["lmID"] = $_POST["lmID"];
50  $_SESSION["il_track_monthf"] = $_POST["monthf"];
51  $_SESSION["il_track_montht"] = $_POST["montht"];
52  $_SESSION["il_track_dayf"] = $_POST["dayf"];
53  $_SESSION["il_track_dayt"] = $_POST["dayt"];
54  $_SESSION["il_track_stat"] = $_POST["stat"];
55  $_SESSION["il_track_language"] = $_POST["language"];
56  $_SESSION["il_track_author"] = $_POST["author"];
57  $_SESSION["il_track_author1"] = $_POST["author1"];
58  $_SESSION["il_track_lm"] = $_POST["lmID"];
59  $_SESSION["il_track_tst"] = $_POST["tst"];
60  $_SESSION["il_object_type"] = $_POST["object_type"];
61  $_SESSION["il_track_stat2"] = $_POST["stat2"];
62 
63  $user_selection = $_POST["stat2"];
64  $LehrModulID = $_SESSION["lmID"];
65  $yearf = $_POST["yearf"];
66  $monthf = $_POST["monthf"];
67  $dayf = $_POST["dayf"];
68  $yeart = $_POST["yeart"];
69  $montht = $_POST["montht"];
70  $dayt = $_POST["dayt"];
71  $from = $yearf."-".$monthf."-".$dayf." 00:00:00";
72  $to = $yeart."-".$montht."-".$dayt." 23:59:59";
73  $user_IDs = $_SESSION["userSelected_stat"];
74  }
75 
76  //nur falls mind. ein Benutzer ausgew�hlt wurde starten
77 
78  if (count($user_IDs) > 0 || ($user_selection == "all")) {
79 
80  //Benutzer-String f�r SQL erzeugen
81 
82  //STATS-EINSTELLUNGSOPTIONEN
83 
84  //$UTanz = 1000000; //Anzahl der max auslesenden Tracking Daten
85  $SessionMaxVerweildauer = 1800; //sekunden
86  $IntervallMax[1] = 10;
87  $IntervallMax[2] = 30;
88  $IntervallMax[3] = 60;
89  $IntervallMax[4] = 120;
90  $IntervallMax[5] = 600;
91  $IntervallMax[6] = $SessionMaxVerweildauer;
92  $IntervallSeitenMax[0] = -1;
93  $IntervallSeitenMax[1] = 0;
94  $IntervallSeitenMax[2] = 1;
95  $IntervallSeitenMax[3] = 5;
96  $IntervallSeitenMax[4] = 20;
97  $IntervallSeitenMax[5] = 50;
98  $RankBenoetigteZugriffe = 1; //ben�tigte Seitenzugriffe damit eine Seite ins Ranking kommt
99  $RankAnzahl = 10; //Gr��e der Rankings
100  //$umlauteAendern = 1; //1=ja
101  $KapitelAbdeckungsKennzahlFaktor2 = 0.5;
102  $KapitelAbdeckungsKennzahlFaktor3 = 1.0;
103  $KapitelAbdeckungsKennzahlFaktor4 = 1.5;
104  $KapitelAbdeckungsKennzahlFaktor5 = 2.0;
105 
106  //ALLGEMEINE VARIABLEN
107 
108  //aus DB:lm_tree
109 
110  $q = "SELECT child, parent,depth FROM lm_tree";
111  $result = $ilias->db->query($q);
112  while ($row = $result->fetchRow()) {
113  $vatizumkind[$row[0]] = $row[1];
114  $seitenTiefe[$row[0]] = $row[2];
115  } //Ende While
116 
117  //aus DB:lm_data
118 
119  $q = "SELECT obj_id,title,type,lm_id FROM lm_data WHERE lm_id='".$LehrModulID."'";
120 
121  $result = $ilias->db->query($q);
122  while ($row = $result->fetchRow()) {
123 
124  //Ben�tigte Daten zu den Kapitel und Seiten aus der DB auslesen
125 
126  if ($row[2] == 'st') {
127  $Kapitelanz ++;
128  $KapitelID[$Kapitelanz] = $row[0];
129  $KapitelName[$Kapitelanz] = $row[1];
130  $KapitelLernModul[$Kapitelanz] = $row[3];
131  $rKapitelID[$row[0]] = $Kapitelanz;
132  }
133  if ($row[2] == 'pg') {
134  $Seitenanz ++;
135  $SeitenID[$Seitenanz] = $row[0];
136  $SeitenName[$Seitenanz] = $row[1];
137  $SeitenLernModul[$Seitenanz] = $row[3];
138  $rSeitenID[$row[0]] = $Seitenanz;
139  }
140  }
141 
142  //2.SESSIONS bestimmen
143 
144  if ($_POST["stat2"] == 'all') {
145  $q = "SELECT id, user_id,acc_obj_id,acc_sub_id,session_id, acc_time ".
146  "FROM ut_access WHERE acc_obj_id=".$ilDB->quote($LehrModulID, "integer").
147  " AND acc_time > ".$ilDB->quote($from, "timestamp")." AND acc_time < ".
148  $ilDB->quote($to, "timestamp")." ";
149  } else {
150  $q = "SELECT id, user_id, acc_obj_id, acc_sub_id, session_id, acc_time ".
151  "FROM ut_access WHERE acc_obj_id= ".$ilDB->quote($LehrModulID, "integer").
152  " AND acc_time > ".$ilDB->quote($from, "timestamp")." AND acc_time < ".
153  $ilDB->quote($to, "timestamp")." AND ".$ilDB->in("user_id", $user_IDs, false, "integer");
154  }
155  $result = $ilias->db->query($q);
156 
157  while ($row = $result->fetchRow()) {
158 
159  if (($rSeitenID[$row[3]] != 0) && ($rKapitelID[$vatizumkind[$row[3]]] != 0)) { //�berpr�ft ob die Seite des UT-Eintrages noch in der DB steht
160 
161  if ($row[1] > $UserTopID) {
162  $UserTopID = $row[1];
163  } //Es wird die h�chste User-ID bestimmt
164 
165  $UserZugriffe[$row[1]]++;
166  $SeitenZugriffe[$rSeitenID[$row[3]]]++;
167  $GesamtSeitenZugriffe ++;
168  $KapitelSeitenZugriffe[$rKapitelID[$vatizumkind[$row[3]]]]++;
169  $checkS = false;
170 
171  //�berpr�fen ob Eintrag zu einer Session geh�rt
172 
173  for ($i = 0; $i <= count($SessionCheck[$row[1]]); $i ++) {
174  if ($row[4] == $SessionCheck[$row[1]][$i][0]) {
175  $pos = $SessionCheck[$row[1]][$i][1]; //liefert die session-id
176  $checkS = true;
177  }
178  }
179 
180  //jetzt falls erneuter Seitenzugriff w�hrend einer Session
181 
182  if ($checkS) {
183 
184  //Untersuchen wie lange der Zeitraum zwischen den zwei Besuchen in der Sessions war
185 
186  $SessionGesamtZugriffe ++;
187  $SessionEndSekundeDummy[$pos] = (substr($row[5], -2));
188  $SessionEndMinuteDummy[$pos] = (substr($row[5], -5, 2));
189  $SessionEndStundeDummy[$pos] = (substr($row[5], -8, 2));
190  $SessionEndGesamt = $SessionEndSekundeDummy[$pos] + $SessionEndMinuteDummy[$pos] * 60 + $SessionEndStundeDummy[$pos] * 60 * 60;
191 
192  if (($SessionEndGesamt - $SessionStartGesamt[$pos]) > 0) {
193  $SessionZugriffDifferenz = $SessionEndGesamt - $SessionStartGesamt[$pos];
194  }
195 
196  if ($SessionZugriffDifferenz < $SessionMaxVerweildauer) { //Falls Zeitdiff zwischen 2 Zugriffen kleiner der Vorgabe ist
197 
198  //Statistik: Die Verweildauer zwischen den Klicks wird in in einer Klasse eingeteilt
199 
200  if ($SessionZugriffDifferenz <= $IntervallMax[1]) {
201  $IntervallAnz[1]++;
202  } else
203  if ($SessionZugriffDifferenz <= $IntervallMax[2]) {
204  $IntervallAnz[2]++;
205  } else
206  if ($SessionZugriffDifferenz <= $IntervallMax[3]) {
207  $IntervallAnz[3]++;
208  } else
209  if ($SessionZugriffDifferenz <= $IntervallMax[4]) {
210  $IntervallAnz[4]++;
211  } else
212  if ($SessionZugriffDifferenz <= $IntervallMax[5]) {
213  $IntervallAnz[5]++;
214  } else {
215  $IntervallAnz[6]++;
216  }
217 
218  $MessbareSessionZugriffe ++;
219 
220  $SessionsVerweildauer[$MessbareSessionZugriffe] = $SessionZugriffDifferenz; //Differenz abspeichern
221 
222  if ($SessionZugriffe[$pos] == 1) {
223  $MessbareSessions ++;
224  $UserSessionAnz[$row[1]]++;
225  }
226 
227  $SessionZugriffe[$pos]++;
228  $SeitenVerweildauerListe[$rSeitenID[$row[3]]][$SeitenMessbareZugriffe[$rSeitenID[$row[3]]]] = $SessionZugriffDifferenz;
229  $SeitenMessbareZugriffe[$rSeitenID[$row[3]]]++;
230  $SessionEndTime[$pos] = $row[5];
231  $SessionStartGesamt[$pos] = $SessionEndGesamt;
232  $SessionGesamtDauerAll += $SessionZugriffDifferenz;
233  $SessionGesamtDauer[$pos] += $SessionZugriffDifferenz;
234  $UserGesamtSessionsDauer[$row[1]] += $SessionZugriffDifferenz;
235  $UserSessionZugriffe[$row[1]]++;
236  $SeiteGesamtVerweilZeit[$rSeitenID[$row[3]]] += $SessionZugriffDifferenz;
237 
238  $SessionVonNach[$SessionQuellSeite[$pos]][$rSeitenID[$row[3]]]++;
239  $KapitelVonNach[$rKapitelID[$vatizumkind[$SeitenID[$SessionQuellSeite[$pos]]]]][$rKapitelID[$vatizumkind[$row[3]]]]++;
240  $SessionQuellSeite[$pos] = $rSeitenID[$row[3]];
241 
242  } else {
243  $checkS = false;
244  }
245 
246  } //Ende if($checkS)
247 
248  //falls erster Seitenzugriff einer Session
249 
250  if ($checkS == false) {
251 
252  $Sessionanz ++;
253 
254  $aktSessionAnzahlUser = count($SessionCheck[$row[1]]) + 1; //Sessionanzahl des Users erh�hen
255  $SessionCheck[$row[1]][$aktSessionAnzahlUser][0] = $row[4];
256  $SessionCheck[$row[1]][$aktSessionAnzahlUser][1] = $Sessionanz;
257 
258  $SessionZugriffe[$Sessionanz] = 1;
259  $SessionID[$Sessionanz] = $row[4];
260  $SessionUserID[$Sessionanz] = $row[1];
261  $SessionStartTime[$Sessionanz] = $row[5];
262 
263  $SessionQuellSeite[$Sessionanz] = $rSeitenID[$row[3]];
264  $SessionStartSekunde[$Sessionanz] = (substr($SessionStartTime[$Sessionanz], -2));
265  $SessionStartMinute[$Sessionanz] = (substr($SessionStartTime[$Sessionanz], -5, 2));
266  $SessionStartStunde[$Sessionanz] = (substr($SessionStartTime[$Sessionanz], -8, 2));
267  $SessionStartGesamt[$Sessionanz] = $SessionStartSekunde[$Sessionanz] + $SessionStartMinute[$Sessionanz] * 60 + $SessionStartStunde[$Sessionanz] * 60 * 60;
268 
269  }
270  }
271  } //Ende While
272 
273 
274  //STATISTIKEN
275 
276  //SEITENSTATS
277 
278  //meist-wenigst besuchteste Seiten abfragen
279 
280  for ($i = 1; $i <= $Seitenanz; $i ++) {
281 
282  if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[1]) {
283  $IntervallSeitenAnz[1]++;
284  } else
285  if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[2]) {
286  $IntervallSeitenAnz[2]++;
287  } else
288  if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[3]) {
289  $IntervallSeitenAnz[3]++;
290  } else
291  if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[4]) {
292  $IntervallSeitenAnz[4]++;
293  } else
294  if ($SeitenZugriffe[$i] <= $IntervallSeitenMax[5]) {
295  $IntervallSeitenAnz[5]++;
296  } else {
297  $IntervallSeitenAnz[6]++;
298  }
299  }
300 
301  //VERWEILDAUER-STATS
302 
303  //SessionsVerweildauer orden
304 
305  if (count($SessionsVerweildauer) > 0) {
306  sort($SessionsVerweildauer);
307  }
308 
309  //SessionDurchschnittsDauer bestimmen
310  if ($MessbareSessions > 0) {
311  $SessionDurchschnittsDauer = $SessionGesamtDauerAll / $MessbareSessions;
312  }
313 
314  //SeitenVerweildauerDurchschnitt bestimmen
315  if ($MessbareSessionZugriffe > 0) {
316  $SeitenVerweildauerDurchschnitt = $SessionGesamtDauerAll / $MessbareSessionZugriffe;
317  }
318 
319  //SeitenVerweildauerSpannweite bestimmen
320 
321  $SeitenVerweildauerSpannweite = $SessionsVerweildauer[$MessbareSessionZugriffe -1] - $SessionsVerweildauer[0];
322 
323  //Verweildauer Median bestimmen
324 
325  if ($MessbareSessionZugriffe % 2 == 0) {
326 
327  $VerweildauerMedianPosA = ($MessbareSessionZugriffe) / 2;
328  $VerweildauerMedianPosB = ($MessbareSessionZugriffe +1) / 2 + 1;
329  $VerweildauerMedian = ($SessionsVerweildauer[$VerweildauerMedianPosA -1] + $SessionsVerweildauer[$VerweildauerMedianPosB -1]) / 2;
330  } else {
331  $VerweildauerMedianPos = ($MessbareSessionZugriffe +1) / 2;
332  $VerweildauerMedian = $SessionsVerweildauer[$VerweildauerMedianPos -1];
333  }
334 
335  $SeitenVerweildauerVarianz = ilLMStatistics::varianzSV($SessionsVerweildauer, $SeitenVerweildauerDurchschnitt);
336 
337  $SeitenVerweildauerStandartAbw = sqrt($SeitenVerweildauerVarianz);
338 
339  if ($SeitenVerweildauerStandartAbw > 0) {
340  $SeitenVerweildauerVarKoef = $SeitenVerweildauerDurchschnitt / $SeitenVerweildauerStandartAbw;
341  }
342 
343  //GesamtVerweilzeit f�r Seiten maxordnen
344 
345  for ($i = 1; $i <= $Seitenanz; $i ++) {
346  if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
347  $SeitenGesamtVerweilMax[$i] = $SeiteGesamtVerweilZeit[$i];
348  $SeitenGesamtVerweilMaxID[$i] = $i;
349  }
350  }
351 
352  if (count($SeitenGesamtVerweilMax) > 0) {
353  array_multisort($SeitenGesamtVerweilMax, SORT_DESC, $SeitenGesamtVerweilMaxID);
354  }
355 
356  //GesamtVerweilzeit f�r Seiten minordnen
357 
358  for ($i = 1; $i <= $Seitenanz; $i ++) {
359  if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
360  $SeitenGesamtVerweilMin[$i] = $SeiteGesamtVerweilZeit[$i];
361  $SeitenGesamtVerweilMinID[$i] = $i;
362  }
363  }
364 
365  if (count($SeitenGesamtVerweilMin) > 0) {
366  array_multisort($SeitenGesamtVerweilMin, SORT_ASC, $SeitenGesamtVerweilMinID);
367  }
368 
369  //durchsch. Verweildauer f�r Seiten max ordnen
370 
371  for ($i = 1; $i <= $Seitenanz; $i ++) {
372  if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
373  $SeitenDurchschnittVerweilMax[$i] = $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i];
374  $SeitenDurchschnittVerweilMaxID[$i] = $i;
375  }
376  }
377  if (count($SeitenDurchschnittVerweilMax) > 0) {
378  array_multisort($SeitenDurchschnittVerweilMax, SORT_DESC, $SeitenDurchschnittVerweilMaxID);
379  }
380 
381  //durchsch. Verweildauer f�r Seiten min ordnen
382 
383  for ($i = 1; $i <= $Seitenanz; $i ++) {
384  if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
385  $SeitenDurchschnittVerweilMin[$i] = $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i];
386  $SeitenDurchschnittVerweilMinID[$i] = $i;
387  }
388  }
389  if (count($SeitenDurchschnittVerweilMin) > 0) {
390  array_multisort($SeitenDurchschnittVerweilMin, SORT_ASC, $SeitenDurchschnittVerweilMinID);
391  }
392 
393  //USER-STATS:
394 
395  //Gesamte Sessiondauer der Einzelnen User ordnen
396 
397  for ($i = 1; $i <= $UserTopID; $i ++) {
398  if ($UserGesamtSessionsDauer[$i] > 0) {
399  $UserGesamtSessionsDauerMax[$i] = $UserGesamtSessionsDauer[$i];
400  $UserGesamtSessionsDauerMaxID[$i] = $i;
401  } else {
402  $UserGesamtSessionsDauerMax[$i] = "";
403  $UserGesamtSessionsDauerMaxID[$i] = "";
404  }
405  }
406  if (count($UserGesamtSessionsDauerMax) > 0) {
407  array_multisort($UserGesamtSessionsDauerMax, SORT_DESC, $UserGesamtSessionsDauerMaxID);
408  }
409 
410  //SessionAnz der Einzelnen User ordnen
411 
412  for ($i = 1; $i <= $UserTopID; $i ++) {
413  if ($UserSessionAnz[$i] > 0) {
414  $UserSessionAnzMax[$i] = $UserSessionAnz[$i];
415  $UserSessionAnzMaxID[$i] = $i;
416  } else {
417  $UserSessionAnzMax[$i] = "";
418  $UserSessionAnzMaxID[$i] = "";
419  }
420  }
421  if (count($UserSessionAnzMax) > 0) {
422  array_multisort($UserSessionAnzMax, SORT_DESC, $UserSessionAnzMaxID);
423  }
424 
425  //beteiligte User
426 
427  for ($i = 0; $i <= $UserTopID; $i ++) {
428  if ($UserZugriffe[$i] > 0) {
429  $UserAnz ++;
430  }
431  }
432  //Auswertbare User (Zeit)
433  for ($i = 0; $i <= $UserTopID; $i ++) {
434  if ($UserSessionAnz[$i] > 0) {
435  $UserMessbarAnz ++;
436  }
437  }
438 
439  //SEITENZUGRIFF-STATS
440 
441  //Zugriffe f�r Seiten maxordnen
442 
443  for ($i = 1; $i <= $Seitenanz; $i ++) {
444 
445  if ($SeitenZugriffe[$i] > 0) {
446  $SeitenZugriffMax[$i] = $SeitenZugriffe[$i];
447  $SeitenZugriffMaxID[$i] = $i;
448  } else {
449  $SeitenZugriffMax[$i] = "";
450  $SeitenZugriffMaxID[$i] = "";
451  }
452  }
453 
454  if (count($SeitenZugriffMax) > 0) {
455  array_multisort($SeitenZugriffMax, SORT_DESC, $SeitenZugriffMaxID);
456  }
457 
458  //Zugriffe f�r Seiten minordnen
459 
460  for ($i = 1; $i <= $Seitenanz; $i ++) {
461 
462  if ($SeitenZugriffe[$i] > 0) {
463  $SeitenZugriffMin[$i] = $SeitenZugriffe[$i];
464  $SeitenZugriffMinID[$i] = $i;
465  } else {
466  $SeitenZugriffMin[$i] = "";
467  $SeitenZugriffMinID[$i] = $i;
468  }
469  }
470 
471  if (count($SeitenZugriffMin) > 0) {
472  array_multisort($SeitenZugriffMin, SORT_ASC, $SeitenZugriffMinID);
473  }
474 
475  //Seitenzugriffe Median bestimmen
476 
477  if (count($SeitenZugriffMax) % 2 == 0) {
478 
479  $SeitenZugriffeMedianPosA = (count($SeitenZugriffMax)) / 2;
480  $SeitenZugriffeMedianPosB = (count($SeitenZugriffMax) + 1) / 2 + 1;
481  $SeitenZugriffeMedian = ($SeitenZugriffMax[$SeitenZugriffeMedianPosA -1] + $SeitenZugriffMax[$SeitenZugriffeMedianPosB -1]) / 2;
482  } else {
483  $SeitenZugriffeMedianPos = (count($SeitenZugriffMax) + 1) / 2;
484  $SeitenZugriffeMedian = $SeitenZugriffMax[$SeitenZugriffeMedianPos -1];
485  }
486 
487  //SeitenZugriffe Spannweite bestimmen
488 
489  $SeitenZugriffeSpannweite = $SeitenZugriffMax[0] - $SeitenZugriffMax[count($SeitenZugriffMax) - 1];
490 
491  //SeitenZugriffe Modus bestimmen
492  $MaxZW = 0;
493  for ($i = 1; $i <= $Seitenanz; $i ++) {
494  $ZugriffsWert[$SeitenZugriffe[$i]]++;
495  if ($SeitenZugriffe[$i] > $MaxZW) {
496  $MaxZW = $SeitenZugriffe[$i];
497  }
498  }
499  for ($i = 0; $i <= $MaxZW; $i ++) {
500  if ($ZugriffsWert[$i] > $ZugriffsWertMaxAus) {
501  $ZugriffsWertMaxAus = $ZugriffsWert[$i];
502  $ZugriffsWertMax = $i;
503  }
504  }
505 
506  //SeitenZugriffe Var, Stdabw, Korr
507 
508  if ($Seitenanz > 0) {
509  $SeitenZugriffeVarianz = ilLMStatistics::varianzSV($SeitenZugriffMax, $GesamtSeitenZugriffe / $Seitenanz);
510  }
511  $SeitenZugriffeStandartAbw = sqrt($SeitenZugriffeVarianz);
512 
513  if (($Seitenanz > 0) && ($GesamtSeitenZugriffe / $Seitenanz) > 0) {
514  $SeitenZugriffeVarKoef = $SeitenZugriffeStandartAbw / ($GesamtSeitenZugriffe / $Seitenanz);
515  }
516 
517  //SESSIONSTATS
518 
519  //Zusatz2: l�ngste Session bestimmen
520 
521  for ($i = 1; $i <= $Sessionanz; $i ++) {
522  $SessionGesamtDauerMax[$i] = $SessionGesamtDauer[$i];
523  $SessionGesamtDauerMaxID[$i] = $i;
524  }
525 
526  if (count($SessionGesamtDauerMax) > 0) {
527  array_multisort($SessionGesamtDauerMax, SORT_DESC, $SessionGesamtDauerMaxID);
528  }
529 
530  if ($Sessionanz > 0) {
531  $SessionDurschnittsZeit = $GesamtSeitenZugriffe / $Sessionanz;
532  }
533 
534  //EINZELSEITEN STATS
535 
536  for ($i = 1; $i <= $Seitenanz; $i ++) {
537  if ($SeitenMessbareZugriffe[$i] > 0) {
538  $EinzelSeitenVarianz[$i] = ilLMStatistics::varianzSV($SeitenVerweildauerListe[$i], $SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i]);
539  if ($EinzelSeitenVarianz[$i] > 0) {
540  $EinzelSeitenVarKoef[$i] = ($SeiteGesamtVerweilZeit[$i] / $SeitenMessbareZugriffe[$i]) / sqrt($EinzelSeitenVarianz[$i]);
541  }
542  }
543  }
544  //EinzelSeitenvarianzen max
545  for ($i = 1; $i <= $Seitenanz; $i ++) {
546  if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
547  $EinzelSeitenVarMax[$i] = $EinzelSeitenVarianz[$i];
548  $EinzelSeitenVarMaxID[$i] = $i;
549  }
550  }
551  if (count($EinzelSeitenVarMax) > 0) {
552  array_multisort($EinzelSeitenVarMax, SORT_DESC, $EinzelSeitenVarMaxID);
553  }
554 
555  //EinzelSeitenvarianzen min
556  for ($i = 1; $i <= $Seitenanz; $i ++) {
557  if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
558  $EinzelSeitenVarMin[$i] = $EinzelSeitenVarianz[$i];
559  $EinzelSeitenVarMinID[$i] = $i;
560  }
561  }
562  if (count($EinzelSeitenVarMin) > 0) {
563  array_multisort($EinzelSeitenVarMin, SORT_ASC, $EinzelSeitenVarMinID);
564  }
565 
566  //EinzelSeitenVarKoef max
567  for ($i = 1; $i <= $Seitenanz; $i ++) {
568  if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
569  $EinzelSeitenVarKoefMax[$i] = $EinzelSeitenVarKoef[$i];
570  $EinzelSeitenVarKoefMaxID[$i] = $i;
571  }
572  }
573  if (count($EinzelSeitenVarKoefMax) > 0) {
574  array_multisort($EinzelSeitenVarKoefMax, SORT_DESC, $EinzelSeitenVarKoefMaxID);
575  }
576 
577  //EinzelSeitenVarKoef min
578  for ($i = 1; $i <= $Seitenanz; $i ++) {
579  if ($SeitenMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
580  $EinzelSeitenVarKoefMin[$i] = $EinzelSeitenVarKoef[$i];
581  $EinzelSeitenVarKoefMinID[$i] = $i;
582  }
583  }
584  if (count($EinzelSeitenVarKoefMin) > 0) {
585  array_multisort($EinzelSeitenVarKoefMin, SORT_ASC, $EinzelSeitenVarKoefMinID);
586  }
587 
588  //KAPITEL STATS:
589 
590  //Seitenstats auf Kapitel �bertragen
591 
592  $knoten = 0;
593  $tiefe = 0;
594  $KapitelAbdeckungsKennzahl1 = 1; //untere Klassengrenze;
595 
596  for ($i = 1; $i <= $Seitenanz; $i ++) {
597 
598  $knoten = $SeitenID[$i];
599  $tiefe = $seitenTiefe[$SeitenID[$i]];
600 
601  while ($tiefe > 1) {
602 
603  $knoten = $vatizumkind[$knoten];
604  $KapitelZugriffe[$rKapitelID[$knoten]] += $SeitenZugriffe[$i];
605  $KapitelGesamtVerweilZeit[$rKapitelID[$knoten]] += $SeiteGesamtVerweilZeit[$i];
606  $KapitelMessbareZugriffe[$rKapitelID[$knoten]] += $SeitenMessbareZugriffe[$i];
607  $KapitelSeitenSumme[$rKapitelID[$knoten]]++;
608  if ($tiefe == 2) {
609  $KapitelGesamtSeitenAnzEbene2 ++;
610  }
611  if ($tiefe == 3) {
612  $KapitelGesamtSeitenAnzEbene3 ++;
613  }
614  if ($tiefe == 4) {
615  $KapitelGesamtSeitenAnzEbene4 ++;
616  }
617  if ($tiefe == 5) {
618  $KapitelGesamtSeitenAnzEbene5 ++;
619  }
620  $tiefe = $seitenTiefe[$knoten];
621  }
622  }
623 
624  //Zugriffe f�r Kapitel maxordnen
625 
626  for ($i = 1; $i <= $Kapitelanz; $i ++) {
627 
628  if ($seitenTiefe[$KapitelID[$i]] == 2) {
629 
630  $KapitelTiefe2Anzahl ++;
631 
632  if ($KapitelZugriffe[$i] > 0) {
633  $KapitelZugriffMax2[$i] = $KapitelZugriffe[$i];
634  $KapitelZugriffMaxID2[$i] = $i;
635  } else {
636  $KapitelZugriffMax2[$i] = "";
637  $KapitelZugriffMaxID2[$i] = $i;
638  }
639  }
640  if ($seitenTiefe[$KapitelID[$i]] == 3) {
641  $KapitelTiefe3Anzahl ++;
642  if ($KapitelZugriffe[$i] > 0) {
643  $KapitelZugriffMax3[$i] = $KapitelZugriffe[$i];
644  $KapitelZugriffMaxID3[$i] = $i;
645  } else {
646  $KapitelZugriffMax3[$i] = "";
647  $KapitelZugriffMaxID3[$i] = $i;
648  }
649  }
650  if ($seitenTiefe[$KapitelID[$i]] == 4) {
651  $KapitelTiefe4Anzahl ++;
652  if ($KapitelZugriffe[$i] > 0) {
653  $KapitelZugriffMax4[$i] = $KapitelZugriffe[$i];
654  $KapitelZugriffMaxID4[$i] = $i;
655  } else {
656  $KapitelZugriffMax4[$i] = "";
657  $KapitelZugriffMaxID4[$i] = $i;
658  }
659  }
660  if ($seitenTiefe[$KapitelID[$i]] >= 5) {
661  $KapitelTiefe5Anzahl ++;
662  if ($KapitelZugriffe[$i] > 0) {
663  $KapitelZugriffMax5[$i] = $KapitelZugriffe[$i];
664  $KapitelZugriffMaxID5[$i] = $i;
665  } else {
666  $KapitelZugriffMax5[$i] = "";
667  $KapitelZugriffMaxID5[$i] = $i;
668  }
669  }
670  }
671 
672  if (count($KapitelZugriffMax2) > 0) {
673  array_multisort($KapitelZugriffMax2, SORT_DESC, $KapitelZugriffMaxID2);
674  }
675  if (count($KapitelZugriffMax3) > 0) {
676  array_multisort($KapitelZugriffMax3, SORT_DESC, $KapitelZugriffMaxID3);
677  }
678  if (count($KapitelZugriffMax4) > 0) {
679  array_multisort($KapitelZugriffMax4, SORT_DESC, $KapitelZugriffMaxID4);
680  }
681  if (count($KapitelZugriffMax5) > 0) {
682  array_multisort($KapitelZugriffMax5, SORT_DESC, $KapitelZugriffMaxID5);
683  }
684 
685  //Zugriffe f�r Kapitel minordnen
686 
687  for ($i = 1; $i <= $Kapitelanz; $i ++) {
688 
689  if ($KapitelZugriffe[$i] > 0) {
690  $KapitelZugriffMin[$i] = $KapitelZugriffe[$i];
691  $KapitelZugriffMinID[$i] = $i;
692  } else {
693  $KapitelZugriffMin[$i] = "";
694  $KapitelZugriffMinID[$i] = $i;
695  }
696  }
697 
698  if (count($KapitelZugriffMin) > 0) {
699  array_multisort($KapitelZugriffMin, SORT_ASC, $KapitelZugriffMinID);
700  }
701 
702  //GesamtVerweilzeit f�r Kapitel maxordnen
703 
704  for ($i = 1; $i <= $Kapitelanz; $i ++) {
705  if ($seitenTiefe[$KapitelID[$i]] == 2) {
706  if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
707  $KapitelGesamtVerweilMax2[$i] = $KapitelGesamtVerweilZeit[$i];
708  $KapitelGesamtVerweilMaxID2[$i] = $i;
709  }
710  }
711  if ($seitenTiefe[$KapitelID[$i]] == 3) {
712  if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
713  $KapitelGesamtVerweilMax3[$i] = $KapitelGesamtVerweilZeit[$i];
714  $KapitelGesamtVerweilMaxID3[$i] = $i;
715  }
716  }
717  if ($seitenTiefe[$KapitelID[$i]] == 4) {
718  if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
719  $KapitelGesamtVerweilMax4[$i] = $KapitelGesamtVerweilZeit[$i];
720  $KapitelGesamtVerweilMaxID4[$i] = $i;
721  }
722  }
723  if ($seitenTiefe[$KapitelID[$i]] >= 5) {
724  if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
725  $KapitelGesamtVerweilMax5[$i] = $KapitelGesamtVerweilZeit[$i];
726  $KapitelGesamtVerweilMaxID5[$i] = $i;
727  }
728  }
729  }
730 
731  if (count($KapitelGesamtVerweilMax2) > 0) {
732  array_multisort($KapitelGesamtVerweilMax2, SORT_DESC, $KapitelGesamtVerweilMaxID2);
733  }
734  if (count($KapitelGesamtVerweilMax3) > 0) {
735  array_multisort($KapitelGesamtVerweilMax3, SORT_DESC, $KapitelGesamtVerweilMaxID3);
736  }
737  if (count($KapitelGesamtVerweilMax4) > 0) {
738  array_multisort($KapitelGesamtVerweilMax4, SORT_DESC, $KapitelGesamtVerweilMaxID4);
739  }
740  if (count($KapitelGesamtVerweilMax5) > 0) {
741  array_multisort($KapitelGesamtVerweilMax5, SORT_DESC, $KapitelGesamtVerweilMaxID5);
742  }
743 
744  //GesamtVerweilzeit f�r Kapitel minordnen
745  for ($i = 1; $i <= $Kapitelanz; $i ++) {
746  if ($KapitelMessbareZugriffe[$i] >= $RankBenoetigteZugriffe) {
747  $KapitelGesamtVerweilMin[$i] = $KapitelGesamtVerweilZeit[$i];
748  $KapitelGesamtVerweilMinID[$i] = $i;
749  }
750  }
751 
752  if (count($KapitelGesamtVerweilMin) > 0) {
753  array_multisort($KapitelGesamtVerweilMin, SORT_ASC, $KapitelGesamtVerweilMinID);
754  }
755 
756  //SeitenSumme f�r Kapitel maxordnen
757 
758  for ($i = 1; $i <= $Kapitelanz; $i ++) {
759  $KapitelSeitenSummeMax[$i] = $KapitelSeitenSumme[$i];
760  $KapitelSeitenSummeMaxID[$i] = $i;
761  }
762 
763  if (count($KapitelGesamtVerweilMax) > 0) {
764  array_multisort($KapitelSeitenSummeMax, SORT_DESC, $KapitelSeitenSummeMaxID);
765  }
766 
767  //durchschnittliche Seitenzugriffe je Kapiteltiefe
768  $summe = 0;
769  for ($i = 0; $i <= $Kapitelanz; $i ++) {
770  $summe += $KapitelZugriffMax2[$i];
771  }
772  if ($KapitelGesamtSeitenAnzEbene2 > 0) {
773  $KapitelDurchZugriffe2 = $summe / $KapitelGesamtSeitenAnzEbene2;
774  }
775  $summe = 0;
776  for ($i = 0; $i <= $Kapitelanz; $i ++) {
777  $summe += $KapitelZugriffMax3[$i];
778  }
779  if ($KapitelGesamtSeitenAnzEbene3 > 0) {
780  $KapitelDurchZugriffe3 = $summe / $KapitelGesamtSeitenAnzEbene3;
781  }
782  $summe = 0;
783  for ($i = 0; $i <= $Kapitelanz; $i ++) {
784  $summe += $KapitelZugriffMax4[$i];
785  }
786  if ($KapitelGesamtSeitenAnzEbene4 > 0) {
787  $KapitelDurchZugriffe4 = $summe / $KapitelGesamtSeitenAnzEbene4;
788  }
789  $summe = 0;
790  for ($i = 0; $i <= $Kapitelanz; $i ++) {
791  $summe += $KapitelZugriffMax5[$i];
792  }
793  if ($KapitelGesamtSeitenAnzEbene5 > 0) {
794  $KapitelDurchZugriffe5 = $summe / $KapitelGesamtSeitenAnzEbene5;
795  }
796 
797  for ($i = 1; $i <= $Seitenanz; $i ++) {
798  $knoten = $SeitenID[$i];
799  $tiefe = $seitenTiefe[$SeitenID[$i]];
800 
801  while ($tiefe > 1) {
802  $knoten = $vatizumkind[$knoten];
803  if (($seitenTiefe[$knoten] == 2) && ($KapitelDurchZugriffe2 > 0)) {
804  if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
805  $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
806  }
807  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor2) {
808  $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
809  }
810  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor3) {
811  $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
812  }
813  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor4) {
814  $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
815  }
816  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor5) {
817  $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
818  }
819  }
820  if (($seitenTiefe[$knoten] == 3) && ($KapitelDurchZugriffe3 > 0)) {
821  if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
822  $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
823  }
824  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor2) {
825  $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
826  }
827  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor3) {
828  $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
829  }
830  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor4) {
831  $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
832  }
833  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor5) {
834  $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
835  }
836  }
837  if (($seitenTiefe[$knoten] == 4) && ($KapitelDurchZugriffe4 > 0)) {
838  if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
839  $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
840  }
841  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor2) {
842  $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
843  }
844  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor3) {
845  $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
846  }
847  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor4) {
848  $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
849  }
850  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor5) {
851  $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
852  }
853  }
854  if (($seitenTiefe[$knoten] >= 5) && ($KapitelDurchZugriffe5 > 0)) {
855  if ($SeitenZugriffe[$i] >= $KapitelAbdeckungsKennzahl1) {
856  $KapitelAbgedeckteSeiten1[$rKapitelID[$knoten]]++;
857  }
858  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor2) {
859  $KapitelAbgedeckteSeiten2[$rKapitelID[$knoten]]++;
860  }
861  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor3) {
862  $KapitelAbgedeckteSeiten3[$rKapitelID[$knoten]]++;
863  }
864  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor4) {
865  $KapitelAbgedeckteSeiten4[$rKapitelID[$knoten]]++;
866  }
867  if ($SeitenZugriffe[$i] >= $KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor5) {
868  $KapitelAbgedeckteSeiten5[$rKapitelID[$knoten]]++;
869  }
870  }
871  $tiefe = $seitenTiefe[$knoten];
872  }
873 
874  }
875 
876  //BEGINN DER AUSGABE
888  $TNA = 300; //Strings werden auf diesen Wert gek�rzt
889  $hop = 3; //Dicke zwischen den Zeilen. Um zB Optionen in der Ausgabe voneinander abzugrenzen
890 
891  //SEITENSTATS
892 
893  //Funktion zum umrechnen von Sekunden in Stunden
894 
895  /* //wenn die Option umlauteAendern eingeschaltet ist (wert=1) dann werden bei der Ausgabe die Umlaute in der Ausgabe ge�ndert
896 
897  if ($umlauteAendern == 1) {
898  $d1 = array ("ä", "ö", "ü", "Ä", "Ö", "Ü");
899  $d2 = array ("ae", "oe", "ue", "Ae", "Oe", "Ue");
900  }
901  */
902 
903 
904  $slider = 1;
905  $SeitenStatsName[$slider] = $lng->txt("stats_page_number"); //$lng->txt("stats_page_number")
906  $SeitenStatsWert[$slider] = round($Seitenanz);
907  $slider ++;
908  $SeitenStatsName[$slider] = $lng->txt("stats_page_number_access"); //"Anzahl Seitenzugriffe";
909  $SeitenStatsWert[$slider] = round($GesamtSeitenZugriffe)."z";
910  $slider ++;
911  $SeitenStatsName[$slider] = $lng->txt("stats_page_total_dwell_time"); //"Gesamte-SeitenVerweilzeit";
912  $SeitenStatsWert[$slider] = ilLMStatistics::s_to_h($SessionGesamtDauerAll)." (".round($SessionGesamtDauerAll)."s)";
913  $slider ++;
914  if ($Seitenanz > 0) {
915  $SeitenStatsName[$slider] = $lng->txt("stats_page_average_access"); //"Seitenzugriffe-Mittelwert";
916  $SeitenStatsWert[$slider] = round(($GesamtSeitenZugriffe / $Seitenanz), 2)."z";
917  $slider ++;
918  }
919  $SeitenStatsName[$slider] = $lng->txt("stats_page_median_access"); //"Seitenzugriffe-Median";
920  $SeitenStatsWert[$slider] = round($SeitenZugriffeMedian)."z";
921  $slider ++;
922  $SeitenStatsName[$slider] = $lng->txt("stats_page_mode_access"); //"Seitenzugriffe-Modus:";
923  $SeitenStatsWert[$slider] = $lng->txt("stats_occurrence").": ".round($ZugriffsWertMax)." (#: ".$ZugriffsWertMaxAus." )";
924  $slider ++;
925  $SeitenStatsName[$slider] = $lng->txt("stats_page_range_access"); //"Seitenzugriffe-Spannweite";
926  $SeitenStatsWert[$slider] = round($SeitenZugriffeSpannweite)."z";
927  $slider ++;
928  $SeitenStatsName[$slider] = $lng->txt("stats_page_variance_access"); //"Seitenzugriffe-Varianz";
929  $SeitenStatsWert[$slider] = round($SeitenZugriffeVarianz, 2);
930  $slider ++;
931  $SeitenStatsName[$slider] = $lng->txt("stats_page_deviation_access"); //"Seitenzugriffe-Standartabweichung";
932  $SeitenStatsWert[$slider] = round($SeitenZugriffeStandartAbw, 2)."z";
933  $slider ++;
934  $SeitenStatsName[$slider] = $lng->txt("stats_page_varcoeff_access"); //"Seitenzugriffer-VarKoef";
935  $SeitenStatsWert[$slider] = round($SeitenZugriffeVarKoef, 2);
936  $slider ++;
937  $SeitenStatsName[$slider] = $lng->txt("stats_page_average_dwell_time"); //"SeitenVerweildauer-Mittelwert";
938  $SeitenStatsWert[$slider] = round($SeitenVerweildauerDurchschnitt, 2)."s";
939  $slider ++;
940  $SeitenStatsName[$slider] = $lng->txt("stats_page_median_dwell_time"); //"SeitenVerweildauer-Median";
941  $SeitenStatsWert[$slider] = round($VerweildauerMedian);
942  $slider ++;
943  $SeitenStatsName[$slider] = $lng->txt("stats_page_range_dwell_time"); //"SeitenVerweildauer-Spannweite";
944  $SeitenStatsWert[$slider] = round($SeitenVerweildauerSpannweite)."s";
945  $slider ++;
946  $SeitenStatsName[$slider] = $lng->txt("stats_page_variance_dwell_time"); //"SeitenVerweildauer-Varianz";
947  $SeitenStatsWert[$slider] = round($SeitenVerweildauerVarianz, 2);
948  $slider ++;
949  $SeitenStatsName[$slider] = $lng->txt("stats_page_deviation_dwell_time"); //"SeitenVerweildauer-Standartabweichung";
950  $SeitenStatsWert[$slider] = round($SeitenVerweildauerStandartAbw, 2)."s";
951  $slider ++;
952  $SeitenStatsName[$slider] = $lng->txt("stats_page_varcoeff_dwell_time"); //"SeitenVerweildauer-VarKoef";
953  $SeitenStatsWert[$slider] = round($SeitenVerweildauerVarKoef, 2);
954  $slider ++;
955  $slider = count($SeitenStatsWert);
956 
957  $slider += 2;
958 
959  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_longest_total_dwell_time")."</b>"; //"<b>Laengste GesamtVerweildauer:</b>";
960  $SeitenStatsWert[$slider] = "";
961  for ($i = 0; $i < $RankAnzahl; $i ++) {
962  $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenGesamtVerweilMaxID[$i]], 0, $TNA));
963  $SeitenStatsWert[$i +1 + $slider] = ilLMStatistics::s_to_h($SeitenGesamtVerweilMax[$i])." (".
964  (is_numeric($SeitenGesamtVerweilMax[$i])?$SeitenGesamtVerweilMax[$i]:"0")."s, mZ:".(is_numeric($SeitenMessbareZugriffe[$SeitenGesamtVerweilMaxID[$i]])?$SeitenMessbareZugriffe[$SeitenGesamtVerweilMaxID[$i]]:"0").")";
965  }
966  $slider += $RankAnzahl + $hop;
967 
968  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_stubbiest_total_dwell_time")."</b>"; //"<b>Kuerzeste GesamtVerweildauer:</b>";
969  $SeitenStatsWert[$slider] = "";
970  for ($i = 0; $i < $RankAnzahl; $i ++) {
971  $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenGesamtVerweilMinID[$i]], 0, $TNA));
972  $SeitenStatsWert[$i +1 + $slider] =
973  round(is_numeric($SeitenGesamtVerweilMin[$i])?$SeitenGesamtVerweilMin[$i]:"0")."s (mZ:".(is_numeric($SeitenMessbareZugriffe[$SeitenGesamtVerweilMinID[$i]])?$SeitenMessbareZugriffe[$SeitenGesamtVerweilMinID[$i]]:"0") .")";
974  }
975  $slider += $RankAnzahl + $hop;
976 
977  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_longest_average_dwell_time")."</b>"; //"<b>Laengste durschn.Verweildauer:</b>";
978  $SeitenStatsWert[$slider] = "";
979  for ($i = 0; $i < $RankAnzahl; $i ++) {
980  $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenDurchschnittVerweilMaxID[$i]], 0, $TNA));
981  $SeitenStatsWert[$i +1 + $slider] =
982  round(is_numeric($SeitenDurchschnittVerweilMax[$i])?$SeitenDurchschnittVerweilMax[$i]:0)."s (mZ:".(is_numeric($SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMaxID[$i]])?$SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMaxID[$i]]:"0").")";
983  }
984  $slider += $RankAnzahl + $hop;
985 
986  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_stubbiest_average_dwell_time")."</b>"; //"<b>Kuerzeste durschn.Verweildauer:</b>";
987  $SeitenStatsWert[$slider] = "";
988  for ($i = 0; $i < $RankAnzahl; $i ++) {
989  $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenDurchschnittVerweilMinID[$i]], 0, $TNA));
990  $SeitenStatsWert[$i +1 + $slider] =
991  round($SeitenDurchschnittVerweilMin[$i])."s (mZ:".(is_numeric($SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMinID[$i]])?$SeitenMessbareZugriffe[$SeitenDurchschnittVerweilMinID[$i]]:"0").")";
992  }
993  $slider += $RankAnzahl + $hop;
994 
995  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_most_access")."</b>"; //"<b>Meisten Zugriffe:</b>";
996  $SeitenStatsWert[$slider] = "";
997  for ($i = 0; $i < $RankAnzahl; $i ++) {
998  $SeitenStatsName[($i +1) + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenZugriffMaxID[$i]], 0, $TNA));
999  $SeitenStatsWert[($i +1) + $slider] = round($SeitenZugriffMax[$i])."z ";
1000  }
1001  $slider += $RankAnzahl + $hop;
1002 
1003  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_fewest_access")."</b>"; //"<b>Wenigsten Zugriffe:</b>";
1004  $SeitenStatsWert[$slider] = "";
1005  for ($i = 0; $i < $RankAnzahl; $i ++) {
1006  $SeitenStatsName[($i +1) + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$SeitenZugriffMinID[$i]], 0, $TNA));
1007  $SeitenStatsWert[($i +1) + $slider] = round($SeitenZugriffMin[$i])."z ";
1008  }
1009  $slider += $RankAnzahl + $hop;
1010 
1011  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_highest_deviation")."</b>"; //"<b>Hoechste Standartabweichung:</b>";
1012  $SeitenStatsWert[$slider] = "";
1013  for ($i = 0; $i < $RankAnzahl; $i ++) {
1014  $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarMaxID[$i]], 0, $TNA));
1015  $SeitenStatsWert[$i +1 + $slider] = round(sqrt($EinzelSeitenVarMax[$i]), 2)." (mZ:"
1016  .(is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarMaxID[$i]])?$SeitenMessbareZugriffe[$EinzelSeitenVarMaxID[$i]]:0).")";
1017  }
1018  $slider += $RankAnzahl + $hop;
1019 
1020  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_least_deviation")."</b>"; //"<b>Geringste Standartabweichung:</b>";
1021  $SeitenStatsWert[$slider] = "";
1022  for ($i = 0; $i < $RankAnzahl; $i ++) {
1023  $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarMinID[$i]], 0, $TNA));
1024  $SeitenStatsWert[$i +1 + $slider] = round(sqrt($EinzelSeitenVarMin[$i]), 2)." (mZ:".
1025  (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarMinID[$i]])?$SeitenMessbareZugriffe[$EinzelSeitenVarMinID[$i]]:0).")";
1026  }
1027  $slider += $RankAnzahl + $hop;
1028 
1029  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_highest_varcoeff")."</b>"; //"<b>Hoechster Variationskoeffizient:</b>";
1030  $SeitenStatsWert[$slider] = "";
1031  for ($i = 0; $i < $RankAnzahl; $i ++) {
1032  $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarKoefMaxID[$i]], 0, $TNA));
1033  $SeitenStatsWert[$i +1 + $slider] = round(sqrt($EinzelSeitenVarKoefMax[$i]), 2)." (mZ:".
1034  (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarKoefMaxID[$i]])?$SeitenMessbareZugriffe[$EinzelSeitenVarKoefMaxID[$i]]:0).")";
1035  }
1036  $slider += $RankAnzahl + $hop;
1037 
1038  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_page_lowest_varcoeff")."</b>"; //"<b>Geringster Variationskoeffizient:</b>";
1039  $SeitenStatsWert[$slider] = "";
1040  for ($i = 0; $i < $RankAnzahl; $i ++) {
1041  $SeitenStatsName[$i +1 + $slider] = ($i +1).". ".str_replace($d1, $d2, substr($SeitenName[$EinzelSeitenVarKoefMinID[$i]], 0, $TNA));
1042  $SeitenStatsWert[$i +1 + $slider] = round(sqrt($EinzelSeitenVarKoefMin[$i]), 2)." (mZ:".
1043  (is_numeric($SeitenMessbareZugriffe[$EinzelSeitenVarKoefMinID[$i]])?$SeitenMessbareZugriffe[$EinzelSeitenVarKoefMinID[$i]]:0).")";
1044  }
1045  $slider += $RankAnzahl + $hop;
1046 
1047  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_interval_dwell_time")."</b>"; //"<b>VerweilDauer-Intervalle:</b>";
1048  $SeitenStatsWert[$slider] = "";
1049  $summe = 0;
1050  for ($i = 1; $i <= count($IntervallMax); $i ++) {
1051  $SeitenStatsName[$i + $slider] = $IntervallMax[$i -1].$lng->txt("stats_sec")." ".$lng->txt("stats_until")." ".$IntervallMax[$i]." ".$lng->txt("stats_sec").":"; //$IntervallMax[$i-1]."s bis ".$IntervallMax[$i]."s:";
1052  $SeitenStatsWert[$i + $slider] = round($IntervallAnz[$i])."z";
1053  $summe += $IntervallAnz[$i];
1054  }
1055  $slider += count($IntervallMax) + 1;
1056 
1057  $SeitenStatsName[$slider] = $lng->txt("stats_summation").": "; //"Summe:";
1058  $SeitenStatsWert[$slider] = $summe." ".$lng->txt("stats_accesses"); //" Zugriffe";
1059 
1060  $slider += $hop;
1061 
1062  $SeitenStatsName[$slider] = "<b>".$lng->txt("stats_interval_page_access")."</b>"; //"<b>Seitenzugriffe-Intervalle:</b>";
1063  $SeitenStatsWert[$slider] = "";
1064  $summe = 0;
1065  for ($i = 1; $i <= count($IntervallSeitenMax); $i ++) {
1066  $SeitenStatsName[$i + $slider] = ($IntervallSeitenMax[$i -1] + 1)." ".$lng->txt("stats_until")." ".$IntervallSeitenMax[$i]." ".$lng->txt("stats_accesses"); //..." bis "..." Zugriffe";
1067  $SeitenStatsWert[$i + $slider] = round($IntervallSeitenAnz[$i])." ".$lng->txt("stats_pages"); //" Seiten";
1068  $summe += $IntervallSeitenAnz[$i];
1069  }
1070  $slider += count($IntervallSeitenMax) + 2;
1071 
1072  $SeitenStatsName[$slider] = $lng->txt("stats_summation").": "; //"Summe:";
1073  $SeitenStatsWert[$slider] = $summe." ".$lng->txt("stats_pages"); //" Seiten";
1074 
1075  $slider += $hop;
1076 
1077  //SESSIONSTATS
1078  $slider2 ++;
1079  $SessionStatsName[$slider2] = $lng->txt("stats_session_number"); //"Anzahl Sessions";
1080  $SessionStatsWert[$slider2] = round($Sessionanz);
1081  $slider2 ++;
1082  $SessionStatsName[$slider2] = $lng->txt("stats_session_evaluable"); //"Auswertbare Sessions (Zeit)";
1083  $SessionStatsWert[$slider2] = round($MessbareSessions);
1084  $slider2 ++;
1085  $SessionStatsName[$slider2] = $lng->txt("stats_session_involved_usr"); //"beteiligte User";
1086  $SessionStatsWert[$slider2] = round($UserAnz);
1087  $slider2 ++;
1088  $SessionStatsName[$slider2] = $lng->txt("stats_session_evaluable_usr"); //"Auswertbare User";
1089  $SessionStatsWert[$slider2] = round($UserMessbarAnz);
1090  $slider2 ++;
1091  $SessionStatsName[$slider2] = $lng->txt("stats_session_evaluable_access"); //"Auswertbare Sessionzugriffe (Zeit)";
1092  $SessionStatsWert[$slider2] = round($MessbareSessionZugriffe);
1093  $slider2 ++;
1094  $SessionStatsName[$slider2] = $lng->txt("stats_session_average_page_access"); //"durchschn. Seitenzugriffe je Session";
1095  $SessionStatsWert[$slider2] = round($SessionDurschnittsZeit, 4);
1096  $slider2 ++;
1097  $SessionStatsName[$slider2] = $lng->txt("stats_session_total_duration"); //"SessionsGesamtdauer";
1098  $SessionStatsWert[$slider2] = ilLMStatistics::s_to_h($SessionGesamtDauerAll)." (".$SessionGesamtDauerAll.$lng->txt("stats_sec").")";
1099  $slider2 ++;
1100  $SessionStatsName[$slider2] = $lng->txt("stats_session_average_length"); //"durchschn. Sessionlaenge";
1101  $SessionStatsWert[$slider2] = ilLMStatistics::s_to_m($SessionDurchschnittsDauer);
1102  $slider2 ++;
1103 
1104  $slider2 += $hop;
1105 
1106  $SessionStatsName[$slider2] = "<b>".$lng->txt("stats_session_longest")."</b>"; //"<b>Laengste Session</b>";
1107  $SessionStatsWert[$slider2] = "";
1108 
1109  include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
1110 
1112 
1113 
1114  for ($i = 0; $i < $RankAnzahl; $i ++) {
1115  $SessionStatsName[$i +1 + $slider2] = ($i +1).". ".$lng->txt("stats_user")." ". ($anonymous?$i+1:ilObjUser::_lookupLogin($SessionUserID[$SessionGesamtDauerMaxID[$i]])); //.$SessionGesamtDauerMaxID[$i]." von User "
1116  $SessionStatsWert[$i +1 + $slider2] = ilLMStatistics::s_to_h($SessionGesamtDauerMax[$i])." (".$SessionGesamtDauerMax[$i].$lng->txt("stats_sec").")"; //"s)";
1117  }
1118  $slider2 += $RankAnzahl + $hop;
1119 
1120  $SessionStatsName[$slider2] = "<b>".$lng->txt("stats_session_longest_total_duration_usr")."</b>"; //"<b>Laengste Gesamtdauer pro User</b>";
1121  $SessionStatsWert[$slider2] = "";
1122  for ($i = 0; $i < $RankAnzahl; $i ++) {
1123  $SessionStatsName[$i +1 + $slider2] = ($i +1).". ".$lng->txt("stats_user")." ".($anonymous?$i+1:ilObjUser::_lookupLogin($UserGesamtSessionsDauerMaxID[$i]));
1124  $SessionStatsWert[$i +1 + $slider2] = ilLMStatistics::s_to_h($UserGesamtSessionsDauerMax[$i])." (".$UserGesamtSessionsDauerMax[$i].$lng->txt("stats_sec").")"; //."s)";
1125  }
1126  $slider2 += $RankAnzahl + $hop;
1127 
1128  $SessionStatsName[$slider2] = "<b>".$lng->txt("stats_session_most").":"."</b>"; //"<b>Meiste Sessions:</b>";
1129  $SessionStatsWert[$slider2] = "";
1130  for ($i = 0; $i < $RankAnzahl; $i ++) {
1131  $SessionStatsName[$i +1 + $slider2] = ($i +1).". ".$lng->txt("stats_user")." ".($anonymous?$i+1:ilObjUser::_lookupLogin($UserSessionAnzMaxID[$i])); //". User "
1132  $SessionStatsWert[$i +1 + $slider2] = round($UserSessionAnzMax[$i])." ".$lng->txt("stats_sessions"); //" Sessions";
1133  }
1134  $slider2 += $RankAnzahl + $hop;
1135 
1136  //KAPITELSTATS
1137 
1138  $hop = 0;
1139 
1140  $slider3 ++;
1141  $KapitelStatsName[$slider3] = $lng->txt("stats_chapter_number"); //"Anzahl Kapitel";
1142  $KapitelStatsWert[$slider3] = round($Kapitelanz);
1143  $slider3 ++;
1144  $KapitelStatsName[$slider3] = $lng->txt("stats_depth")." 0"; //"Tiefe 2";
1145  $KapitelStatsWert[$slider3] = round($KapitelTiefe2Anzahl);
1146  $slider3 ++;
1147  $KapitelStatsName[$slider3] = $lng->txt("stats_depth")." 1"; //"Tiefe 3";
1148  $KapitelStatsWert[$slider3] = round($KapitelTiefe3Anzahl);
1149  $slider3 ++;
1150  $KapitelStatsName[$slider3] = $lng->txt("stats_depth")." 2"; //"Tiefe 4";
1151  $KapitelStatsWert[$slider3] = round($KapitelTiefe4Anzahl);
1152  $slider3 ++;
1153  $KapitelStatsName[$slider3] = $lng->txt("stats_depth")." 3+"; //"Tiefe 5+";
1154  $KapitelStatsWert[$slider3] = round($KapitelTiefe5Anzahl);
1155  $slider3 ++;
1156 
1157  $slider3 += $hop;
1158 
1159  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_longest_total_dwell_time_depth")." 0:"."</b>"; //"<b>LaengsteGesamtVerweildauer Tiefe 2:</b>";
1160  $KapitelStatsWert[$slider3] = "";
1161  for ($i = 0; $i < min($KapitelTiefe2Anzahl,$RankAnzahl); $i ++) {
1162  $KapitelStatsName[$i + 1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID2[$i]], 0, $TNA));
1163  $KapitelStatsWert[$i + 1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax2[$i]);
1164 
1165  }
1166  $slider3 += $i + $hop + 1;
1167  //$slider3 += $RankAnzahl + $hop;
1168 
1169  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_most_access_depth")." 0:"."</b>"; //"<b>Meisten Zugriffe Tiefe 2</b>";
1170  $KapitelStatsWert[$slider3] = "";
1171  for ($i = 0; $i < min($KapitelTiefe2Anzahl, $RankAnzahl); $i ++) {
1172  $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID2[$i]], 0, $TNA));
1173  $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMax2[$i])." ".$lng->txt("stats_accesses"); //." Zugriffe";
1174  }
1175  $slider3 += $i + $hop + 1;
1176  //$slider3 += $RankAnzahl + $hop;
1177 
1178  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_longest_total_dwell_time_depth")." 1:"."</b>"; //"<b>LaengsteGesamtVerweildauer Tiefe 3:</b>";
1179  $KapitelStatsWert[$slider3] = "";
1180  for ($i = 0; $i < min($KapitelTiefe3Anzahl, $RankAnzahl); $i ++) {
1181  $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID3[$i]], 0, $TNA));
1182  $KapitelStatsWert[$i +1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax3[$i]);
1183  }
1184  //$slider3 += $RankAnzahl + $hop;
1185  $slider3 += $i + $hop + 1;
1186 
1187  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_most_access_depth")." 1:"."</b>"; //"<b>Meisten Zugriffe Tiefe 3</b>";
1188  $KapitelStatsWert[$slider3] = "";
1189  for ($i = 0; $i < min($KapitelTiefe3Anzahl, $RankAnzahl); $i ++) {
1190  $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID3[$i]], 0, $TNA));
1191  $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMax3[$i])." ".$lng->txt("stats_accesses"); //." Zugriffe";
1192  }
1193  $slider3 += $i + $hop + 1;
1194  //$slider3 += $RankAnzahl + $hop;
1195 
1196  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_longest_total_dwell_time_depth")." 2:"."</b>"; //"<b>LaengsteGesamtVerweildauer Tiefe 4:</b>";
1197  $KapitelStatsWert[$slider3] = "";
1198  for ($i = 0; $i < min($KapitelTiefe4Anzahl, $RankAnzahl); $i ++) {
1199  $KapitelStatsName[$i +1 + $slider3] = ($i + 1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID4[$i]], 0, $TNA));
1200  $KapitelStatsWert[$i +1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax4[$i]);
1201 
1202  }
1203  $slider3 += $i + $hop + 1;
1204  //$slider3 += $RankAnzahl + $hop;
1205 
1206  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_most_access_depth")." 2:"."</b>"; //"<b>Meisten Zugriffe Tiefe 4</b>";
1207  $KapitelStatsWert[$slider3] = "";
1208  for ($i = 0; $i < min($KapitelTiefe4Anzahl, $RankAnzahl); $i ++) {
1209  $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID4[$i]], 0, $TNA));
1210  $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMax4[$i])." ".$lng->txt("stats_accesses"); //." Zugriffe";
1211 
1212  }
1213  $slider3 += $i + $hop + 1;
1214  //$slider3 += $RankAnzahl + $hop;
1215 
1216  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_longest_total_dwell_time_depth")." 3+:"."</b>"; //"<b>LaengsteGesamtVerweildauer Tiefe 5+:</b>";
1217  $KapitelStatsWert[$slider3] = "";
1218  for ($i = 0; $i < min($KapitelTiefe5Anzahl, $RankAnzahl); $i ++) {
1219  $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMaxID5[$i]], 0, $TNA));
1220  $KapitelStatsWert[$i +1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMax5[$i]);
1221  }
1222  $slider3 += $i + $hop + 1;
1223  //$slider3 += $RankAnzahl + $hop;
1224 
1225 
1226  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_most_access_depth")." 3+:"."</b>"; //"<b>Meisten Zugriffe Tiefe 5+</b>";
1227  $KapitelStatsWert[$slider3] = "";
1228  for ($i = 0; $i < min($KapitelTiefe5Anzahl, $RankAnzahl); $i ++) {
1229  $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMaxID5[$i]], 0, $TNA));
1230  $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMax5[$i])." ".$lng->txt("stats_accesses"); //." Zugriffe";
1231  }
1232  //$slider3 += $RankAnzahl + $hop;
1233  $slider3 += $i + $hop + 1;
1234 
1235  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_stubbiest_total_dwell_time").":"."</b>"; //"<b>kuerzeste GesamtVerweildauer:</b>";
1236  $KapitelStatsWert[$slider3] = "";
1237  for ($i = 0; $i < $RankAnzahl; $i ++) {
1238  $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelGesamtVerweilMinID[$i]], 0, $TNA));
1239  $KapitelStatsWert[$i +1 + $slider3] = ilLMStatistics::s_to_h($KapitelGesamtVerweilMin[$i]);
1240  }
1241  $slider3 += $RankAnzahl + $hop;
1242 
1243  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_fewest_access").":"."</b>"; //"<b>wenigste Zugriffe:</b>";
1244  $KapitelStatsWert[$slider3] = "";
1245  for ($i = 0; $i < $RankAnzahl; $i ++) {
1246  $KapitelStatsName[$i +1 + $slider3] = ($i +1).". ".str_replace($d1, $d2, substr($KapitelName[$KapitelZugriffMinID[$i]], 0, $TNA));
1247  $KapitelStatsWert[$i +1 + $slider3] = round($KapitelZugriffMin[$i])." ".$lng->txt("stats_accesses"); //." Zugriffe";
1248  }
1249  $slider3 += $RankAnzahl + $hop;
1250 
1251  $slider3save = $slider3;
1252 
1253  //Abdeckungsgrade Tiefe2
1254  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_depth_coverage")." 0:"."</b>"; //"<b>Abdeckungsgrade Tiefe 2:</b>";
1255  $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses").">0";
1256  $KapitelStatsWertA2[$slider3] = ">".floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor2);
1257  $KapitelStatsWertA3[$slider3] = ">".floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor3);
1258  $KapitelStatsWertA4[$slider3] = ">".floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor4);
1259  $KapitelStatsWertA5[$slider3] = ">".floor($KapitelDurchZugriffe2 * $KapitelAbdeckungsKennzahlFaktor5);
1260 
1261  $u = 0;
1262  for ($i = 1; $i <= $Kapitelanz; $i ++) {
1263  if ($seitenTiefe[$KapitelID[$i]] == 2) {
1264  if ($KapitelSeitenSumme[$i] > 0) {
1265  $u ++;
1266  $KapitelStatsName[$u +1 + $slider3] = $u.". ".str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA))." (".$KapitelSeitenSumme[$i]." ".$lng->txt("stats_pages").")";
1267  $KapitelStatsWertA1[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]).")";
1268  $KapitelStatsWertA2[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]).")";
1269  $KapitelStatsWertA3[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]).")";
1270  $KapitelStatsWertA4[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]).")";
1271  $KapitelStatsWertA5[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]).")";
1272  }
1273  }
1274  }
1275  $slider3 += $u + $hop +2;
1276 
1277  //Abdeckungsgrade Tiefe3
1278  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_depth_coverage")." 1:"."</b>"; //"<b>Abdeckungsgrade Tiefe 3:</b>";
1279  $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses").">0";
1280  $KapitelStatsWertA2[$slider3] = ">".floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor2);
1281  $KapitelStatsWertA3[$slider3] = ">".floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor3);
1282  $KapitelStatsWertA4[$slider3] = ">".floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor4);
1283  $KapitelStatsWertA5[$slider3] = ">".floor($KapitelDurchZugriffe3 * $KapitelAbdeckungsKennzahlFaktor5);
1284  $u = 0;
1285  for ($i = 1; $i <= $Kapitelanz; $i ++) {
1286  if ($seitenTiefe[$KapitelID[$i]] == 3) {
1287  if ($KapitelSeitenSumme[$i] > 0) {
1288  $u ++;
1289  $KapitelStatsName[$u +1 + $slider3] = str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA))." (".$KapitelSeitenSumme[$i]." ".$lng->txt("stats_pages").")";
1290  $KapitelStatsWertA1[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]).")";
1291  $KapitelStatsWertA2[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]).")";
1292  $KapitelStatsWertA3[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]).")";
1293  $KapitelStatsWertA4[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]).")";
1294  $KapitelStatsWertA5[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]).")";
1295  }
1296  }
1297  }
1298  $slider3 += $u + $hop +2;
1299 
1300  //Abdeckungsgrade Tiefe4
1301  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_depth_coverage")." 2:"."</b>"; //"<b>Abdeckungsgrade Tiefe 4:</b>";
1302  $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses").">0";
1303  $KapitelStatsWertA2[$slider3] = ">".floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor2);
1304  $KapitelStatsWertA3[$slider3] = ">".floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor3);
1305  $KapitelStatsWertA4[$slider3] = ">".floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor4);
1306  $KapitelStatsWertA5[$slider3] = ">".floor($KapitelDurchZugriffe4 * $KapitelAbdeckungsKennzahlFaktor5);
1307  $u = 0;
1308  for ($i = 1; $i <= $Kapitelanz; $i ++) {
1309  if ($seitenTiefe[$KapitelID[$i]] == 4) {
1310  if ($KapitelSeitenSumme[$i] > 0) {
1311  $u ++;
1312  $KapitelStatsName[$u +1 + $slider3] = str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA))." (".$KapitelSeitenSumme[$i]." ".$lng->txt("stats_pages").")";
1313  $KapitelStatsWertA1[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]).")";
1314  $KapitelStatsWertA2[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]).")";
1315  $KapitelStatsWertA3[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]).")";
1316  $KapitelStatsWertA4[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]).")";
1317  $KapitelStatsWertA5[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]).")";
1318  }
1319  }
1320  }
1321  $slider3 += $u + $hop +2;
1322 
1323  //Abdeckungsgrade Tiefe5
1324  $KapitelStatsName[$slider3] = "<b>".$lng->txt("stats_chapter_depth_coverage")." 3+:"."</b>"; //"<b>Abdeckungsgrade Tiefe 5+:</b>";
1325  $KapitelStatsWertA1[$slider3] = $lng->txt("stats_accesses").">0";
1326  $KapitelStatsWertA2[$slider3] = ">".floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor2);
1327  $KapitelStatsWertA3[$slider3] = ">".floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor3);
1328  $KapitelStatsWertA4[$slider3] = ">".floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor4);
1329  $KapitelStatsWertA5[$slider3] = ">".floor($KapitelDurchZugriffe5 * $KapitelAbdeckungsKennzahlFaktor5);
1330  $u = 0;
1331  for ($i = 1; $i <= $Kapitelanz; $i ++) {
1332  if ($seitenTiefe[$KapitelID[$i]] == 5) {
1333  if ($KapitelSeitenSumme[$i] > 0) {
1334  $u ++;
1335  $KapitelStatsName[$u +1 + $slider3] = str_replace($d1, $d2, substr($KapitelName[$i], 0, $TNA))." (".$KapitelSeitenSumme[$i]." ".$lng->txt("stats_pages").")"; //." Seiten)";//$KapitelZugriffe[$i];
1336  $KapitelStatsWertA1[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten1[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten1[$i]).")";
1337  $KapitelStatsWertA2[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten2[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten2[$i]).")";
1338  $KapitelStatsWertA3[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten3[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten3[$i]).")";
1339  $KapitelStatsWertA4[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten4[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten4[$i]).")";
1340  $KapitelStatsWertA5[$u +1 + $slider3] = ilLMStatistics::proz(floor($KapitelAbgedeckteSeiten5[$i] * 100 / $KapitelSeitenSumme[$i]))."%(". ilLMStatistics::proz($KapitelAbgedeckteSeiten5[$i]).")";
1341  }
1342  }
1343  }
1344  $slider3 += $u + $hop +2;
1345 
1346  //AUSGABE BEOBACHTUNGSMODELL
1347 
1348  if ($_POST["stat"] == 'u') {
1349  //Daten f�r das Applet zusammenstellen
1350 
1351  $delim1 = " ";
1352 
1353  for ($i = 1; $i <= $Seitenanz; $i ++) {
1354  $KapitelZuSeite2 = $KapitelZuSeite2. (-1 + $rKapitelID[$vatizumkind[$SeitenID[$i]]]).$delim1;
1355  }
1356  for ($i = 1; $i <= $Seitenanz; $i ++) {
1357  for ($j = 1; $j <= $Seitenanz; $j ++) {
1358  $SessionVonNach2 = $SessionVonNach2. (0 + $SessionVonNach[$i][$j]).$delim1;
1359  }
1360  }
1361  for ($i = 1; $i <= $Kapitelanz; $i ++) {
1362  for ($j = 1; $j <= $Kapitelanz; $j ++) {
1363  $KapitelVonNach2 = $KapitelVonNach2. (0 + $KapitelVonNach[$i][$j]).$delim1;
1364  }
1365  }
1366  for ($i = 1; $i <= $Kapitelanz; $i ++) {
1367  $OberkapitelZuKapitel2 = $OberkapitelZuKapitel2. (-1 + $rKapitelID[$vatizumkind[$KapitelID[$i]]]).$delim1;
1368  }
1369 
1370  $delim2 = " sName ";
1371 
1372  for ($i = 1; $i <= $Seitenanz; $i ++) {
1373  $Seitenname2 = $Seitenname2.$SeitenName[$i].$delim2;
1374  }
1375 
1376  $delim3 = " kName ";
1377 
1378  for ($i = 1; $i <= $Kapitelanz; $i ++) {
1379  $Kapitelname2 = $Kapitelname2.$KapitelName[$i].$delim3;
1380  }
1381  //Ende der Variablen
1382  }
1383  //ENDE von AUSGABE BEOBACHTUNGSMODELL
1384 
1385  else {
1386  //SCHREIBE die SEITEN,SESSION oder KAPITELSTATS in Tabelle
1387 
1388  include_once "./Services/Table/classes/class.ilTableGUI.php";
1389  // $tbl = new ilTableGUI();
1390  $tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.lm_statistics_result.html", "Services/Tracking");
1391  $tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
1392  $tpl->addBlockfile("TRACK_TABLE", "track_table", "tpl.table.html");
1393  $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
1394 
1395  if ($_POST["stat"] == 'd') {
1396  $title_new = array ("time", "", "", "", "", "");
1397  } else {
1398  $title_new = array ("time", "count");
1399  }
1400 
1401  $tbl = new ilTableGUI();
1402  $tbl->setTitle($lng->txt("obj_trac"), 0);
1403  foreach ($title_new as $val) {
1404  $header_names[] = $lng->txt($val);
1405  }
1406  $tbl->disable("sort");
1407  $tbl->setHeaderNames($header_names);
1408  if ($_POST["stat"] == 'h') { //SeitenSTATS
1409  $num = $slider +1;
1410  //$tbl->setMaxCount($num);
1411  } else
1412  if ($_POST["stat"] == 'd') { //KapitelSTATS
1413  $num = $slider3save + $slider3 + 1;
1414  //$tbl->setMaxCount($num);
1415  } else
1416  if ($_POST["stat"] == 'o') { //SessionSTATS
1417  $num = $slider2 +1;
1418  //$tbl->setMaxCount($num);
1419  } else { //BeobModell
1420  $num = 24;
1421  //$tbl->setMaxCount($num);
1422  }
1423  $tbl->setStyle("table", "std");
1424  $tbl->render();
1425 
1426  if ($_POST["stat"] == 'h') { //SeitenSTATS
1427  for ($i = 0; $i < $num; $i ++) { //Soviele Zeilen ausgeben
1428  $data[0] = $SeitenStatsName[$i]; //String in 1. Spalte
1429  $data[1] = $SeitenStatsWert[$i]; // Werte der 2. Spalte
1430  $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2"; //Tabelle erstellen
1431  foreach ($data as $key => $val) { //Werte eintragen
1432  $tpl->setCurrentBlock("text");
1433  $tpl->setVariable("TEXT_CONTENT", $val); //Werte der Zelle setzen
1434  $tpl->parseCurrentBlock();
1435  $tpl->setCurrentBlock("table_cell"); //<td class="std" valign="top"> </td>
1436  $tpl->parseCurrentBlock();
1437  }
1438  $tpl->setCurrentBlock("tbl_content"); //<tr class="{CSS_ROW}"></tr>
1439  $tpl->setVariable("CSS_ROW", $css_row);
1440  $tpl->parseCurrentBlock();
1441  }
1442  $tpl->parseCurrentBlock();
1443  } else
1444  if ($_POST["stat"] == 'd') { //KapitelSTATS
1445  for ($i = 1; $i < $slider3save; $i ++) { //Soviele Zeilen ausgeben
1446  $data[0] = $KapitelStatsName[$i]; //String in 1. Spalte
1447  $data[1] = $KapitelStatsWert[$i]; // Werte der 2. Spalte
1448  $data[2] = "";
1449  $data[3] = "";
1450  $data[4] = "";
1451  $data[5] = "";
1452  $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2"; //Tabelle erstellen
1453  foreach ($data as $key => $val) { //Werte eintragen
1454  $tpl->setCurrentBlock("text");
1455  $tpl->setVariable("TEXT_CONTENT", $val);
1456  $tpl->parseCurrentBlock();
1457  $tpl->setCurrentBlock("table_cell");
1458  $tpl->parseCurrentBlock();
1459  }
1460  $tpl->setCurrentBlock("tbl_content");
1461  $tpl->setVariable("CSS_ROW", $css_row);
1462  $tpl->parseCurrentBlock();
1463  }
1464  //Abdeckungsgrade ausgeben
1465  for ($i = $slider3save; $i < $slider3; $i ++) { //Soviele Zeilen ausgeben
1466  $data[0] = $KapitelStatsName[$i]; //String in 1. Spalte
1467  $data[1] = $KapitelStatsWertA1[$i]; // Werte der 2. Spalte
1468  $data[2] = $KapitelStatsWertA2[$i];
1469  $data[3] = $KapitelStatsWertA3[$i];
1470  $data[4] = $KapitelStatsWertA4[$i];
1471  $data[5] = $KapitelStatsWertA5[$i];
1472  $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2"; //Tabelle erstellen
1473  foreach ($data as $key => $val) { //Werte eintragen
1474  $tpl->setCurrentBlock("text");
1475  $tpl->setVariable("TEXT_CONTENT", $val);
1476  $tpl->parseCurrentBlock();
1477  $tpl->setCurrentBlock("table_cell");
1478  $tpl->parseCurrentBlock();
1479  }
1480  $tpl->setCurrentBlock("tbl_content");
1481  $tpl->setVariable("CSS_ROW", $css_row);
1482  $tpl->parseCurrentBlock();
1483  }
1484  $tpl->parseCurrentBlock();
1485  } else
1486  if ($_POST["stat"] == 'o') { //SessionSTATS
1487  for ($i = 0; $i < $num; $i ++) { //Soviele Zeilen ausgeben
1488  $data[0] = $SessionStatsName[$i]; //String in 1. Spalte
1489  $data[1] = $SessionStatsWert[$i]; // Werte der 2. Spalte
1490  $css_row = $i % 2 == 0 ? "tblrow1" : "tblrow2"; //Tabelle erstellen
1491  foreach ($data as $key => $val) { //Werte eintragen
1492  $tpl->setCurrentBlock("text");
1493  $tpl->setVariable("TEXT_CONTENT", $val);
1494  $tpl->parseCurrentBlock();
1495  $tpl->setCurrentBlock("table_cell");
1496  $tpl->parseCurrentBlock();
1497  }
1498  $tpl->setCurrentBlock("tbl_content");
1499  $tpl->setVariable("CSS_ROW", $css_row);
1500  $tpl->parseCurrentBlock();
1501  }
1502  $tpl->parseCurrentBlock();
1503  }
1504  $tpl->setCurrentBlock("adm_content");
1505  $tpl->setVariable("TXT_TIME_PERIOD", $lng->txt("time_segment"));
1506  switch ($_POST["stat"]) {
1507  case "h" :
1508  $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_pages_statisics"));
1509  $tpl->setVariable("TXT_TRACKED_HELP", $lng->txt("help"));
1510  $tpl->setVariable("VAL_TRACKED_HELP_LINK", "<a href='".MODULE_URL."/docs/pagestats_help.html' target='_blank'>"."Link"."</a>");
1511  break;
1512  case "u" :
1513  $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_navigation"));
1514  break;
1515  case "d" :
1516  $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_chapter_statisics"));
1517  $tpl->setVariable("TXT_TRACKED_HELP", $lng->txt("help"));
1518  $tpl->setVariable("VAL_TRACKED_HELP_LINK", "<a href='".MODULE_URL."/docs/chapterstats_help.html' target='_blank'>"."Link"."</a>");
1519  break;
1520  case "o" :
1521  $tpl->setVariable("TXT_STATISTIC", $lng->txt("stats_sessions_statisics"));
1522  $tpl->setVariable("TXT_TRACKED_HELP", $lng->txt("help"));
1523  $tpl->setVariable("VAL_TRACKED_HELP_LINK", "<a href='".MODULE_URL."/docs/sessionstats_help.html' target='_blank'>"."Link"."</a>");
1524  break;
1525  }
1526  $tpl->setVariable("VAL_DATEF", date("Y-m-d", mktime(0, 0, 0, $monthf, $dayf, $yearf)));
1527  $tpl->setVariable("TXT_TO", $lng->txt("to"));
1528  $tpl->setVariable("VAL_DATET", date("Y-m-d", mktime(0, 0, 0, $montht, $dayt, $yeart)));
1529  $tpl->setVariable("TXT_USER_LANGUAGE", $lng->txt("user_language"));
1530  if ($_POST["language"] == "0") {
1531  $tpl->setVariable("VAL_LANGUAGE", $lng->txt("any_language"));
1532  } else {
1533  $lng->loadLanguageModule("meta");
1534  $tpl->setVariable("VAL_LANGUAGE", $lng->txt("meta_l_".$_POST["language"]));
1535  }
1536  $rLehrmodulID = $_SESSION["il_track_rlm_id"];
1537  $LehrmodulName = $_SESSION["il_track_lm_name"];
1538  $tpl->setVariable("TXT_TRACKED_OBJECTS", $lng->txt("tracked_objects"));
1539  $tpl->setVariable("VAL_TRACKED_OBJECTS", $LehrmodulName[$rLehrmodulID[$_POST["lmID"]]]);
1540  $tpl->setVariable("LEGENDE", $lng->txt("stats_legend"));
1541  $tpl->setVariable("VAL_LEGENDE_MZ", $lng->txt("stats_measurable_hits"));
1542  $tpl->setVariable("VAL_LEGENDE_Z", $lng->txt("stats_hits"));
1543  $tpl->setVariable("LEGENDE_MZ", "mz");
1544  $tpl->setVariable("LEGENDE_Z", "z");
1545  $tpl->parseCurrentBlock();
1546  }
1547  //ENDE von AUSGABE
1548 
1549  $this->Seitenanz = $Seitenanz;
1550  $this->KapitelZuSeite2 = $KapitelZuSeite2;
1551  $this->SessionVonNach2 = $SessionVonNach2;
1552  $this->Kapitelanz = $Kapitelanz;
1553  $this->KapitelVonNach2 = $KapitelVonNach2;
1554  $this->OberkapitelZuKapitel2 = $OberkapitelZuKapitel2;
1555  $this->Seitenname2 = $Seitenname2;
1556  $this->Kapitelname2 = $Kapitelname2;
1557 
1558  } //Ende if
1559 
1560  } //Ende OUTPUTfunktion
1561 
1562  function outputApplet() {
1563  global $tpl, $lng, $ilias, $db;
1564  $this->calcStats (0);
1565 
1566  $tpl->setVariable("Sprache", "<param name='Sprache' value= '".$ilias->account->prefs["language"]."'>");
1567  $tpl->setVariable("Seitenanz2", "<param name='Seitenanz2' value= '".$this->Seitenanz."'>");
1568  $tpl->setVariable("KapitelZuSeite2", "<param name='KapitelZuSeite2' value= '".$this->KapitelZuSeite2."'>");
1569  $tpl->setVariable("SessionVonNach2", "<param name='SessionVonNach2' value= '".$this->SessionVonNach2."'>");
1570  $tpl->setVariable("Kapitelanz2", "<param name='Kapitelanz2' value= '".$this->Kapitelanz."'>");
1571  $tpl->setVariable("KapitelVonNach2", "<param name='KapitelVonNach2' value= '".$this->KapitelVonNach2."'>");
1572  $tpl->setVariable("OberkapitelZuKapitel2", "<param name='OberkapitelZuKapitel2' value= '".$this->OberkapitelZuKapitel2."'>");
1573  $tpl->setVariable("Seitenname2", "<param name='Seitenname2' value= '".$this->Seitenname2."'>");
1574  $tpl->setVariable("Kapitelname2", "<param name='Kapitelname2' value= '".$this->Kapitelname2."'>");
1575 
1576  include_once "./Services/Table/classes/class.ilTableGUI.php";
1577  $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.lm_statistics_result_applet.html", true);
1578  $tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
1579  $tpl->setVariable("TXT_TRACKED_OBJECTS2", "Beobachtungsmodell");
1580  $tpl->setVariable("CODEBASE", MODULE_URL."/lib");
1581  $tpl->setCurrentBlock("adm_content");
1582  $tpl->parseCurrentBlock();
1583  }
1584 
1585  //#####BERECHNUNGEN#####
1586 
1587  //FUNKTIONEN
1588 
1594  function varianzSV($arr, $mittelwert) {
1595 
1596  if (!count($arr))
1597  return 0;
1598 
1599  $summe = 0;
1600 
1601  for ($i = 0; $i < count($arr); $i ++) {
1602  $summe += ($arr[$i] - $mittelwert) * ($arr[$i] - $mittelwert);
1603  }
1604  return $summe / (count($arr));
1605  }
1606 
1607  function s_to_h($sek) {
1608  $stund = floor($sek / 3600);
1609  $min = floor(($sek - $stund * 3600) / 60);
1610  $restsek = ($sek - $stund * 3600 - $min * 60);
1611  return $stund."h,".$min."m,".$restsek."s";
1612  }
1613 
1614  //Funktion zum umrechnen von Sekunden in Minuten
1615 
1616  function s_to_m($sek) {
1617  $min = floor($sek / 60);
1618  $restsek = ($sek - $min * 60);
1619  return $min."m,".round($restsek)."s";
1620  }
1621 
1622  function proz($str) {
1623  return $str;
1624  /*
1625  * if(strlen($str)==0){
1626  * $str2="&#160;"."&#160;"."&#160;".$str;
1627  * return $str2;
1628  * }
1629  * elseif(strlen($str)==1){
1630  * $str2="&#160;"."&#160;".$str;
1631  * return $str2;
1632  * }
1633  * elseif(strlen($str)==2){
1634  * $str2="&#160;".$str;
1635  * return $str2;
1636  * }
1637  * elseif(strlen($str)==3){
1638  * $str2=$str;
1639  * return $str2;
1640  * }
1641  */
1642  }
1643 
1644 }
1645 define(MODULE_PATH, ILIAS_ABSOLUTE_PATH."/Services/Tracking");
1646 define(MODULE_URL, ILIAS_HTTP_PATH."/Services/Tracking");
1647 ?>