/** * Function to get the record model based on the request parameters * @param Vtiger_Request $request * @return Vtiger_Record_Model or Module specific Record Model instance */ protected function getRecordModelFromRequest(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); if (!empty($recordId)) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $modelData = $recordModel->getData(); $recordModel->set('id', $recordId); $sharedType = $request->get('sharedtype'); if (!empty($sharedType)) { $recordModel->set('calendarsharedtype', $request->get('sharedtype')); } $recordModel->set('mode', 'edit'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $modelData = $recordModel->getData(); $recordModel->set('mode', ''); } foreach ($modelData as $fieldName => $value) { $requestFieldExists = $request->has($fieldName); if (!$requestFieldExists) { continue; } $fieldValue = $request->get($fieldName, null); if ($fieldName === 'is_admin' && !$fieldValue) { $fieldValue = 'off'; } if ($fieldValue !== null) { if (!is_array($fieldValue)) { $fieldValue = trim($fieldValue); } $recordModel->set($fieldName, $fieldValue); } } $homePageComponents = $recordModel->getHomePageComponents(); $selectedHomePageComponents = $request->get('homepage_components', array()); foreach ($homePageComponents as $key => $value) { if (in_array($key, $selectedHomePageComponents)) { $request->setGlobal($key, $key); } else { $request->setGlobal($key, ''); } } // Tag cloud save $tagCloud = $request->get('tagcloudview'); if ($tagCloud == "on") { $recordModel->set('tagcloud', 0); } else { $recordModel->set('tagcloud', 1); } return $recordModel; }