/[docman]/docman.php
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /docman.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.12 by dpavlin, Fri Aug 4 11:53:47 2000 UTC revision 1.22 by dpavlin, Wed Sep 13 09:59:16 2000 UTC
# Line 66  TODO: Line 66  TODO:
66          mixed file/directory output (add type to each entry,          mixed file/directory output (add type to each entry,
67                  real support for links)                  real support for links)
68          retrieve old versions of files (overwritten)          retrieve old versions of files (overwritten)
69            show last lock date
70            
71  */  */
72    
73  //////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////
# Line 106  TODO: Line 108  TODO:
108                          if ($user[0] == $GLOBALS["PHP_AUTH_USER"]) {                          if ($user[0] == $GLOBALS["PHP_AUTH_USER"]) {
109                                  $gblUserName=$user[1];                                  $gblUserName=$user[1];
110                                  $gblPw=$user[2];                                  $gblPw=$user[2];
111                                    $gblEmail=$user[3];
112                                  continue ;                                  continue ;
113                          }                          }
114                  }                  }
# Line 118  TODO: Line 121  TODO:
121          $gblDateFmt="Y-m-d";          $gblDateFmt="Y-m-d";
122          $gblTimeFmt="H:i:s";          $gblTimeFmt="H:i:s";
123    
124  // Number of backup files to keep          // Number of backup files to keep
125          $gblNumBackups=5;          $gblNumBackups=3;
126    
127            // show red star if newer than ... days
128            $gblModDays=1;
129    
130          // choose GifIcon below unless you have the M$          // choose GifIcon below unless you have the M$
131          // WingDings font installed on your system          // WingDings font installed on your system
# Line 293  echo($fstr) ; ?></TEXTAREA> Line 299  echo($fstr) ; ?></TEXTAREA>
299    
300  <?php  <?php
301          }          }
302          if ( !$file_lock && strstr(join(" ",$gblImages),$ext) ) {            if ( !$file_lock && $ext!="" && strstr(join(' ',$gblImages),$ext) ) {  
303                  $info  = getimagesize($fsPath) ;                  $info  = getimagesize($fsPath) ;
304                  $tstr = "<IMG SRC=\"".urlpath($relPath)."\" BORDER=0 " ;                  $tstr = "<IMG SRC=\"".urlpath($relPath)."\" BORDER=0 " ;
305                  $tstr .= $info[3] . " ALT=\"" . $fn . " - " ;                  $tstr .= $info[3] . " ALT=\"" . $fn . " - " ;
# Line 361  echo($fstr) ; ?></TEXTAREA> Line 367  echo($fstr) ; ?></TEXTAREA>
367  </FORM>  </FORM>
368    
369  <?php  <?php
370            
371          $name=basename("$fsDir/$fn");          $name=basename("$fsDir/$fn");
372          $logname=dirname("$fsDir/$fn")."/.log/$name";          $logname=dirname("$fsDir/$fn")."/.log/$name";
373          $bakdir=dirname("$fsDir/$fn")."/.bak";          $bakdir=dirname("$fsDir/$fn")."/.bak";
# Line 640  function GifIcon($txt) { Line 646  function GifIcon($txt) {
646    
647  function Navigate($fsRoot,$relDir) {  function Navigate($fsRoot,$relDir) {
648    
649          global $gblEditable, $gblIcon ;          global $gblEditable, $gblIcon, $gblModDays ;
650    
651          $self     = $GLOBALS["PHP_SELF"] ;          $self     = $GLOBALS["PHP_SELF"] ;
652          if (isset($GLOBALS["HTTPS"]) && $GLOBALS["HTTPS"] == "on") {          if (isset($GLOBALS["HTTPS"]) && $GLOBALS["HTTPS"] == "on") {
# Line 689  function Navigate($fsRoot,$relDir) { Line 695  function Navigate($fsRoot,$relDir) {
695                  $text .= ", <a href=$self?D=".urlencode($relDir)."&show_deleted=1>undelete</a>";                  $text .= ", <a href=$self?D=".urlencode($relDir)."&show_deleted=1>undelete</a>";
696          }          }
697          $text .= " or revise files on this web site." ;          $text .= " or revise files on this web site." ;
698            $text .= "<br>Examine list of files <a href=\"$self?A=Ch1\">changed in last day</a> or <a href=\"$self?A=Ch\">all changes</a>.";
699          StartHTML("(Navigate)",$text) ;          StartHTML("(Navigate)",$text) ;
700    
701          echo "<TABLE BORDER=0 CELLPADDING=2          echo "<TABLE BORDER=0 CELLPADDING=2
# Line 755  function Navigate($fsRoot,$relDir) { Line 762  function Navigate($fsRoot,$relDir) {
762    
763                  $info_url=$self."?A=E&F=".urlencode($file)."&D=".urlencode($relDir);                  $info_url=$self."?A=E&F=".urlencode($file)."&D=".urlencode($relDir);
764    
765                  if ( ($mod + 30*86400) > time() ) {                  if ( ($mod + $gblModDays*86400) > time() ) {
766                          $a  = "<SPAN CLASS=RED TITLE=\"Newer" ;                          $a  = "<SPAN CLASS=RED TITLE=\"Newer" ;
767                          $a .= " than 30 days\"> * </SPAN>" ;                          $a .= " than $gblModDays days\"> * </SPAN>" ;
768                  }                  }
769    
770                  $file_lock=CheckLock($path);                  $file_lock=CheckLock($path);
# Line 843  function Navigate($fsRoot,$relDir) { Line 850  function Navigate($fsRoot,$relDir) {
850  <TR><TD></TD><TD COLSPAN=5><HR></TD></TR>  <TR><TD></TD><TD COLSPAN=5><HR></TD></TR>
851    
852  <TR><TD></TD><TD COLSPAN=5>  <TR><TD></TD><TD COLSPAN=5>
853  To just view file without editing, select it's filename (<b>don't edit files which are opened this way!</b>)<br>  <?
854  To <b>edit</b> file select <?= $gblIcon("checkout") ?> to check-out  if (file_exists(".info.inc")) {
855  and edit it locally. After editing is over, select filename or <?= $gblIcon("checkin") ?> to check-in (update copy of file on server).<br>          include(".info.inc");
856  <by>If you select icon left from filename, you will get detailed information  }
857  about file, as well as delete, rename and annotation options.  ?>
858  </TD></TR>  </TD></TR>
859    
860  <TR><TD></TD><TD COLSPAN=5><HR></TD></TR>  <TR><TD></TD><TD COLSPAN=5><HR></TD></TR>
# Line 969  the source<BR>of this file.<BR><BR> Line 976  the source<BR>of this file.<BR><BR>
976    
977  //////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////
978    
979  function Logit($target,$msg) {  function LogIt($target,$msg) {
980    
981          $dir=dirname($target);          $dir=dirname($target);
982          if (! file_exists($dir."/.log")) {          if (! file_exists($dir."/.log")) {
# Line 989  function Logit($target,$msg) { Line 996  function Logit($target,$msg) {
996    
997  function WriteNote($target,$msg) {  function WriteNote($target,$msg) {
998    
999            $target=stripSlashes($target);
1000          $dir=dirname($target);          $dir=dirname($target);
1001          if (! file_exists($dir."/.note")) {          if (! file_exists($dir."/.note")) {
1002                  mkdir($dir."/.note",0700);                  mkdir($dir."/.note",0700);
# Line 1005  function WriteNote($target,$msg) { Line 1013  function WriteNote($target,$msg) {
1013    
1014  function ReadNote($target) {  function ReadNote($target) {
1015    
1016            $target=stripSlashes($target);
1017          $dir=dirname($target);          $dir=dirname($target);
1018          $file=basename($target);          $file=basename($target);
1019          $msg="";          $msg="";
# Line 1021  function ReadNote($target) { Line 1030  function ReadNote($target) {
1030    
1031  function MoveTo($source,$folder) {  function MoveTo($source,$folder) {
1032    
1033            $source=stripSlashes($source);
1034          $file=basename($source);          $file=basename($source);
1035          if (! file_exists($folder)) {          if (! file_exists($folder)) {
1036                  mkdir($folder,0700);                  mkdir($folder,0700);
# Line 1034  function MoveTo($source,$folder) { Line 1044  function MoveTo($source,$folder) {
1044    
1045  function Lock($target) {  function Lock($target) {
1046    
1047            $target=stripSlashes($target);
1048          $dir=dirname($target);          $dir=dirname($target);
1049          if (! file_exists($dir."/.lock")) {          if (! file_exists($dir."/.lock")) {
1050                  mkdir($dir."/.lock",0700);                  mkdir($dir."/.lock",0700);
# Line 1054  function Lock($target) { Line 1065  function Lock($target) {
1065    
1066  function CheckLock($target) {  function CheckLock($target) {
1067    
1068            $target=stripSlashes($target);
1069          $dir=dirname($target);          $dir=dirname($target);
1070          $file=basename($target);          $file=basename($target);
1071          $msg=0;          $msg=0;
# Line 1068  function CheckLock($target) { Line 1080  function CheckLock($target) {
1080    
1081  function Unlock($target) {  function Unlock($target) {
1082    
1083            $target=stripSlashes($target);
1084          $dir=dirname($target);          $dir=dirname($target);
1085          $file=basename($target);          $file=basename($target);
1086          if (file_exists($dir."/.lock/$file")) {          if (file_exists($dir."/.lock/$file")) {
# Line 1098  function safe_rename($from,$to) { Line 1111  function safe_rename($from,$to) {
1111    
1112  //////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////
1113    
1114    // recursivly delete directory
1115    
1116    function rrmdir($dir) {
1117            $handle=opendir($dir);
1118            while ($file = readdir($handle)) {
1119                    if ($file != "." && $file != "..") {
1120                            if (is_dir("$dir/$file"))
1121                                    rrmdir("$dir/$file");
1122                            else
1123                                    if (! @unlink("$dir/$file")) return(0);
1124                    }
1125            }
1126            closedir($handle);
1127            return @rmdir($dir);
1128    }
1129    
1130    //////////////////////////////////////////////////////////////////
1131    
1132    function ChangeLog($target,$msg) {
1133    
1134            global $gblFsRoot;
1135            $log=fopen("$gblFsRoot/.changelog","a+");
1136            if (substr($target,0,strlen($gblFsRoot)) == $gblFsRoot)
1137                    $target=substr($target,strlen($gblFsRoot),strlen($target)-strlen($gblFsRoot));
1138            fputs($log,time()."\t$target\t$GLOBALS[gblUserName]\t$msg\n");
1139            fclose($log);
1140    
1141    }
1142    
1143    function DisplayChangeLog($day) {
1144    
1145            global $gblFsRoot;
1146            if (!file_exists("$gblFsRoot/.changelog")) return;
1147            $log=fopen("$gblFsRoot/.changelog","r");
1148            $logarr = array();
1149            while($line = fgetcsv($log,255,"\t")) {
1150                    if ($day!=1 || ($day==1 && (time()-$line[0] < 24*60))) {
1151                            array_unshift($logarr,array($line[0],$line[1],$line[2],$line[3]));
1152                    }
1153            }
1154            fclose($log);
1155            $cl1=" class=lst"; $cl2="";
1156            print "<table border=0 width=100%>\n";
1157            while ($e = array_shift($logarr)) {
1158                    $cl=$cl1; $cl1=$cl2; $cl2=$cl;
1159                    $date = date("$GLOBALS[gblDateFmt]", $e[0]);
1160                    $time = date("$GLOBALS[gblTimeFmt]", $e[0]);
1161                    $dir = dirname($e[1]);
1162                    $file = basename($e[1]);
1163                    print "<tr><td$cl>$date</td><td$cl>$time</td><td$cl><a href=\"$GLOBALS[PHP_SELF]?D=".urlencode($dir)."\">$dir</a>/$file</td><td$cl>$e[2]</td><td$cl>$e[3]</td></tr>\n";
1164            }
1165            print "</table>";
1166            print "<p>".GifIcon(up)." Back to <a href=$GLOBALS[PHP_SELF]>front page</a>.</p>";
1167    }
1168    
1169    //////////////////////////////////////////////////////////////////
1170    
1171  // MAIN PROGRAM  // MAIN PROGRAM
1172  // ============  // ============
1173  // query parameters: capital letters  // query parameters: capital letters
# Line 1155  function safe_rename($from,$to) { Line 1225  function safe_rename($from,$to) {
1225    
1226          $fsDir = $gblFsRoot . $relDir ; // current directory          $fsDir = $gblFsRoot . $relDir ; // current directory
1227          if ( !is_dir($fsDir) ) Error("Dir not found",$relDir) ;          if ( !is_dir($fsDir) ) Error("Dir not found",$relDir) ;
1228            
1229            $FN=stripSlashes($FN);
1230    
1231          switch ($POSTACTION) {          switch ($POSTACTION) {
1232          case "UPLOAD" :          case "UPLOAD" :
1233                  if (!is_writeable($fsDir)) Error("Write denied",$relDir) ;                  if (!is_writeable($fsDir)) Error("Write denied",$relDir) ;
# Line 1191  function safe_rename($from,$to) { Line 1263  function safe_rename($from,$to) {
1263                  if (isset($FILENAME)) {                  if (isset($FILENAME)) {
1264                          Unlock($target);                          Unlock($target);
1265                  }                  }
1266                    ChangeLog($target,"updated");
1267                  break ;                  break ;
1268    
1269          case "SAVE" :          case "SAVE" :
1270                  $path = $gblFsRoot . escapeshellcmd($RELPATH) ;                  $path = $gblFsRoot . $RELPATH ;
1271                    $path=stripSlashes($path);
1272                  $writable = is_writeable($path) ;                  $writable = is_writeable($path) ;
1273                  $legaldir = is_writeable(dirname($path)) ;                  $legaldir = is_writeable(dirname($path)) ;
1274                  $exists   = (file_exists($path)) ? 1 : 0 ;                  $exists   = (file_exists($path)) ? 1 : 0 ;
# Line 1202  function safe_rename($from,$to) { Line 1276  function safe_rename($from,$to) {
1276                  if (!($writable || (!$exists && $legaldir)))                  if (!($writable || (!$exists && $legaldir)))
1277                          Error("Write denied",$RELPATH) ;                          Error("Write denied",$RELPATH) ;
1278                  $fh = fopen($path, "w") ;                  $fh = fopen($path, "w") ;
1279                    $FILEDATA=stripSlashes($FILEDATA);
1280                  fwrite($fh,$FILEDATA) ;                  fwrite($fh,$FILEDATA) ;
1281                  fclose($fh) ;                  fclose($fh) ;
1282                  clearstatcache() ;                  clearstatcache() ;
1283                  Logit($path,"saved changes");                  Logit($path,"saved changes");
1284                    ChangeLog($path,"saved changes");
1285                  break ;                  break ;
1286    
1287          case "CREATE" :          case "CREATE" :
# Line 1236  function safe_rename($from,$to) { Line 1312  function safe_rename($from,$to) {
1312                          }                          }
1313                          $tstr = "$PHP_SELF?A=E&D=".urlencode($relDir)."&F=".urlencode($FN) ;                          $tstr = "$PHP_SELF?A=E&D=".urlencode($relDir)."&F=".urlencode($FN) ;
1314                          header("Location: " . $tstr) ;                          header("Location: " . $tstr) ;
1315                            ChangeLog($target,"created");
1316                          exit ;                          exit ;
1317                  }                  }
1318                  break ;                  break ;
# Line 1268  function safe_rename($from,$to) { Line 1345  function safe_rename($from,$to) {
1345                          }                          }
1346                  }                  }
1347                  else {  // delete directory                  else {  // delete directory
1348                    if ( ! @rmdir($fsDir) ) {                    if ( ! @rrmdir($fsDir) ) {
1349                      Error("Rmdir failed", $tstr . $fsDir) ;                      Error("Rmdir failed", $tstr . $fsDir) ;
1350                    }                    }
1351                    else {                    else {
# Line 1333  function safe_rename($from,$to) { Line 1410  function safe_rename($from,$to) {
1410          // $A=Ci : checkin file $D/$F          // $A=Ci : checkin file $D/$F
1411          // $A=V : view file (do nothing except log)          // $A=V : view file (do nothing except log)
1412          // default : display directory $D          // default : display directory $D
1413            
1414          switch ($A) {          switch ($A) {
1415          case "U" :          case "U" :
1416                  // upload to $relDir                  // upload to $relDir
# Line 1346  function safe_rename($from,$to) { Line 1423  function safe_rename($from,$to) {
1423                  EndHTML() ;                  EndHTML() ;
1424                  exit ;                  exit ;
1425          case "E" :          case "E" :
1426                    $F=stripSlashes($F);
1427                  // detail of $relDir/$F                  // detail of $relDir/$F
1428                  if (is_file("$gblFsRoot/$relDir/$F")) DetailPage($gblFsRoot, $relDir, $F) ;                  if (is_file("$gblFsRoot/$relDir/$F")) DetailPage($gblFsRoot, $relDir, $F) ;
1429                  exit ;                  exit ;
1430          case "C" :          case "C" :
1431                    $F=stripSlashes($F);
1432                  // listing of $relDir/$F                  // listing of $relDir/$F
1433                  DisplayCode($gblFsRoot, $relDir, $F) ;                  DisplayCode($gblFsRoot, $relDir, $F) ;
1434                  exit ;                  exit ;
# Line 1360  function safe_rename($from,$to) { Line 1439  function safe_rename($from,$to) {
1439                  Header("Location: ".urlpath("$relDir/$F"));                  Header("Location: ".urlpath("$relDir/$F"));
1440                  exit;                  exit;
1441          case "Ci" :          case "Ci" :
1442                    $F=stripSlashes($F);
1443                  // upload && update to $relDir                  // upload && update to $relDir
1444                  if (!is_writeable($gblFsRoot . $relDir))                  if (!is_writeable($gblFsRoot . $relDir))
1445                          Error("Write access denied",$relDir) ;                          Error("Write access denied",$relDir) ;
# Line 1375  function safe_rename($from,$to) { Line 1455  function safe_rename($from,$to) {
1455                  header("Content-Disposition: attachment; filename=$F" );                  header("Content-Disposition: attachment; filename=$F" );
1456                  Header("Location: ".urlpath("$relDir/$F"));                  Header("Location: ".urlpath("$relDir/$F"));
1457                  exit;                  exit;
1458            case "Ch" :
1459                    StartHTML("(File changes)","All changes chronologicaly...");
1460                    DisplayChangeLog(0);    // all
1461                    EndHTML() ;
1462                    exit;
1463            case "Ch1" :
1464                    StartHTML("(File changes)","Changes to files in last day...");
1465                    DisplayChangeLog(1);
1466                    EndHTML() ;
1467                    exit;
1468          }          }
1469    
1470          // default: display directory $relDir          // default: display directory $relDir

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.22

  ViewVC Help
Powered by ViewVC 1.1.26