コード例 #1
0
ファイル: FileManager.php プロジェクト: ixtrum/file-manager
 /**
  * Get directory content
  *
  * @param string $dir   Directory
  * @param string $mask  Mask
  * @param string $order Order
  *
  * @return array
  */
 private function getContent($dir, $mask, $order)
 {
     $path = $this->getAbsolutePath($dir);
     // Default filter mask
     if (empty($mask)) {
         $mask = "*";
     }
     if ($this->system->parameters["cache"] && $mask === "*") {
         $cache = $this->system->caching->getItem(array("content", $path));
         if ($cache) {
             return $cache;
         }
     }
     $content = array();
     foreach (FileSystem\Finder::findDirectories($mask)->in($path)->orderBy($order) as $item) {
         $entity = new Entities\Directory();
         $entity->actualDir = $dir;
         $entity->name = $item->getFilename();
         $entity->path = $dir . "{$entity->name}/";
         if ($dir === FileSystem::getRootname()) {
             $entity->path = "/{$entity->name}/";
         }
         $entity->modified = $item->getMTime();
         $content["directories"][] = $entity;
     }
     foreach (FileSystem\Finder::findFiles($mask)->in($path)->orderBy($order) as $item) {
         $entity = new Entities\File();
         $entity->actualDir = $dir;
         $entity->name = $item->getFilename();
         $entity->modified = $item->getMTime();
         $entity->size = $this->system->filesystem->getSize($item->getPathName());
         $entity->extension = strtolower(pathinfo($item->getFilename(), PATHINFO_EXTENSION));
         $entity->thumb = false;
         if ($this->system->parameters["thumbs"]) {
             $entity->thumb = in_array($entity->extension, $this->system->thumbs->supported);
         }
         $content["files"][] = $entity;
     }
     if ($this->system->parameters["cache"]) {
         $this->system->caching->saveItem(array("content", $path), $content);
     }
     return $content;
 }