public function process(Vtiger_Request $request) { $relationInfo = $request->get('related_info'); $updatedRelatedList = $relationInfo['updated']; $deletedRelatedList = $relationInfo['deleted']; if (empty($updatedRelatedList)) { $updatedRelatedList = array(); } if (empty($deletedRelatedList)) { $deletedRelatedList = array(); } $sourceModule = $request->get('sourceModule'); $moduleModel = Vtiger_Module_Model::getInstance($sourceModule, false); $relationModulesList = Vtiger_Relation_Model::getAllRelations($moduleModel, false); $sequenceList = array(); foreach ($relationModulesList as $relationModuleModel) { $sequenceList[] = $relationModuleModel->get('sequence'); } //To sort sequence in ascending order sort($sequenceList); $relationUpdateDetail = array(); $index = 0; foreach ($updatedRelatedList as $relatedId) { $relationUpdateDetail[] = array('relation_id' => $relatedId, 'sequence' => $sequenceList[$index++], 'presence' => 0); } foreach ($deletedRelatedList as $relatedId) { $relationUpdateDetail[] = array('relation_id' => $relatedId, 'sequence' => $sequenceList[$index++], 'presence' => 1); } $response = new Vtiger_Response(); try { $response->setResult(array('success' => true)); Vtiger_Relation_Model::updateRelationSequenceAndPresence($relationUpdateDetail, $moduleModel->getId()); } catch (Exception $e) { $response->setError($e->getCode(), $e->getMessage()); } $response->emit(); }
/** * Function returns all the relation models * @return <Array of Vtiger_Relation_Model> */ public function getRelations() { if (empty($this->relations)) { return Vtiger_Relation_Model::getAllRelations($this); } return $this->relations; }
public function getRelations() { if ($this->relations === null) { $this->relations = Vtiger_Relation_Model::getAllRelations($this, false); } // Contacts relation-tab is turned into custom block on DetailView. if ($this->getName() == 'Calendar') { $contactsIndex = false; foreach ($this->relations as $index => $model) { if ($model->getRelationModuleName() == 'Contacts') { $contactsIndex = $index; break; } } if ($contactsIndex !== false) { array_splice($this->relations, $contactsIndex, 1); } } return $this->relations; }