Esempio n. 1
0
function ThumbShoeHandleDelete($pagename, $auth = 'delete')
{
    global $WikiLibDirs, $WikiDir, $LastModFile;
    $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
    if (!$page) {
        Abort("?cannot delete {$pagename}");
        return;
    }
    $deleted = false;
    foreach ((array) $WikiLibDirs as $dir) {
        if ($dir->exists($pagename) and $dir->iswrite) {
            $dir->delete($pagename);
            $deleted = true;
            break;
        }
    }
    if (!$deleted) {
        // look in the default WikiDir
        if ($WikiDir->exists($pagename)) {
            $WikiDir->delete($pagename);
            $deleted = true;
        }
    }
    if ($deleted && $LastModFile) {
        touch($LastModFile);
        fixperms($LastModFile);
    }
    Redirect($pagename);
    exit;
}
Esempio n. 2
0
function HandleGuestDelete($pagename, $auth)
{
    global $WikiDir, $LastModFile;
    $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
    if (!$page) {
        Abort("?cannot delete {$pagename}");
        return;
    }
    $WikiDir->delete($pagename);
    if ($LastModFile) {
        touch($LastModFile);
        fixperms($LastModFile);
    }
    Redirect(substr($pagename, 0, strlen($pagename) - 22));
}
Esempio n. 3
0
function HandlePostUpload($pagename, $auth = 'upload') {
  global $UploadVerifyFunction, $UploadFileFmt, $LastModFile, 
    $EnableUploadVersions, $Now;
  $page = RetrieveAuthPage($pagename, $auth, true, READPAGE_CURRENT);
  if (!$page) Abort("?cannot upload to $pagename");
  $uploadfile = $_FILES['uploadfile'];
  $upname = $_REQUEST['upname'];
  if ($upname=='') $upname=$uploadfile['name'];
  $upname = MakeUploadName($pagename,$upname);
  if (!function_exists($UploadVerifyFunction))
    Abort('?no UploadVerifyFunction available');
  $filepath = FmtPageName("$UploadFileFmt/$upname",$pagename);
  $result = $UploadVerifyFunction($pagename,$uploadfile,$filepath);
  if ($result=='') {
    $filedir = preg_replace('#/[^/]*$#','',$filepath);
    mkdirp($filedir);
    if (IsEnabled($EnableUploadVersions, 0))
      @rename($filepath, "$filepath,$Now");
    if (!move_uploaded_file($uploadfile['tmp_name'],$filepath))
      { Abort("?cannot move uploaded file to $filepath"); return; }
    fixperms($filepath,0444);
    if ($LastModFile) { touch($LastModFile); fixperms($LastModFile); }
    $result = "upresult=success";
  }
  Redirect($pagename,"{\$PageUrl}?action=upload&uprname=$upname&$result");
}
Esempio n. 4
0
function LinkIndexUpdate($pagelist)
{
    global $LinkIndexFile, $PCache, $LinkIndexTime;
    SDV($LinkIndexTime, 10);
    if (!$pagelist || !$LinkIndexFile) {
        return;
    }
    StopWatch('LinkIndexUpdate begin');
    $pagelist = (array) $pagelist;
    Lock(2);
    $ofp = fopen("{$LinkIndexFile},new", 'w');
    $timeout = time() + $LinkIndexTime;
    foreach ($pagelist as $n) {
        if (time() > $timeout) {
            break;
        }
        if (isset($PCache[$n]['targets'])) {
            $targets = $PCache[$n]['targets'];
        } else {
            $page = ReadPage($n, READPAGE_CURRENT);
            if (!$page) {
                continue;
            }
            $targets = @$page['targets'];
        }
        fputs($ofp, "{$n}={$targets}\n");
    }
    $ifp = @fopen($LinkIndexFile, 'r');
    if ($ifp) {
        while (!feof($ifp)) {
            $line = fgets($ifp, 4096);
            while (substr($line, -1, 1) != "\n" && !feof($ifp)) {
                $line .= fgets($ifp, 4096);
            }
            $i = strpos($line, '=');
            if ($i === false) {
                continue;
            }
            $n = substr($line, 0, $i);
            if (in_array($n, $pagelist)) {
                continue;
            }
            fputs($ofp, $line);
        }
        fclose($ifp);
    }
    fclose($ofp);
    if (file_exists($LinkIndexFile)) {
        unlink($LinkIndexFile);
    }
    rename("{$LinkIndexFile},new", $LinkIndexFile);
    fixperms($LinkIndexFile);
    StopWatch('LinkIndexUpdate end');
}
Esempio n. 5
0
 function write($pagename,$page) {
   global $Now, $Version;
   $page['name'] = $pagename;
   $page['time'] = $Now;
   $page['host'] = $_SERVER['REMOTE_ADDR'];
   $page['agent'] = @$_SERVER['HTTP_USER_AGENT'];
   $page['rev'] = @$page['rev']+1;
   unset($page['version']); unset($page['newline']);
   uksort($page, 'CmpPageAttr');
   $s = false;
   $pagefile = $this->pagefile($pagename);
   $dir = dirname($pagefile); mkdirp($dir);
   if (!file_exists("$dir/.htaccess") && $fp = @fopen("$dir/.htaccess", "w")) 
     { fwrite($fp, "Order Deny,Allow\nDeny from all\n"); fclose($fp); }
   if ($pagefile && ($fp=fopen("$pagefile,new","w"))) {
     $r0 = array('%', "\n", '<');
     $r1 = array('%25', '%0a', '%3c');
     $x = "version=$Version ordered=1 urlencoded=1\n";
     $s = true && fputs($fp, $x); $sz = strlen($x);
     foreach($page as $k=>$v) 
       if ($k > '' && $k{0} != '=') {
         $x = str_replace($r0, $r1, "$k=$v") . "\n";
         $s = $s && fputs($fp, $x); $sz += strlen($x);
       }
     $s = fclose($fp) && $s;
     $s = $s && (filesize("$pagefile,new") > $sz * 0.95);
     if (file_exists($pagefile)) $s = $s && unlink($pagefile);
     $s = $s && rename("$pagefile,new", $pagefile);
   }
   $s && fixperms($pagefile);
   if (!$s)
     Abort("Cannot write page to $pagename ($pagefile)...changes not saved");
   PCache($pagename, $page);
 }
Esempio n. 6
0
 function write($pagename, $page)
 {
     global $Now, $Version, $Newline;
     $page['name'] = $pagename;
     $page['time'] = $Now;
     $page['host'] = $_SERVER['REMOTE_ADDR'];
     $page['agent'] = $_SERVER['HTTP_USER_AGENT'];
     $page['rev'] = @$page['rev'] + 1;
     unset($page['version']);
     unset($page['newline']);
     $s = false;
     $pagefile = FmtPageName($this->dirfmt, $pagename);
     mkdirp(dirname($pagefile));
     if ($pagefile && ($fp = fopen("{$pagefile},new", "w"))) {
         $s = true && fputs($fp, "version={$Version}\nnewline={$Newline}\n");
         foreach ($page as $k => $v) {
             if ($k > '') {
                 $s = $s && fputs($fp, str_replace("\n", $Newline, "{$k}={$v}") . "\n");
             }
         }
         $s = fclose($fp) && $s;
         if (file_exists($pagefile)) {
             $s = $s && unlink($pagefile);
         }
         $s = $s && rename("{$pagefile},new", $pagefile);
     }
     $s && fixperms($pagefile);
     if (!$s) {
         Abort("Cannot write page to {$pagename} ({$pagefile})...changes not saved");
     }
 }
Esempio n. 7
0
 function write($pagename, $page)
 {
     global $Now, $Version, $Newline;
     $page['name'] = $pagename;
     $page['time'] = $Now;
     $page['host'] = $_SERVER['REMOTE_ADDR'];
     $page['agent'] = @$_SERVER['HTTP_USER_AGENT'];
     $page['rev'] = @$page['rev'] + 1;
     unset($page['version']);
     unset($page['newline']);
     uksort($page, 'CmpPageAttr');
     $s = false;
     $pagefile = $this->pagefile($pagename);
     $dir = dirname($pagefile);
     mkdirp($dir);
     if (!file_exists("{$dir}/.htaccess") && ($fp = @fopen("{$dir}/.htaccess", "w"))) {
         fwrite($fp, "Order Deny,Allow\nDeny from all\n");
         fclose($fp);
     }
     if ($pagefile && ($fp = fopen("{$pagefile},new", "w"))) {
         $s = true && fputs($fp, "version={$Version} ordered=1\nnewline={$Newline}\n");
         foreach ($page as $k => $v) {
             if ($k > '' && $k[0] != '=') {
                 $s = $s && fputs($fp, str_replace("\n", $Newline, "{$k}={$v}") . "\n");
             }
         }
         $s = fclose($fp) && $s;
         if (file_exists($pagefile)) {
             $s = $s && unlink($pagefile);
         }
         $s = $s && rename("{$pagefile},new", $pagefile);
     }
     $s && fixperms($pagefile);
     if (!$s) {
         Abort("Cannot write page to {$pagename} ({$pagefile})...changes not saved");
     }
     PCache($pagename, $page);
 }
Esempio n. 8
0
function PageIndexUpdate($pagelist = NULL, $dir = '') {
  global $EnableReadOnly, $PageIndexUpdateList, $PageIndexFile, 
    $PageIndexTime, $Now;
  if (IsEnabled($EnableReadOnly, 0)) return;
  $abort = ignore_user_abort(true);
  if ($dir) { flush(); chdir($dir); }
  if (is_null($pagelist)) 
    { $pagelist = (array)$PageIndexUpdateList; $PageIndexUpdateList = array(); }
  if (!$pagelist || !$PageIndexFile) return;
  SDV($PageIndexTime, 10);
  $c = count($pagelist); $updatecount = 0;
  StopWatch("PageIndexUpdate begin ($c pages to update)");
  $pagelist = (array)$pagelist;
  $timeout = time() + $PageIndexTime;
  $cmpfn = create_function('$a,$b', 'return strlen($b)-strlen($a);');
  Lock(2);
  $ofp = fopen("$PageIndexFile,new", 'w');
  foreach($pagelist as $pn) {
    if (@$updated[$pn]) continue;
    @$updated[$pn]++;
    if (time() > $timeout) continue;
    $page = ReadPage($pn, READPAGE_CURRENT);
    if ($page) {
      $targets = str_replace(',', ' ', @$page['targets']);
      $terms = PageIndexTerms(array(@$page['text'], $targets, $pn));
      usort($terms, $cmpfn);
      $x = '';
      foreach($terms as $t) { if (strpos($x, $t) === false) $x .= " $t"; }
      fputs($ofp, "$pn:$Now: $targets :$x\n");
    }
    $updatecount++;
  }
  $ifp = @fopen($PageIndexFile, 'r');
  if ($ifp) {
    while (!feof($ifp)) {
      $line = fgets($ifp, 4096);
      while (substr($line, -1, 1) != "\n" && !feof($ifp)) 
        $line .= fgets($ifp, 4096);
      $i = strpos($line, ':');
      if ($i === false) continue;
      $n = substr($line, 0, $i);
      if (@$updated[$n]) continue;
      fputs($ofp, $line);
    }
    fclose($ifp);
  }
  fclose($ofp);
  if (file_exists($PageIndexFile)) unlink($PageIndexFile); 
  rename("$PageIndexFile,new", $PageIndexFile);
  fixperms($PageIndexFile);
  StopWatch("PageIndexUpdate end ($updatecount updated)");
  ignore_user_abort($abort);
}
Esempio n. 9
0
function HandlePostUpload($pagename, $auth = 'upload') {
  global $UploadVerifyFunction, $UploadFileFmt, $LastModFile, 
    $EnableUploadVersions, $Now, $RecentUploadsFmt, $FmtV,
    $NotifyItemUploadFmt, $NotifyItemFmt, $IsUploadPosted,
    $UploadRedirectFunction;
  UploadAuth($pagename, $auth);
  $uploadfile = $_FILES['uploadfile'];
  $upname = $_REQUEST['upname'];
  if ($upname=='') $upname=$uploadfile['name'];
  $upname = MakeUploadName($pagename,$upname);
  if (!function_exists($UploadVerifyFunction))
    Abort('?no UploadVerifyFunction available');
  $filepath = FmtPageName("$UploadFileFmt/$upname",$pagename);
  $result = $UploadVerifyFunction($pagename,$uploadfile,$filepath);
  if ($result=='') {
    $filedir = preg_replace('#/[^/]*$#','',$filepath);
    mkdirp($filedir);
    if (IsEnabled($EnableUploadVersions, 0))
      @rename($filepath, "$filepath,$Now");
    if (!move_uploaded_file($uploadfile['tmp_name'],$filepath))
      { Abort("?cannot move uploaded file to $filepath"); return; }
    fixperms($filepath,0444);
    if ($LastModFile) { touch($LastModFile); fixperms($LastModFile); }
    $result = "upresult=success";
    $FmtV['$upname'] = $upname;
    $FmtV['$upsize'] = $uploadfile['size'];
    if (IsEnabled($RecentUploadsFmt, 0)) {
      PostRecentChanges($pagename, '', '', $RecentUploadsFmt);
    }
    if (IsEnabled($NotifyItemUploadFmt, 0) && function_exists('NotifyUpdate')) {
      $NotifyItemFmt = $NotifyItemUploadFmt;
      $IsUploadPosted = 1;
      register_shutdown_function('NotifyUpdate', $pagename, getcwd());
    }
  }
  SDV($UploadRedirectFunction, 'Redirect');
  $UploadRedirectFunction($pagename,"{\$PageUrl}?action=upload&uprname=$upname&$result");
}
Esempio n. 10
0
function HandlePostUpload($pagename)
{
    global $UploadVerifyFunction, $UploadFileFmt, $LastModFile;
    $page = RetrieveAuthPage($pagename, 'upload');
    if (!$page) {
        Abort("?cannot upload to {$pagename}");
    }
    $uploadfile = $_FILES['uploadfile'];
    $upname = $_REQUEST['upname'];
    if ($upname == '') {
        $upname = $uploadfile['name'];
    }
    $upname = MakeUploadName($pagename, $upname);
    if (!function_exists($UploadVerifyFunction)) {
        Abort('?no UploadVerifyFunction available');
    }
    $filepath = FmtPageName("{$UploadFileFmt}/{$upname}", $pagename);
    $result = $UploadVerifyFunction($pagename, $uploadfile, $filepath);
    if ($result == '') {
        $filedir = preg_replace('#/[^/]*$#', '', $filepath);
        mkdirp($filedir);
        if (!move_uploaded_file($uploadfile['tmp_name'], $filepath)) {
            Abort("?cannot move uploaded file to {$filepath}");
            return;
        }
        fixperms($filepath);
        if ($LastModFile) {
            touch($LastModFile);
            fixperms($LastModFile);
        }
        $result = "upresult=success";
    }
    Redirect($pagename, "\$PageUrl?action=upload&upname={$upname}&{$result}");
}
Esempio n. 11
0
function PageIndexUpdate($pagelist, $dir = '')
{
    global $PageIndexFile, $PageIndexTime, $Now;
    $abort = ignore_user_abort(true);
    if ($dir) {
        chdir($dir);
    }
    SDV($PageIndexTime, 10);
    if (!$pagelist || !$PageIndexFile) {
        return;
    }
    $c = count($pagelist);
    StopWatch("PageIndexUpdate begin ({$c} pages to update)");
    $pagelist = (array) $pagelist;
    $timeout = time() + $PageIndexTime;
    $cmpfn = create_function('$a,$b', 'return strlen($b)-strlen($a);');
    Lock(2);
    $ofp = fopen("{$PageIndexFile},new", 'w');
    foreach ($pagelist as $pn) {
        if (time() > $timeout) {
            break;
        }
        $page = ReadPage($pn, READPAGE_CURRENT);
        if ($page) {
            $targets = str_replace(',', ' ', @$page['targets']);
            $terms = PageIndexTerms(array(@$page['text'], $targets, $pn));
            usort($terms, $cmpfn);
            $x = '';
            foreach ($terms as $t) {
                if (strpos($x, $t) === false) {
                    $x .= " {$t}";
                }
            }
            fputs($ofp, "{$pn}:{$Now}: {$targets} :{$x}\n");
        }
        $updated[$pn]++;
    }
    $ifp = @fopen($PageIndexFile, 'r');
    if ($ifp) {
        while (!feof($ifp)) {
            $line = fgets($ifp, 4096);
            while (substr($line, -1, 1) != "\n" && !feof($ifp)) {
                $line .= fgets($ifp, 4096);
            }
            $i = strpos($line, ':');
            if ($i === false) {
                continue;
            }
            $n = substr($line, 0, $i);
            if (@$updated[$n]) {
                continue;
            }
            fputs($ofp, $line);
        }
        fclose($ifp);
    }
    fclose($ofp);
    if (file_exists($PageIndexFile)) {
        unlink($PageIndexFile);
    }
    rename("{$PageIndexFile},new", $PageIndexFile);
    fixperms($PageIndexFile);
    $c = count($updated);
    StopWatch("PageIndexUpdate end ({$c} updated)");
    ignore_user_abort($abort);
}
Esempio n. 12
0
/**
 * Handle the .draw file format
 */
function HandlePostDrawing_draw($pagename)
{
    global $UploadVerifyFunction, $UploadFileFmt, $LastModFile, $Now;
    global $RecentChangesFmt, $IsPagePosted, $EnableDrawingRecentChanges;
    $page = RetrieveAuthPage($pagename, 'upload');
    if (!$page) {
        Abort("?cannot upload to {$pagename}");
    }
    $uploadImage = $_FILES['uploadImage'];
    $uploadDrawing = $_FILES['uploadDrawing'];
    $uploadMap = $_FILES['uploadMap'];
    $drawingBaseTime = $_POST['drawingbasetime'];
    // The time the user began editing this drawing.
    $imageupname = $uploadImage['name'];
    $drawingupname = $uploadDrawing['name'];
    $mapupname = $uploadMap['name'];
    $imageupname = MakeUploadName($pagename, $imageupname);
    $drawingupname = MakeUploadName($pagename, $drawingupname);
    $mapupname = MakeUploadName($pagename, $mapupname);
    $imageFilePath = FmtPageName("{$UploadFileFmt}/{$imageupname}", $pagename);
    $drawingFilePath = FmtPageName("{$UploadFileFmt}/{$drawingupname}", $pagename);
    $mapFilePath = FmtPageName("{$UploadFileFmt}/{$mapupname}", $pagename);
    if (file_exists($drawingFilePath)) {
        // Only worth checking timestamps if a drawing actually currently exists!
        if (filemtime($drawingFilePath) > $drawingBaseTime) {
            // Assign a new timestamp to the client... hopefully this time they'll be ok...
            header("PmWikiDraw-DrawingChanged: {$Now}");
            exit;
        }
    }
    // If we've got to here then we can assume its safe to overwrite the current file
    // Note: we should do the history archival/recent changes stuff here.
    if ($EnableDrawingRecentChanges == true && isset($_POST['drawingname'])) {
        $imageModified = $_POST['drawingname'];
        $RecentChangesFmt = array('Main.AllRecentChanges' => '* [[$Group/$Name]]  Drawing - ' . $imageModified . ' modified . . . $CurrentTime', '$Group.RecentChanges' => '* [[$Group/$Name]]  Drawing - ' . $imageModified . ' modified . . . $CurrentTime');
        $IsPagePosted = true;
        $x = "";
        $y = "";
        PostRecentChanges($pagename, $x, $y);
        $IsPagePosted = false;
    }
    $filedir = preg_replace('#/[^/]*$#', '', $imageFilePath);
    mkdirp($filedir);
    if (!move_uploaded_file($uploadImage['tmp_name'], $imageFilePath)) {
        Abort("?cannot move uploaded image to {$imageFilePath}");
        return;
    }
    fixperms($imageFilePath, 0444);
    if ($LastModFile) {
        touch($LastModFile);
        fixperms($LastModFile);
    }
    $filedir = preg_replace('#/[^/]*$#', '', $drawingFilePath);
    mkdirp($filedir);
    if (!move_uploaded_file($uploadDrawing['tmp_name'], $drawingFilePath)) {
        Abort("?cannot move uploaded drawing to {$drawingFilePath}");
        return;
    }
    fixperms($drawingFilePath, 0444);
    if ($LastModFile) {
        touch($LastModFile);
        fixperms($LastModFile);
    }
    $filedir = preg_replace('#/[^/]*$#', '', $mapFilePath);
    mkdirp($filedir);
    if (!move_uploaded_file($uploadMap['tmp_name'], $mapFilePath)) {
        Abort("?cannot move uploaded map to {$mapFilePath}");
        return;
    }
    fixperms($mapFilePath, 0444);
    if ($LastModFile) {
        touch($LastModFile);
        fixperms($LastModFile);
    }
    // Sets the drawingBaseTime header for incremental save support.
    header("PmWikiDraw-DrawingBaseTime: " . filemtime($drawingFilePath));
    exit;
}
Esempio n. 13
0
 function write_cache_file($pagename, $imgdata)
 {
     global $Version;
     $cachefile = $this->cachefile($pagename);
     $dir = dirname($cachefile);
     mkdirp($dir);
     if (!file_exists("{$dir}/.htaccess") && ($fp = @fopen("{$dir}/.htaccess", 'w'))) {
         fwrite($fp, "Order Deny,Allow\nDeny from all\n");
         fclose($fp);
     }
     $st = false;
     if ($cachefile && ($fp = fopen("{$cachefile},new", 'w'))) {
         $st = true;
         if ($imgdata) {
             $st = $st && fwrite($fp, "[image]\n");
             foreach ($imgdata as $k => $v) {
                 $st = $st && fwrite($fp, "{$k} = " . '"' . $v . '"' . "\n");
             }
             $st = $st && fwrite($fp, "\n");
         }
         $st = fclose($fp) && $st;
         if (file_exists($cachefile)) {
             $st = $st && unlink($cachefile);
         }
         $st = $st && rename("{$cachefile},new", $cachefile);
     }
     if ($st) {
         fixperms($cachefile);
     } else {
         Abort("Cannot write page {$pagename} cache to ({$cachefile})...");
     }
 }
Esempio n. 14
0
 function write_xml($pagename, $page)
 {
     global $Now, $Version, $Charset;
     $page['name'] = $pagename;
     $page['time'] = $Now;
     $page['host'] = $_SERVER['REMOTE_ADDR'];
     $page['agent'] = @$_SERVER['HTTP_USER_AGENT'];
     $page['rev'] = @$page['rev'] + 1;
     unset($page['version']);
     unset($page['newline']);
     uksort($page, 'CmpPageAttr');
     $s = false;
     $pagefile = $this->pagefile($pagename);
     $dir = dirname($pagefile);
     mkdirp($dir);
     if ($pagefile && ($fp = fopen("{$pagefile},new", "w"))) {
         $x = "<?xml version=\"1.0\" encoding=\"{$Charset}\"?>\n<page xmlns=\"http://www.pmwiki.org/cookbook/xmlpage\" version=\"{$Version}\">\n";
         $s = true && fputs($fp, $x);
         $sz = strlen($x);
         foreach ($page as $k => $v) {
             if ($k > '' && $k[0] != '=') {
                 $v = htmlspecialchars($v, ENT_NOQUOTES, $Charset);
                 if (preg_match("/^([a-z]+)(?::(\\d+))(?::(\\d+):)?\$/", $k, $m)) {
                     $p = empty($m[3]) ? "" : " prev=\"{$m[3]}\"";
                     $x = "<{$m[1]} time=\"{$m[2]}\"{$p}>{$v}</{$m[1]}>\n";
                 } else {
                     $x = "<{$k}>{$v}</{$k}>\n";
                 }
                 $s = $s && fputs($fp, $x);
                 $sz += strlen($x);
             }
         }
         $x = "</page>\n";
         $s = $s && fputs($fp, $x);
         $sz += strlen($x);
         $s = fclose($fp) && $s;
         $s = $s && filesize("{$pagefile},new") > $sz * 0.95;
         if (file_exists($pagefile)) {
             $s = $s && unlink($pagefile);
         }
         $s = $s && rename("{$pagefile},new", $pagefile);
     }
     $s && fixperms($pagefile);
     if (!$s) {
         Abort("Cannot write page to {$pagename} ({$pagefile})...changes not saved");
     }
     PCache($pagename, $page);
 }
function bi_HandleDelete($src, $auth = 'comment-edit')
{
    #action=bi_del
    global $WikiDir, $LastModFile;
    $result = array('msg' => XL('Unable to perform delete operation.'), 'result' => 'error');
    $entrytype = PageTextVar($src, 'entrytype');
    if (($entrytype == 'comment' || $entrytype == 'blog') && (bi_Auth(($entrytype == 'comment' ? 'comment-edit' : 'blog-edit') . ' ' . $src) && RetrieveAuthPage($src, 'read', false, READPAGE_CURRENT))) {
        $WikiDir->delete($src);
        if ($LastModFile) {
            touch($LastModFile);
            fixperms($LastModFile);
        }
        $result = array('msg' => XL('Delete successful.'), 'result' => 'success');
    }
    bi_Redirect(bi_Clean('mode', $_GET['bi_Mode']), $result);
}
Esempio n. 16
0
function HandlePostUpload($pagename, $auth = 'upload')
{
    global $UploadVerifyFunction, $UploadFileFmt, $LastModFile, $EnableUploadVersions, $Now, $RecentUploadsFmt, $FmtV;
    UploadAuth($pagename, $auth);
    $uploadfile = $_FILES['uploadfile'];
    $upname = $_REQUEST['upname'];
    if ($upname == '') {
        $upname = $uploadfile['name'];
    }
    $upname = MakeUploadName($pagename, $upname);
    if (!function_exists($UploadVerifyFunction)) {
        Abort('?no UploadVerifyFunction available');
    }
    $filepath = FmtPageName("{$UploadFileFmt}/{$upname}", $pagename);
    $result = $UploadVerifyFunction($pagename, $uploadfile, $filepath);
    if ($result == '') {
        $filedir = preg_replace('#/[^/]*$#', '', $filepath);
        mkdirp($filedir);
        if (IsEnabled($EnableUploadVersions, 0)) {
            @rename($filepath, "{$filepath},{$Now}");
        }
        if (!move_uploaded_file($uploadfile['tmp_name'], $filepath)) {
            Abort("?cannot move uploaded file to {$filepath}");
            return;
        }
        fixperms($filepath, 0444);
        if ($LastModFile) {
            touch($LastModFile);
            fixperms($LastModFile);
        }
        $result = "upresult=success";
        if (IsEnabled($RecentUploadsFmt, 0)) {
            $FmtV['$upname'] = $upname;
            $FmtV['$upsize'] = $uploadfile['size'];
            PostRecentChanges($pagename, '', '', $RecentUploadsFmt);
        }
    }
    Redirect($pagename, "{\$PageUrl}?action=upload&uprname={$upname}&{$result}");
}