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