Exemple #1
0
 protected function _databaseBeforeSave(Library\CommandContext $context)
 {
     $row = $context->getSubject();
     if (is_string($row->file) && !is_uploaded_file($row->file)) {
         // remote file
         try {
             $file = $this->getObject('com:files.database.row.url');
             $file->setData(array('file' => $row->file));
             $file->load();
             $row->contents = $file->contents;
         } catch (DatabaseRowUrlException $e) {
             throw new \RuntimeException($e->getMessage(), $e->getCode());
         }
         if (empty($row->name)) {
             $uri = $this->getObject('lib:http.url', array('url' => $row->file));
             $path = $uri->toString(Library\HttpUrl::PATH | Library\HttpUrl::FORMAT);
             if (strpos($path, '/') !== false) {
                 $path = basename($path);
             }
             $row->name = $path;
         }
     }
     $result = parent::_databaseBeforeSave($context);
     if ($result) {
         $filter = $this->getObject('com:files.filter.file.uploadable');
         $result = $filter->validate($context->getSubject());
         if ($result === false) {
             $errors = $filter->getErrors();
             if (count($errors)) {
                 $context->getSubject()->setStatusMessage(array_shift($errors));
             }
         }
     }
     return $result;
 }
 protected function _databaseBeforeSave($context)
 {
     $result = parent::_databaseBeforeSave($context);
     if ($result) {
         $filter = $this->getObject('com:files.filter.folder.uploadable');
         $result = $filter->validate($context->getSubject());
         if ($result === false) {
             $errors = $filter->getErrors();
             if (count($errors)) {
                 $context->getSubject()->setStatusMessage(array_shift($errors));
             }
         }
     }
     return $result;
 }