193 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
require 'header.php';
 | 
						|
 | 
						|
require_login();
 | 
						|
 | 
						|
if ( isset($_REQUEST['sortorder']) ) {
 | 
						|
   if ( ($_REQUEST['sortorder'] == SORTBYNAME) || ($_REQUEST['sortorder'] == SORTBYDATE) ) {
 | 
						|
      $_SESSION['sortorder'] = $_REQUEST['sortorder'];
 | 
						|
   }
 | 
						|
}
 | 
						|
 | 
						|
$validext = array('cbr', 'cbz');
 | 
						|
 | 
						|
if ( isset($_REQUEST['newpath']) ) {
 | 
						|
   $newpath = makepathsafe($_REQUEST['newpath']);
 | 
						|
   if ( is_dir(COMICSDIR . $newpath) ) {
 | 
						|
      $_SESSION['compath'] = $newpath;
 | 
						|
   } else {
 | 
						|
      $_SESSION['compath'] = "/";
 | 
						|
   }
 | 
						|
}
 | 
						|
 | 
						|
$compath = $_SESSION['compath'];
 | 
						|
 | 
						|
$fullcompath = COMICSDIR . $compath;
 | 
						|
$header = basename($compath);
 | 
						|
if ( $header == "" ) { $header = "Comics"; }
 | 
						|
 | 
						|
$fltime = microtime_float();
 | 
						|
$folders = array();
 | 
						|
$files = array();
 | 
						|
if ( $fh = opendir($fullcompath) ) {
 | 
						|
   while ( false !== ($entry = readdir($fh)) ) {
 | 
						|
      $mtime = filemtime($fullcompath . "/" . $entry);
 | 
						|
      if ( ($entry != ".") && ($entry != "..") && is_dir($fullcompath . "/" . $entry) ) {
 | 
						|
         $folders[$mtime] = $entry;
 | 
						|
      }
 | 
						|
      if ( is_file($fullcompath . "/" . $entry)
 | 
						|
           && in_array(substr($entry, -3), $validext) ) {
 | 
						|
         $files[] = $entry;
 | 
						|
      }
 | 
						|
   }
 | 
						|
   closedir($fh);
 | 
						|
   if ( $_SESSION['sortorder'] == SORTBYNAME ) {
 | 
						|
      natsort($folders);
 | 
						|
   } else {
 | 
						|
      ksort($folders);
 | 
						|
      $folders = array_reverse($folders);
 | 
						|
   }
 | 
						|
   sort($files);
 | 
						|
}
 | 
						|
$items = array_merge($folders, $files);
 | 
						|
$fltime = microtime_float() - $fltime;
 | 
						|
 | 
						|
$updir = dirname($compath);
 | 
						|
$updirlink = urlencode($updir);
 | 
						|
 | 
						|
// build up a list of comics and issues which have been
 | 
						|
$query = "SELECT comic, issue FROM pagetracker WHERE username=:username";
 | 
						|
$fields = array();
 | 
						|
$fields[":username"] = $_SESSION['username'];
 | 
						|
$sth = $globaldbh->prepare($query);
 | 
						|
$sth->execute($fields);
 | 
						|
$comics = array();
 | 
						|
$issues = array();
 | 
						|
while ( $row = $sth->fetch(PDO::FETCH_ASSOC) ) {
 | 
						|
   if ( !in_array($row['comic'], $comics) ) $comics[] = $row['comic'];
 | 
						|
   if ( !in_array($row['issue'], $issues) ) $issues[] = $row['issue'];
 | 
						|
}
 | 
						|
?>
 | 
						|
<!DOCTYPE html>
 | 
						|
<html>
 | 
						|
<head>
 | 
						|
<meta name="viewport" content="width=device-width, initial-scale=0.5" />
 | 
						|
<meta name="apple-mobile-web-app-capable" content="yes">
 | 
						|
<meta name="mobile-web-app-capable" content="yes">
 | 
						|
<link rel="icon" sizes="128x128" href="img/comics_128.png">
 | 
						|
<link rel="icon" sizes="196x196" href="img/comics_196.png">
 | 
						|
<link rel="apple-touch-icon" sizes="76x76" href="img/comics_76.png">
 | 
						|
<link rel="apple-touch-icon" sizes="120x120" href="img/comics_120.png">
 | 
						|
<link rel="apple-touch-icon" sizes="152x152" href="img/comics_152.png">
 | 
						|
<title>Comics Fancy</title>
 | 
						|
<link rel='stylesheet' type='text/css' href='css/reset.css' media='screen' />
 | 
						|
<link rel='stylesheet' type='text/css' href='css/comics.css' media='screen' />
 | 
						|
<link rel="stylesheet" type="text/css" href="core/simpleLightbox.min.css" />
 | 
						|
<!-- Toastr CSS -->
 | 
						|
<link rel="stylesheet" type="text/css" href="core/toastr.min.css" />
 | 
						|
<script type='text/javascript' src='core/jquery-3.6.0.min.js'></script>
 | 
						|
<script type='text/javascript' src='js/comics.js'></script>
 | 
						|
<script type='text/javascript' src='core/simpleLightbox.min.js'></script>
 | 
						|
<script type='text/javascript' src='core/toastr.min.js'></script>
 | 
						|
<style type='text/css'>
 | 
						|
.fancybox-outer { background: #323231; }
 | 
						|
.fancybox-title { font: normal 10px "Comic Sans MS"; }
 | 
						|
.fancybox-title-over-wrap { color: #bbb; padding: 0px 4px 0px 4px; }
 | 
						|
.mtest {
 | 
						|
  margin-top: 0px;
 | 
						|
  margin-bottom: 0px;
 | 
						|
  padding-top: 0px;
 | 
						|
  padding-bottom: 0px;
 | 
						|
  border: 1px solid red;
 | 
						|
}
 | 
						|
</style>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
<div class='sorter'>Sort: 
 | 
						|
<?php
 | 
						|
if ( $_SESSION['sortorder'] == SORTBYNAME ) {
 | 
						|
   echo "<a href='index.php?sortorder=", SORTBYDATE, "'>Name</a>";
 | 
						|
} else {
 | 
						|
   echo "<a href='index.php?sortorder=", SORTBYNAME, "'>Date</a>";
 | 
						|
}
 | 
						|
?>
 | 
						|
</div>
 | 
						|
<div class='header' id='header'><?php
 | 
						|
/*
 | 
						|
if ( $compath != "/" ) {
 | 
						|
   echo "<a href='index.php?newpath=$updirlink'>$updir";
 | 
						|
   if ( dirname($compath) == "/" ) { echo "Comics"; }
 | 
						|
   echo "</a>/";
 | 
						|
}
 | 
						|
echo $header;
 | 
						|
 */
 | 
						|
?> </div>
 | 
						|
<!-- <div class='name'><a href='logout.php'><?php echo htmlspecialchars($_SESSION['name']); ?></a></div> -->
 | 
						|
<div class='name'><?php
 | 
						|
if ( $compath != "/" ) {
 | 
						|
   echo "<a href='index.php?newpath=$updirlink'>$updir";
 | 
						|
   if ( dirname($compath) == "/" ) { echo "Comics"; }
 | 
						|
   echo "</a>/";
 | 
						|
}
 | 
						|
?></div>
 | 
						|
<div class='list'>
 | 
						|
<!-- <div class='listcontainer'> -->
 | 
						|
<?php
 | 
						|
 | 
						|
$htime = microtime_float();
 | 
						|
$thumbtime = 0;
 | 
						|
$newthumbs = 0;
 | 
						|
$thumbfiles = "";
 | 
						|
$total = count($items);
 | 
						|
for ( $i=1; $i<=$total; $i++ ) {
 | 
						|
//for ( $i=6; $i<=6; $i++ ) {
 | 
						|
   if ( $i <= count($folders) ) {
 | 
						|
      $np = urlencode($compath . "/" . $items[$i-1]);
 | 
						|
      $thumbfile = THUMBSDIR . $compath . "/" . $items[$i-1] . ".jpg";
 | 
						|
   } else {
 | 
						|
      $np = urlencode($compath . "/" . substr($items[$i-1], 0, -4) . ".jpg");
 | 
						|
      $thumbfile = THUMBSDIR . $compath . "/" . substr($items[$i-1], 0, -4) . ".jpg";
 | 
						|
   }
 | 
						|
   $thumbfile = str_replace("#", "", $thumbfile);
 | 
						|
   if ( !file_exists($thumbfile) ) {
 | 
						|
      $thumbfiles .= $thumbfile . "<br>";
 | 
						|
      $newthumbs++;
 | 
						|
      $st = microtime_float();
 | 
						|
      $havethumb = makeThumb($fullcompath . "/" . $items[$i-1]);
 | 
						|
      $thumbtime += microtime_float() - $st;
 | 
						|
      if ( !$havethumb ) {
 | 
						|
         $havethumb = true;
 | 
						|
         $thumb = "img/nothumb.png";
 | 
						|
      }
 | 
						|
   }
 | 
						|
   $thumb = "thumbs" . $compath . "/" .basename($thumbfile);
 | 
						|
   $comname = pathinfo($items[$i-1], PATHINFO_FILENAME);
 | 
						|
   if ( strpos($comname, " - ") !== false ) $comname = str_replace(" - ", "<br />", $comname);
 | 
						|
   $classmod = "";
 | 
						|
   if ( $i <= count($folders) ) {
 | 
						|
      if ( in_array($items[$i-1], $comics) ) $classmod=" readborder";
 | 
						|
      echo "<div class='item{$classmod}' ";
 | 
						|
      echo "onClick='document.location=\"index.php?newpath=$np\";'>";
 | 
						|
      $thumburl = htmlentities($thumb, ENT_QUOTES);
 | 
						|
      echo "<img src='$thumburl'><br clear=all />{$comname}</div>\n";
 | 
						|
   } else {
 | 
						|
      if ( in_array($items[$i-1], $issues) ) $classmod=" readborder";
 | 
						|
      $relcomic = trim(base64_encode($compath . "/" . $items[$i-1]), "=");
 | 
						|
      $thumburl = htmlentities($thumb, ENT_QUOTES);
 | 
						|
      echo "<div class='item{$classmod}' id='", $relcomic, "'><a onClick='showComic(\"", $relcomic, "\", \"", htmlspecialchars($comname, ENT_QUOTES), "\");' ";
 | 
						|
      echo "href='javascript:;'><img border=0 src='$thumburl'></a><br clear=all />";
 | 
						|
      echo "<a href='downloadcomic.php?comic={$relcomic}'>{$comname}</a></div>\n";
 | 
						|
   }
 | 
						|
}
 | 
						|
$htime = microtime_float() - $htime;
 | 
						|
?>
 | 
						|
<!-- </div> -->
 | 
						|
<div id='debug' class='debug'>
 | 
						|
</div>
 | 
						|
 | 
						|
</body>
 | 
						|
</html><?php
 | 
						|
 | 
						|
// vim: set ai et ts=3 sw=3:
 |