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; }