Exemple #1
0
 /**
  * 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);
     }
 }