/** * Gets tags of a given record where user has the required right to * The tags are stored in the records $_tagsProperty. * * @param Tinebase_Record_Abstract $_record the record object * @param string $_tagsProperty the property in the record where the tags are in (defaults: 'tags') * @param string $_right the required right current user must have on the tags * @return Tinebase_Record_RecordSet tags of record */ public function getTagsOfRecord($_record, $_tagsProperty = 'tags', $_right = Tinebase_Model_TagRight::VIEW_RIGHT) { $recordId = $_record->getId(); $tags = new Tinebase_Record_RecordSet('Tinebase_Model_Tag'); if (!empty($recordId)) { $select = $this->_getSelect($recordId, Tinebase_Application::getInstance()->getApplicationByName($_record->getApplication())->getId()); Tinebase_Model_TagRight::applyAclSql($select, $_right, $this->_db->quoteIdentifier('tagging.tag_id')); Tinebase_Backend_Sql_Abstract::traitGroup($select); foreach ($this->_db->fetchAssoc($select) as $tagArray) { $tags->addRecord(new Tinebase_Model_Tag($tagArray, true)); } } $_record[$_tagsProperty] = $tags; return $tags; }
/** * get path for record attachments * * @param Tinebase_Record_Abstract $record * @param boolean $createDirIfNotExists * @throws Tinebase_Exception_InvalidArgument * @return string */ public function getRecordAttachmentPath(Tinebase_Record_Abstract $record, $createDirIfNotExists = FALSE) { if (!$record->getId()) { throw new Tinebase_Exception_InvalidArgument('record needs an identifier'); } $parentPath = $this->_fsController->getApplicationBasePath($record->getApplication(), Tinebase_FileSystem::FOLDER_TYPE_RECORDS); $recordPath = $parentPath . '/' . get_class($record) . '/' . $record->getId(); if ($createDirIfNotExists && !$this->_fsController->fileExists($recordPath)) { $this->_fsController->mkdir($recordPath); } return $recordPath; }