/**
  * Configure after successfull mount.
  *
  * @return void
  * @author Dmitry (dio) Levashov
  * */
 protected function configure()
 {
     $this->aroot = realpath($this->root);
     $root = $this->stat($this->root);
     if ($this->options['quarantine']) {
         $this->attributes[] = array('pattern' => '~^' . preg_quote(DIRECTORY_SEPARATOR . $this->options['quarantine']) . '$~', 'read' => false, 'write' => false, 'locked' => true, 'hidden' => true);
     }
     // chek thumbnails path
     if ($this->options['tmbPath']) {
         $this->options['tmbPath'] = strpos($this->options['tmbPath'], DIRECTORY_SEPARATOR) === false ? $this->root . DIRECTORY_SEPARATOR . $this->options['tmbPath'] : $this->_normpath($this->options['tmbPath']);
     }
     parent::configure();
     // if no thumbnails url - try detect it
     if ($root['read'] && !$this->tmbURL && $this->URL) {
         if (strpos($this->tmbPath, $this->root) === 0) {
             $this->tmbURL = $this->URL . str_replace(DIRECTORY_SEPARATOR, '/', substr($this->tmbPath, strlen($this->root) + 1));
             if (preg_match("|[^/?&=]\$|", $this->tmbURL)) {
                 $this->tmbURL .= '/';
             }
         }
     }
     // check quarantine dir
     if (!empty($this->options['quarantine'])) {
         $this->quarantine = $this->root . DIRECTORY_SEPARATOR . $this->options['quarantine'];
         if (!is_dir($this->quarantine) && !$this->_mkdir($this->root, $this->options['quarantine']) || !is_writable($this->quarantine)) {
             $this->archivers['extract'] = array();
             $this->disabled[] = 'extract';
         }
     } else {
         $this->archivers['extract'] = array();
         $this->disabled[] = 'extract';
     }
 }
Пример #2
0
 /**
  * Return file mimetype
  *
  * @param  string  $path  file path
  * @return string
  * @author Dmitry (dio) Levashov
  * */
 protected function mimetype($path)
 {
     $type = '';
     if ($this->mimeDetect == 'finfo') {
         $type = @finfo_file($this->finfo, $path);
     } elseif ($type == 'mime_content_type') {
         $type = mime_content_type($path);
     } else {
         $type = \app\src\elFinder\elFinderVolumeDriver::mimetypeInternalDetect($path);
     }
     $type = explode(';', $type);
     $type = trim($type[0]);
     if ($type == 'application/x-empty') {
         // finfo return this mime for empty files
         $type = 'text/plain';
     } elseif ($type == 'application/x-zip') {
         // http://elrte.org/redmine/issues/163
         $type = 'application/zip';
     }
     return $type == 'unknown' && $this->mimeDetect != 'internal' ? \app\src\elFinder\elFinderVolumeDriver::mimetypeInternalDetect($path) : $type;
 }
Пример #3
0
 /**
  * Return debug info for client
  *
  * @return array
  * @author Dmitry (dio) Levashov
  * */
 public function debug()
 {
     $debug = parent::debug();
     $debug['sqlCount'] = $this->sqlCnt;
     if ($this->dbError) {
         $debug['dbError'] = $this->dbError;
     }
     return $debug;
 }