/** * add * @author Thomas Schedler <*****@*****.**> * @version 1.0 */ public function add($_FILE_NAME) { $this->core->logger->debug('massiveart.files.File->add()'); try { $this->_FILE_NAME = $_FILE_NAME; $this->strFileId = uniqid(); $this->upload(); $this->getModelFile(); $this->intUserId = Zend_Auth::getInstance()->getIdentity()->id; $this->intVersion = 1; $arrInsertData = array('fileId' => $this->strFileId, 'idUsers' => $this->intUserId, 'path' => '', 'idParent' => $this->intParentId, 'idParentTypes' => $this->intParentTypeId, 'isS3Stored' => 0, 'isImage' => $this->getIsImage(), 'filename' => $this->strFileId . '.' . $this->strExtension, 'creator' => $this->intUserId, 'created' => date('Y-m-d H:i:s'), 'size' => $this->dblSize, 'extension' => $this->strExtension, 'mimeType' => $this->strMimeType, 'version' => $this->intVersion); $this->intId = $this->objModelFile->getFileTable()->insert($arrInsertData); if ($this->getIsImage()) { $arrInsertAttributeData = array('idFiles' => $this->intId, 'xDim' => $this->intXDim, 'yDim' => $this->intYDim); $this->objModelFile->getFileAttributeTable()->insert($arrInsertAttributeData); } } catch (Exception $exc) { $this->core->logger->err($exc); } }
/** * updateFileData * @author Cornelius Hansjakob <*****@*****.**> * @version 1.0 */ public function updateFileData() { $this->core->logger->debug('massiveart.files.File->updateFileData()'); try { $arrMetaData = array(); $this->getModelFile(); $this->getModelTags(); $strTmpEditFileIds = trim($this->arrFileDatas['FileIds'], '[]'); $arrEditFileIds = array(); $arrEditFileIds = split('\\]\\[', $strTmpEditFileIds); if (count($arrEditFileIds) > 0) { foreach ($arrEditFileIds as $intEditFileId) { if ($intEditFileId != '') { $strFileTitle = $this->arrFileDatas['FileTitle' . $intEditFileId]; $strFileDescription = $this->arrFileDatas['FileDescription' . $intEditFileId]; if ($strFileTitle != '' || $strFileDescription != '') { $arrData = array('title' => $strFileTitle, 'description' => $strFileDescription, 'changed' => date('Y-m-d H:i:s')); if ($this->objModelFile->hasDisplayTitle($intEditFileId) == false) { $arrData['isDisplayTitle'] = 1; } $strWhere = $this->objModelFile->getFileTitleTable()->getAdapter()->quoteInto('idFiles = ?', $intEditFileId); $strWhere .= $this->objModelFile->getFileTitleTable()->getAdapter()->quoteInto(' AND idLanguages = ?', $this->intLanguageId); $intNumOfEffectedRows = $this->objModelFile->getFileTitleTable()->update($arrData, $strWhere); if ($intNumOfEffectedRows == 0) { $this->saveFileData(array($intEditFileId)); } else { /** * update is language specific file */ $intFilePreviewId = 0; if (array_key_exists('documentpic', $this->arrFileDatas)) { $intFilePreviewId = trim($this->arrFileDatas['documentpic'], '[]'); //str_replace('[', '', str_replace(']', '', $this->arrFileDatas['documentpic'])); //FIXME: Make a single-select media-field } $intFileIsLanguageSpecific = (int) isset($this->arrFileDatas['FileIsLanguageSpecific' . $intEditFileId]) ? $this->arrFileDatas['FileIsLanguageSpecific' . $intEditFileId] : 0; $intFileDestinationId = (int) isset($this->arrFileDatas['FileDestinationId' . $intEditFileId]) ? $this->arrFileDatas['FileDestinationId' . $intEditFileId] : 0; $intFileGroupId = (int) isset($this->arrFileDatas['FileGroupId' . $intEditFileId]) ? $this->arrFileDatas['FileGroupId' . $intEditFileId] : 0; $strWhere = $this->objModelFile->getFileTitleTable()->getAdapter()->quoteInto('id = ?', $intEditFileId); $this->objModelFile->getFileTable()->update(array('isLanguageSpecific' => $intFileIsLanguageSpecific, 'idDestination' => $intFileDestinationId, 'idGroup' => $intFileGroupId, 'idFiles' => $intFilePreviewId > 0 ? $intFilePreviewId : 'NULL'), $strWhere); /** * save tags (quick&dirty solution) */ $this->arrNewTags = array(); $this->arrNewTags = explode(',', trim($this->arrFileDatas['FileTags' . $intEditFileId])); $this->validateTags(); $this->objModelTags->deletTypeTags('file', $intEditFileId, 1); // TODO : version $this->objModelTags->addTypeTags('file', $this->arrNewTagIds, $intEditFileId, 1); // TODO : version } } else { $strWhere = $this->objModelFile->getFileTitleTable()->getAdapter()->quoteInto('idFiles = ?', $intEditFileId); $strWhere .= $this->objModelFile->getFileTitleTable()->getAdapter()->quoteInto(' AND idLanguages = ?', $this->intLanguageId); $this->objModelFile->getFileTitleTable()->delete($strWhere); } } } } } catch (Exception $exc) { $this->core->logger->err($exc); } }