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