[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /*+*********************************************************************************** 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 *************************************************************************************/ 10 11 class Vtiger_Save_Action extends Vtiger_Action_Controller { 12 13 public function checkPermission(Vtiger_Request $request) { 14 $moduleName = $request->getModule(); 15 $record = $request->get('record'); 16 17 if(!Users_Privileges_Model::isPermitted($moduleName, 'Save', $record)) { 18 throw new AppException('LBL_PERMISSION_DENIED'); 19 } 20 } 21 22 public function process(Vtiger_Request $request) { 23 $recordModel = $this->saveRecord($request); 24 if($request->get('relationOperation')) { 25 $parentModuleName = $request->get('sourceModule'); 26 $parentRecordId = $request->get('sourceRecord'); 27 $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentRecordId, $parentModuleName); 28 //TODO : Url should load the related list instead of detail view of record 29 $loadUrl = $parentRecordModel->getDetailViewUrl(); 30 } else if ($request->get('returnToList')) { 31 $loadUrl = $recordModel->getModule()->getListViewUrl(); 32 } else { 33 $loadUrl = $recordModel->getDetailViewUrl(); 34 } 35 header("Location: $loadUrl"); 36 } 37 38 /** 39 * Function to save record 40 * @param <Vtiger_Request> $request - values of the record 41 * @return <RecordModel> - record Model of saved record 42 */ 43 public function saveRecord($request) { 44 $recordModel = $this->getRecordModelFromRequest($request); 45 $recordModel->save(); 46 if($request->get('relationOperation')) { 47 $parentModuleName = $request->get('sourceModule'); 48 $parentModuleModel = Vtiger_Module_Model::getInstance($parentModuleName); 49 $parentRecordId = $request->get('sourceRecord'); 50 $relatedModule = $recordModel->getModule(); 51 $relatedRecordId = $recordModel->getId(); 52 53 $relationModel = Vtiger_Relation_Model::getInstance($parentModuleModel, $relatedModule); 54 $relationModel->addRelation($parentRecordId, $relatedRecordId); 55 } 56 if($request->get('imgDeleted')) { 57 $imageIds = $request->get('imageid'); 58 foreach($imageIds as $imageId) { 59 $status = $recordModel->deleteImage($imageId); 60 } 61 } 62 return $recordModel; 63 } 64 65 /** 66 * Function to get the record model based on the request parameters 67 * @param Vtiger_Request $request 68 * @return Vtiger_Record_Model or Module specific Record Model instance 69 */ 70 protected function getRecordModelFromRequest(Vtiger_Request $request) { 71 72 $moduleName = $request->getModule(); 73 $recordId = $request->get('record'); 74 75 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 76 77 if(!empty($recordId)) { 78 $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); 79 $modelData = $recordModel->getData(); 80 $recordModel->set('id', $recordId); 81 $recordModel->set('mode', 'edit'); 82 } else { 83 $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); 84 $modelData = $recordModel->getData(); 85 $recordModel->set('mode', ''); 86 } 87 88 $fieldModelList = $moduleModel->getFields(); 89 foreach ($fieldModelList as $fieldName => $fieldModel) { 90 $fieldValue = $request->get($fieldName, null); 91 $fieldDataType = $fieldModel->getFieldDataType(); 92 if($fieldDataType == 'time'){ 93 $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); 94 } 95 if($fieldValue !== null) { 96 if(!is_array($fieldValue)) { 97 $fieldValue = trim($fieldValue); 98 } 99 $recordModel->set($fieldName, $fieldValue); 100 } 101 } 102 return $recordModel; 103 } 104 105 public function validateRequest(Vtiger_Request $request) { 106 return $request->validateWriteAccess(); 107 } 108 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |