%PDF- %PDF-
Direktori : /www/varak.net/video.varak.net/app/ |
Current File : /www/varak.net/video.varak.net/app/ItemsRenderer.php |
<?php /** * Created by PhpStorm. * User: Turbo * Date: 14.12.2015 * Time: 15:44 */ namespace Menu; use App\BaseRenderer; use Utils\Strings; class ItemsRenderer extends BaseRenderer { public $dirs = []; public $files = []; public $iterator = 1; private $sub = ""; /** @var resource|null */ public $openDirectory = NULL; /***/ public function __construct($path = NULL, $subDir = NULL) { parent::__construct($path, $subDir); $this->loadItems(); $this->sub = $subDir; } public function render() { echo '<ol class="breadcrumb">'; $this->renderNav(); echo '</ol>'; echo '<div class="row">'; $this->renderDirs(); $this->renderFiles(); echo '</div>'; $this->clean(); } public function renderNav() { $dirs = explode('/', $this->subDir); $title = $name = 'Home'; if (count($dirs) <= 1) { $active = TRUE; } include ('templates/navItem.php'); foreach ($dirs as $key => $dir) { $active = FALSE; if ($dir != "") { $prePath = ""; $i = 0; while ($i < $key) { $prePath.= "$dirs[$i]"."/"; $i++; } $menuItem = $this->basePath.$prePath.$dir; if (is_dir($menuItem)) { $name = Strings::truncate($dir, 30); $title = $dir; $link = urlencode($prePath.$dir); if ($key == count($dirs) - 1){ $active = TRUE; } include ('templates/navItem.php'); } } } echo "<li style=\"float: right;\"><a href=\"playlist.php?dir=" . urlencode($this->sub) . "\">Playlist</a></li>"; } public function renderDirs($dirs = NULL) { if ($dirs === NULL) { $dirs = $this->dirs; } if ($dirs) { sort($dirs); foreach ($dirs as $dir) { $stat = scandir("$this->path/$dir"); $stat = $stat ? count($stat)-2 : 0; include('templates/itemDir.php'); $this->iterator++; } } } public function renderFiles($files = NULL) { if ($files === NULL) { $files = $this->files; } if ($files) { sort($files); foreach ($files as $file) { if (strtoupper(pathinfo("$this->path/$file", PATHINFO_EXTENSION)) == "WEBM" || strtoupper(pathinfo("$this->path/$file", PATHINFO_EXTENSION)) == "MP4" || strtoupper(pathinfo("$this->path/$file", PATHINFO_EXTENSION)) == "MOV" ) { $stat = stat("$this->path/$file"); include('templates/itemFile.php'); $this->iterator++; } } } } public function getFiles($files = NULL) { if ($files === NULL) { $files = $this->files; } if ($files) { sort($files); $retVal = array(); foreach ($files as $file) { if (strtoupper(pathinfo("$this->path/$file", PATHINFO_EXTENSION)) == "WEBM" || strtoupper(pathinfo("$this->path/$file", PATHINFO_EXTENSION)) == "MP4" || strtoupper(pathinfo("$this->path/$file", PATHINFO_EXTENSION)) == "MOV" ) { $retVal[] = $file; } } return $retVal; } } public function clean() { if ($this->openDirectory) { closedir($this->openDirectory); } } protected function loadItems() { $this->openDirectory = opendir($this->path); $addr = "https://video.varak.net/player.php?file="; while (($file = readdir($this->openDirectory)) !== FALSE) { if ($file != "." && $file != "..") { if (!is_dir($this->path . "/" . $file)) { /*$stat = stat("$path/$file"); $size = fsize($stat['size']); $date = date("Y-m-d H:i:s", $stat['mtime']); //echo "$i. <a href=\"http://expert.isibrno.cz:56/waritko/down/$sub/$file\">$file</a> ($size) <br />"; echo "<tr><td>$i</td><td><a href=\"$sub/$file\">$file</a><!-- INODE: ".$stat['ino']." --></td><td>$size</td><td>$date</td></tr>\n";*/ $this->files[] = $file; } else { //echo "$i. <a href='?dir=$sub/$file'>$file</a><br />"; $this->dirs[] = $file; } //$i++; } } } protected function fileSize($size) { $jedn = array("bytes", "Kbytes", "Mbytes", "Gbytes", "Tbytes", "Pbytes"); //$size = filesize($name); $i = 0; while ($size > 1023) { $size /= 1024; $i++; } return sprintf("%0.2f %s", $size, $jedn[$i]); } }