removed mods directory from the ATutor codebase
[atutor.git] / mods / wiki / plugins / admin / control.php
diff --git a/mods/wiki/plugins/admin/control.php b/mods/wiki/plugins/admin/control.php
deleted file mode 100644 (file)
index 654c0d5..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-<?php
-
-/*
-  This plugin provides per-page administrative functions, for easier access
-  to some settings and tools. Currently supports page renaming and page flag
-  setting.
-  requires _PROTECTED_MODE, see ewiki_auth() in README, and $ewiki_ring==0
-
-  The functions have following ring permission level equirements:
-     delete: ring<=1 moderators
-     rename: ring<=1 moderators
-     meta:   ring=0 admins
-     flags:  ring=0 admins, moderators may change just some flags
-
-  For styling purposes following CSS selectors could be used:
-    .wiki.control  .flags  {...}
-    .wiki.control  .rename  {...}
-    .wiki.control  .meta  {...}
-    .wiki.control  .delete  {...}
-*/
-
-
-#-- which flags moderators may change
-define("EWIKI_DB_F_MODERATORFLAGS",  0x0070 | 0x0004 | 0x0008);
-                             # == EWIKI_DB_F_ACCESS | EWIKI_DB_F_DISABLED | EWIKI_DB_F_HTML
-
-
-#-- glue
-$ewiki_plugins["action"]["control"] = "ewiki_action_control_page";
-$ewiki_config["action_links"]["view"]["control"] = "Page Control";
-
-
-#-- implementation
-function ewiki_action_control_page($id, &$data, $action) {
-   global $ewiki_ring, $ewiki_config, $ewiki_plugins;
-
-   $a_flagnames = array(
-      "_TEXT", "_BINARY", "_DISABLED", "_HTML", "_READONLY", "_WRITEABLE",
-      "_APPENDONLY", "_SYSTEM", "_PART", "_MINOR", "_HIDDEN", "_ARCHIVE",
-      "_UU12", "_UU13", "_UU14", "_UU15", "_UU16", "_EXEC", "_UU18", "_UU19",
-   );
-   
-
-   $o = ewiki_make_title($id, "control $id", 2);
-
-   #-- admin requ. ---------------------------------------------------------
-   if (!ewiki_auth($id,$data,$action, $ring=0, "_FORCE_LOGIN=1") || !isset($ewiki_ring) || ($ewiki_ring > 1)) {
-
-      if (is_array($data)) {
-         $data = "You'll need to be admin. See ewiki_auth() and _PROTECTED_MODE in the README.";
-      }
-      $o .= $data;
-     
-   }
-
-   #-- page flags ---------------------------------------------------------
-   elseif (@$_REQUEST["pgc_setflags"]) {
-
-      #-- setted new flags
-      $new_f = 0;
-      foreach ($_REQUEST["sflag"] as $n=>$b) {
-         if ($b) {
-            $new_f |= (1 << $n);
-         }
-      }
-      #-- administrator may change all flags
-      if ($ewiki_ring==0) {
-         $data["flags"] = $new_f;
-      }
-      #-- moderators only a few
-      else {
-         $data["flags"] = ($data["flags"] & ( ~ EWIKI_DB_F_MODERATORFLAGS))
-                        | ($new_f & EWIKI_DB_F_MODERATORFLAGS);
-      }
-      $data["lastmodified"] = time();
-      $data["version"]++;
-
-      if (ewiki_db::WRITE($data)) {
-         $o .= "Page flags were updated correctly.";
-         ewiki_log("page flags of '$id' were set to $data[flags]");
-      }
-      else {
-         $o .= "A database error occoured.";
-      }
-   }
-
-   #-- renaming -----------------------------------------------------------
-   elseif  (@$_REQUEST["pgc_rename"] && strlen($new_id = $_REQUEST["mv_to"])) {
-
-      $old_id = $id;
-      $report = "";
-
-      $preg_id = "/". addcslashes($old_id, ".+*?|/\\()$[]^#") ."/"
-                 . ($_REQUEST["mv_cr1"] ? "i" : "");
-
-      #-- check if new name does not already exist in database
-      $exists = ewiki_db::GET($new_id);
-      if ($exists || !empty($exists)) {
-         return($o .= "Cannot overwrite an existing database entry.");
-      }
-
-      #-- copy from old name to new name
-      $max_ver = $data["version"];
-      $data = array();
-      for ($v=1; $v<=$max_ver; $v++) {
-
-         $row = ewiki_db::GET($old_id, $v);
-         $row["id"] = $new_id;
-         $row["lastmodified"] = time();
-         $row["content"] = preg_replace($preg_id, $new_id, $row["content"]);
-         ewiki_scan_wikiwords($row["content"], $links, "_STRIP_EMAIL=1");
-         $row["refs"] = "\n\n".implode("\n", array_keys($links))."\n\n";
-         $row["author"] = ewiki_author("control/");
-
-         if (!ewiki_db::WRITE($row)) {
-            $report .= "error while copying version $v,<br />\n";
-              
-         }
-      }
-
-      #-- proceed if previous actions error_free
-      if (empty($report)) {
-
-         #-- deleting old versions
-         for ($v=1; $v<=$max_ver; $v++) {
-            ewiki_db::DELETE($old_id, $v);
-         }
-
-         #-- adjust links/references to old page name
-         if ($_REQUEST["mv_cr0"]) {
-
-            $result = ewiki_db::SEARCH("refs", $old_id);
-            while ($result && ($row = $result->get())) {
-
-               $row = ewiki_db::GET($row["id"]);
-
-               if (preg_match($preg_id, $row["content"], $uu)) {
-
-                  $row["content"] = preg_replace($preg_id, $new_id, $row["content"]);
-                  $row["lastmodified"] = time();
-                  $row["version"]++;
-                  ewiki_scan_wikiwords($row["content"], $links, "_STRIP_EMAIL=1");
-                  $row["refs"] = "\n\n".implode("\n", array_keys($links))."\n\n";
-                  $row["author"] = ewiki_author("control/");
-
-                  if (!ewiki_db::WRITE($row)) {
-                     $report .= "could not update references in ".$row['id'].",<br />\n";
-                  } 
-                  else {
-                     $report .= "updated references in ".$row['id'].",<br />\n";
-                  }
-               }
-
-            }
-
-         }
-
-         $o .= "This page was correctly renamed from '$old_id' to '$new_id'.<br /><br />\n$report";
-         ewiki_log("page renamed from '$old_id' to '$new_id'", 2);
-
-      }
-      else {
-
-         $o .= "Some problems occoured while processing your request, therefor the old page still exists:<br />\n" . $report;
-      }
-
-   }
-
-   #-- meta data -----------------------------------------------------------
-   elseif (@$_REQUEST["pgc_setmeta"] && ($ewiki_ring==0) && ($set = explode("\n", $_REQUEST["pgc_meta"]))) {
-
-      $new_meta = array();
-      foreach ($set as $line) {
-         if (($line=trim($line)) && ($key=trim(strtok($line, ":"))) && ($value=trim(strtok("\000"))) ) {
-            $new_meta[$key] = $value;
-         }
-      }
-
-      $data["meta"] = $new_meta;
-      $data["lastmodified"] = time();
-      $data["version"]++;
-
-      if (ewiki_db::WRITE($data)) {
-         $o .= "The {meta} field was updated.";
-      }
-      else {
-         $o .= "A database error occoured.";
-      }
-   }
-
-   #-- deletion -----------------------------------------------------------
-   elseif (@$_REQUEST["pgc_purge"] && $_REQUEST["pgc_purge1"]) {
-
-      $loop = 3;
-      do {
-         $verZ = $data["version"];
-         while ($verZ > 0) {
-            ewiki_db::DELETE($id, $verZ);
-            $verZ--;
-         }
-      } while ($loop-- && ($data = ewiki_db::GET($id)));
-
-      if (empty($data)) {
-         $o .= "Page completely removed from database.";
-         ewiki_log("page '$id' was deleted from db", 2);
-      }
-      else {
-         $o .= "Page still here.";
-      }
-   }
-
-   #-- function list -------------------------------------------------------
-   else {
-      $o .= '<form action="'.ewiki_script("$action",$id).'" method="POST" enctype="text/html">'
-          . '<input type="hidden" name="id" value="'."$action/$id".'">';
-
-      #-- flags
-      $o .= '<div class="flags">';
-      $o .= "<h4>page flags</h4>\n";
-      foreach ($a_flagnames as $n=>$s) {
-         $disabled = (($ewiki_ring==1) && !((1<<$n) & EWIKI_DB_F_MODERATORFLAGS)) ? ' disabled="disabled"' : "";
-         $checked = $data["flags"] & (1<<$n) ? ' checked="checked"': "";
-         $a[$n] = '<input type="checkbox" name="sflag['.$n.']" value="1"'.
-               $checked . $disabled .'> ' . $s;
-      }
-      $o .= '<table border="0" class="list">' . "\n";
-      for ($n=0; $n<count($a_flagnames); $n++) {
-         $y = $n >> 2;
-         $x = $n & 0x03;
-         if ($x==0) $o .= "<tr>";
-         $o .= "<td>" . $a[4*$y + $x] . "</td>";
-         if ($x==3) $o .= "</tr>\n";
-      }
-      $o .= '</table>';
-      $o .= '<input type="submit" name="pgc_setflags" value="chmod">';
-      $o .= "\n<br /><br /><hr></div>\n"; 
-
-      #-- rename
-      $o .= '<div class="rename">';
-      $o .= "<h4>rename page</h4>\n";
-      $o .= 'new page name: <input type="text" size="30" name="mv_to" value="'.htmlentities($id).'">'
-          . '<br />'
-          . '<input type="checkbox" name="mv_cr0" value="1" checked> also try to change all references from other pages accordingly '
-          . '(<input type="checkbox" name="mv_cr1" value="1" checked> and act case-insensitive when doing so) ';
-      $o .= '<br /><input type="submit" name="pgc_rename" value="mv">';
-      $o .= "\n<br /><br /><hr></div>\n"; 
-
-      #-- meta
-      if (isset($ewiki_ring) && ($ewiki_ring==0)) {
-      $o .= '<div class="meta">';
-      $o .= "<h4>meta data</h4>\n";
-      $o .= '<textarea cols="40" rows="6" name="pgc_meta">';
-      if (($uu = @$data["meta"]) && is_array($uu))
-      foreach ($uu as $key=>$value) {
-         if (is_array($value)) { $value = serialize($array); }
-         $o .= htmlentities($key.": ".trim($value)) . "\n";
-      }
-      $o .= "</textarea>\n";
-      $o .= '<br /><input type="submit" name="pgc_setmeta" value="set">';
-      $o .= "\n<br /><br /><hr></div>\n"; 
-      }
-
-      #-- delete
-      $o .= '<div class="delete">';
-      $o .= "<h4>delete page</h4>\n";
-      $o .= '<input type="checkbox" name="pgc_purge1" value="1"> I\'m sure';
-      $o .= '<br /><input type="submit" name="pgc_purge" value="rm">';
-      $o .= "\n<br /><br /><hr></div>\n"; 
-
-      $o .= '</form>';
-   }
-
-   return($o);
-}
-
-
-
-?>
\ No newline at end of file