Exemplo n.º 1
0
 public function onFileAction(MOXMAN_Vfs_FileActionEventArgs $args)
 {
     $logger = MOXMAN::getLogger();
     if ($logger) {
         if ($args->getTargetFile()) {
             // Log copy/move operations these have a target file
             $logger->debug("Action: " . $args->getAction(), "Path: " . $args->getFile()->getPath(), "TargetPath: " . $args->getTargetFile()->getPath());
         } else {
             // Log single file operations
             $logger->debug("Action: " . $args->getAction(), "Path: " . $args->getFile()->getPath());
         }
     }
 }
Exemplo n.º 2
0
 public function onBeforeFileAction(MOXMAN_Vfs_FileActionEventArgs $args)
 {
     switch ($args->getAction()) {
         case MOXMAN_Vfs_FileActionEventArgs::ADD:
             $args->setFile($this->renameFile($args->getFile()));
             break;
         case MOXMAN_Vfs_FileActionEventArgs::MOVE:
             $args->setTargetFile($this->renameFile($args->getTargetFile()));
             break;
     }
 }
Exemplo n.º 3
0
 public function onBeforeFileAction(MOXMAN_Vfs_FileActionEventArgs $args)
 {
     switch ($args->getAction()) {
         case MOXMAN_Vfs_FileActionEventArgs::DELETE:
             $file = $args->getFile();
             $maxSize = $this->parseSize($file->getConfig()->get("quota.max_size", 0));
             if ($maxSize > 0) {
                 $this->currentSize = MOXMAN::getUserStorage()->get("quota.size", 0);
                 $this->currentSize = max(0, $this->currentSize - $file->getSize());
                 if (MOXMAN::getLogger()) {
                     MOXMAN::getLogger()->debug("[quota] Removed: " . $file->getPublicPath() . " (" . $this->formatSize($file->getSize()) . ").");
                 }
             }
             break;
         case MOXMAN_Vfs_FileActionEventArgs::COPY:
         case MOXMAN_Vfs_FileActionEventArgs::ADD:
             if (!isset($args->getData()->thumb)) {
                 $file = $args->getFile();
                 $targetFile = $args->getTargetFile();
                 if (!$file) {
                     return;
                 }
                 $publicPath = $targetFile ? $targetFile->getPublicPath() : $file->getPublicPath();
                 $maxSize = $this->parseSize($file->getConfig()->get("quota.max_size", 0));
                 if ($maxSize === 0) {
                     return;
                 }
                 $fileSize = 0;
                 // Get size of source directory in copy operation
                 if ($args->getAction() == MOXMAN_Vfs_FileActionEventArgs::COPY && $file->isDirectory()) {
                     $fileSize = $this->getDirectorySize($file);
                 } else {
                     if (isset($args->getData()->fileSize)) {
                         $fileSize = $args->getData()->fileSize;
                     }
                 }
                 $this->currentSize = MOXMAN::getUserStorage()->get("quota.size", 0);
                 if ($this->currentSize + $fileSize > $maxSize) {
                     throw new MOXMAN_Exception("Quota exceeded when adding file: " . $publicPath . " (" . $this->formatSize($this->currentSize + $fileSize) . " > " . $this->formatSize($maxSize) . ").");
                 }
                 $this->currentSize += $fileSize;
                 if (MOXMAN::getLogger()) {
                     MOXMAN::getLogger()->debug("[quota] Added: " . $file->getPublicPath() . " (" . $this->formatSize($fileSize) . ").");
                 }
             }
             break;
     }
 }
Exemplo n.º 4
0
 /**
  * Event handler function. Gets executed when a file action event occurs.
  *
  * @param MOXMAN_Vfs_FileActionEventArgs $args File action event arguments.
  */
 public function onFileAction(MOXMAN_Vfs_FileActionEventArgs $args)
 {
     if (isset($args->getData()->thumb)) {
         return;
     }
     switch ($args->getAction()) {
         case MOXMAN_Vfs_FileActionEventArgs::DELETE:
             $this->deleteThumbnail($args->getFile());
             break;
         case MOXMAN_Vfs_FileActionEventArgs::COPY:
             $this->copyThumbnail($args->getFile(), $args->getTargetFile());
             break;
         case MOXMAN_Vfs_FileActionEventArgs::MOVE:
             $this->moveThumbnail($args->getFile(), $args->getTargetFile());
             break;
     }
 }