/** * Internal function to return an MinutesFile object from a row. * @param $row array * @return MinutesFile */ function &_returnMinutesFileFromRow(&$row) { $minutesFile = new MinutesFile(); $minutesFile->setFileId($row['file_id']); $minutesFile->setMeetingId($row['meeting_id']); $minutesFile->setFileName($row['file_name']); $minutesFile->setOriginalFileName($row['original_file_name']); $minutesFile->setFileType($row['file_type']); $minutesFile->setFileSize($row['file_size']); $minutesFile->setType($row['type']); $minutesFile->setArticleId($row['article_id']); $minutesFile->setDateCreated($row['date_created']); HookRegistry::call('MinutesFileDAO::_returnMinutesFileFromRow', array(&$minutesFile, &$row)); return $minutesFile; }
/** * PRIVATE routine to upload the file and add it to the database. * @param $fileName string index into the $_FILES array * @param $type string identifying type * @param $fileId int ID of an existing file to update * @return int the file ID (false if upload failed) */ function handleUpload($fileName, $type, $fileId = null) { if (HookRegistry::call('MinutesFileManager::handleUpload', array(&$fileName, &$type, &$fileId, &$result))) { return $result; } $minutesFileDao =& DAORegistry::getDAO('MinutesFileDAO'); $typePath = $this->typeToPath($type); $dir = $this->filesDir . $typePath . '/'; if (!$fileId) { // Insert dummy file to generate file id FIXME? $dummyFile = true; $minutesFile =& $this->generateDummyFile($this->meeting); } else { $dummyFile = false; $minutesFile = new MinutesFile(); $minutesFile->setMeetingId($this->meetingId); $minutesFile->setFileId($fileId); $minutesFile->setDateCreated(Core::getCurrentDate()); } $minutesFile->setFileType($_FILES[$fileName]['type']); $minutesFile->setFileSize($_FILES[$fileName]['size']); $minutesFile->setOriginalFileName(MinutesFileManager::truncateFileName($_FILES[$fileName]['name'], 127)); $minutesFile->setType($typePath); $newFileName = $this->generateFilename($minutesFile, $typePath, $this->getUploadedFileName($fileName)); if (!$this->uploadFile($fileName, $dir . $newFileName)) { // Delete the dummy file we inserted $minutesFileDao->deleteMinutesFileById($minutesFile->getFileId()); return false; } if ($dummyFile) { $minutesFileDao->updateMinutesFile($minutesFile); } else { $minutesFileDao->insertMinutesFile($minutesFile); } return $minutesFile->getFileId(); }