root > rawview > dirview.php

dirview.php

application/x-php, 1974 bytes (load raw)
<?

function printFileRow( $n, $p, $f ) {
    global $repos, $hideforbidden;

    $lnk= htmlspecialchars($n);
   
    $isdir= is_dir($f);
    $islink= is_link($f);
    $isdot= ($n[0] == '.');
    $isdeny= !checkAccess($p, $f);
   
    if ( $isdeny && $hideforbidden ) return false;
   
    if ( !$isdeny ) {
        $u= rvURL($repos, $p);
       
        $lnk= "<a href='$u'>$lnk</a>";
       
        if (!$isdir) {
            $r= rvURL($repos, $p, 'raw=1');
            $lnk.= "<small class='rawlink'> <a href='$r'>^</a></small>";
        }
    }
   
    if ($isdir) $sz= 'DIR';
    else $sz= @filesize($f);
   
    if ($sz===NULL || $sz===false) $sz= 'n/a';
   
    @$date= filemtime($f);
   
    if ($date===NULL || $date===false) $date= 'n/a';
    else $date= date("Y-m-d h:i:s", $date);

    $cls= '';
    if ($isdir) $cls.= 'dirfile ';
    if ($isdot) $cls.= 'dotfile ';
    if ($isdeny) $cls.= 'denyfile ';
    if ($islink) $cls.= 'linkfile ';
    ?>   
    <tr class="<?= $cls ?>">
        <td class='filename'><?= $lnk ?></td>
        <td class='filesize'><?= $sz ?></td>
        <td class='filedate'><?= $date ?></td>
    </tr>
    <?
   
    return true;
}

function printFiles( $path, $dir, $glob, $dirs = NULL) {
    $ff= glob("$dir/$glob");
   
    foreach ($ff as $f) {
        $n= basename($f);
       
        if ($n=='.' || $n=='..') continue;
       
        $p= $path == '/' ? $n : $path.'/'.$n;
       
        if ($dirs !== NULL) {
            if (is_dir($f) != $dirs) continue;
        }
       
        printFileRow($n, $p, $f);
    }
}

?>

<table summary="files" class="files">
    <tr>
        <th>name</th>
        <th>size</th>
        <th>date</th>
    </tr>
   
    <?
   
    #TODO: sort

    printFiles( $path, $file, '.*', true); #dot dirs
    printFiles( $path, $file, '*', true)#dirs
   
    printFiles( $path, $file, '.*', false); #dot files
    printFiles( $path, $file, '*', false)#files
   
    ?>
</table>