/** * save() * @param integer $intElementId * @param string $strType * @param string $strElementId * @param integet $intVersion * @author Thomas Schedler <*****@*****.**> * @version 1.0 */ public function save($intElementId, $strType, $strElementId = null, $intVersion = null) { try { $this->validateTags(); $this->getModelTags(); $this->objModelTags->deletTypeTags($strType, $strElementId, $intVersion); $this->objModelTags->addTypeTags($strType, $this->arrNewTagIds, $strElementId, $intVersion); $this->objElement->tagIds = $this->arrNewTagIds; } 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); } }