3 # this is mainly a joke plugin, however it shows up some statistical
4 # data about the WikiPages database
7 $ewiki_plugins["page"]["ScanDisk"] = "ewiki_page_scandisk";
10 function ewiki_page_scandisk($id, $data, $action) {
12 $o .= "<h2>$id</h2>\n";
27 $result = ewiki_db::GETALL(array("flags", "meta", "created", "version"));
29 $s_files = $result->count();
31 while ($row = $result->get()) {
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;
44 $s_fv += $row["version"];
47 for ($v=1; $v<=$row["version"]; $v++) {
48 $r = ewiki_db::GET($id, $v);
49 if (empty($r["created"]) || empty($r["content"])) {
55 $s_frag = ($s_fv ? (((int)(100*$s_holes/$s_fv))/100) ."%" : "N/A");
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"