/** * delete linked objects (notes, relations, ...) of record * * @param Tinebase_Record_Interface $_record */ protected function _deleteLinkedObjects(Tinebase_Record_Interface $_record) { // delete notes & relations if ($_record->has('notes')) { Tinebase_Notes::getInstance()->deleteNotesOfRecord($this->_modelName, $this->_backend->getType(), $_record->getId()); } if ($_record->has('relations')) { $relations = Tinebase_Relations::getInstance()->getRelations($this->_modelName, $this->_backend->getType(), $_record->getId()); if (!empty($relations)) { // remove relations Tinebase_Relations::getInstance()->setRelations($this->_modelName, $this->_backend->getType(), $_record->getId(), array()); // remove related objects if (!empty($this->_relatedObjectsToDelete)) { foreach ($relations as $relation) { if (in_array($relation->related_model, $this->_relatedObjectsToDelete)) { list($appName, $i, $itemName) = explode('_', $relation->related_model); $appController = Tinebase_Core::getApplicationInstance($appName, $itemName); $appController->delete($relation->related_id); } } } } } }
/** * get backend type * * @return string */ protected function _getBackendType() { $type = method_exists($this->_backend, 'getType') ? $this->_backend->getType() : 'Sql'; return $type; }