8f3d1d0a6474704f16f732c648c666a179b18efd
[atutor.git] / mods / wiki / plugins / page / scandisk.php
1 <?php
2 #
3 # this is mainly a joke plugin, however it shows up some statistical
4 # data about the WikiPages database
5
6
7 $ewiki_plugins["page"]["ScanDisk"] = "ewiki_page_scandisk";
8
9
10 function ewiki_page_scandisk($id, $data, $action) {
11
12    $o .= "<h2>$id</h2>\n";
13
14    $s_fv = 0;
15    $s_files = 0;
16    $s_n_txt = 0;
17    $s_n_bin = 0;
18    $s_n_txt_r = 0;
19    $s_n_bin_r = 0;
20    $s_n_dis = 0;
21    $s_n_err = 0;
22    $s_n_htm = 0;
23    $s_n_ro = 0;
24    $s_n_wr = 0;
25    $s_holes = 0;
26
27    $result = ewiki_db::GETALL(array("flags", "meta", "created", "version"));
28
29    $s_files = $result->count();
30
31    while ($row = $result->get()) {
32
33       $flags = $row["flags"];
34       $s_n_txt += ($flags & EWIKI_DB_F_TEXT) ?1:0;
35       $s_n_bin += ($flags & EWIKI_DB_F_BINARY) ?1:0;
36       $s_n_txt_r += (($flags & EWIKI_DB_F_TYPE) == EWIKI_DB_F_TEXT) ?1:0;
37       $s_n_bin_r += (($flags & EWIKI_DB_F_TYPE) == EWIKI_DB_F_BINARY) ?1:0;
38       $s_n_dis += ($flags & EWIKI_DB_F_DISABLED) ?1:0;
39       $s_n_err += (($flags & EWIKI_DB_F_TYPE) == 0) ?1:0;
40       $s_n_htm += ($flags & EWIKI_DB_F_HTML) ?1:0;
41       $s_n_ro += ($flags & EWIKI_DB_F_READONLY) ?1:0;
42       $s_n_wr += ($flags & EWIKI_DB_F_WRITEABLE) ?1:0;
43
44       $s_fv += $row["version"];
45
46       $id = $row["id"];
47       for ($v=1; $v<=$row["version"]; $v++) {
48          $r = ewiki_db::GET($id, $v);
49          if (empty($r["created"]) || empty($r["content"])) {
50             $s_holes += 1;
51          }
52       }
53    }
54
55    $s_frag = ($s_fv ? (((int)(100*$s_holes/$s_fv))/100) ."%" : "N/A");
56
57    $o .= '<table border="0" cellpadding="2" cellspacing="1">'
58        . "<tr><td align=\"right\" bgcolor=\"#ccccee\">number of wikipages</td><td bgcolor=\"#eeeecc\">$s_files</td></tr>\n"
59        . "<tr><td align=\"right\" bgcolor=\"#ccccee\">text<br />binary<br />disabled pages<br />errors</td><td bgcolor=\"#eeeecc\">$s_n_txt <small>($s_n_txt_r)</small><br />$s_n_bin <small>($s_n_bin_r)</small><br />$s_n_dis<br />$s_n_err</td></tr>\n"
60        . "<tr><td align=\"right\" bgcolor=\"#ccccee\">flagged read-only<br />explicit writable<br />html enabled pages</td><td bgcolor=\"#eeeecc\">$s_n_ro<br />$s_n_wr<br />$s_n_htm</td></tr>\n"
61        . "<tr><td align=\"right\" bgcolor=\"#ccccee\">absolute page number<br />version holes<br />database fragmentation</td><td bgcolor=\"#eeeecc\">$s_fv<br />$s_holes<br />$s_frag</td></tr>\n"
62        . "</table>\n";
63
64    return($o);
65 }
66
67
68 ?>