public function process(Vtiger_Request $request) { $result = Vtiger_Util_Helper::transformUploadedFiles($_FILES, true); $_FILES = $result['imagename']; //To stop saveing the value of salutation as '--None--' $salutationType = $request->get('salutationtype'); if ($salutationType === '--None--') { $request->set('salutationtype', ''); } parent::process($request); }
public function process(Vtiger_Request $request) { $result = Vtiger_Util_Helper::transformUploadedFiles($_FILES, true); $_FILES = $result['imagename']; $recordModel = $this->saveRecord($request); if ($request->get('relationOperation')) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($request->get('sourceRecord'), $request->get('sourceModule')); $loadUrl = $parentRecordModel->getDetailViewUrl(); } else { if ($request->get('isPreference')) { $loadUrl = $recordModel->getPreferenceDetailViewUrl(); } else { $loadUrl = $recordModel->getDetailViewUrl(); } } header("Location: {$loadUrl}"); }
/** * Function Sends/Saves mass emails * @param <Vtiger_Request> $request */ public function massSave(Vtiger_Request $request) { global $upload_badext; $adb = PearDatabase::getInstance(); $moduleName = $request->getModule(); $currentUserModel = Users_Record_Model::getCurrentUserModel(); $recordIds = $this->getRecordsListFromRequest($request); $documentIds = $request->get('documentids'); // This is either SENT or SAVED $flag = $request->get('flag'); $result = Vtiger_Util_Helper::transformUploadedFiles($_FILES, true); $_FILES = $result['file']; $recordId = $request->get('record'); if (!empty($recordId)) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $recordModel->set('mode', 'edit'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $recordModel->set('mode', ''); } $parentEmailId = $request->get('parent_id', null); $attachmentsWithParentEmail = array(); if (!empty($parentEmailId) && !empty($recordId)) { $parentEmailModel = Vtiger_Record_Model::getInstanceById($parentEmailId); $attachmentsWithParentEmail = $parentEmailModel->getAttachmentDetails(); } $existingAttachments = $request->get('attachments', array()); if (empty($recordId)) { if (is_array($existingAttachments)) { foreach ($existingAttachments as $index => $existingAttachInfo) { $existingAttachInfo['tmp_name'] = $existingAttachInfo['name']; $existingAttachments[$index] = $existingAttachInfo; if (array_key_exists('docid', $existingAttachInfo)) { $documentIds[] = $existingAttachInfo['docid']; unset($existingAttachments[$index]); } } } } else { //If it is edit view unset the exising attachments //remove the exising attachments if it is in edit view $attachmentsToUnlink = array(); $documentsToUnlink = array(); foreach ($attachmentsWithParentEmail as $i => $attachInfo) { $found = false; foreach ($existingAttachments as $index => $existingAttachInfo) { if ($attachInfo['fileid'] == $existingAttachInfo['fileid']) { $found = true; break; } } //Means attachment is deleted if (!$found) { if (array_key_exists('docid', $attachInfo)) { $documentsToUnlink[] = $attachInfo['docid']; } else { $attachmentsToUnlink[] = $attachInfo; } } unset($attachmentsWithParentEmail[$i]); } //Make the attachments as empty for edit view since all the attachments will already be there $existingAttachments = array(); if (!empty($documentsToUnlink)) { $recordModel->deleteDocumentLink($documentsToUnlink); } if (!empty($attachmentsToUnlink)) { $recordModel->deleteAttachment($attachmentsToUnlink); } } // This will be used for sending mails to each individual $toMailInfo = $request->get('toemailinfo'); $to = $request->get('to'); if (is_array($to)) { $to = implode(',', $to); } $recordModel->set('description', $request->get('description')); $recordModel->set('subject', $request->get('subject')); $recordModel->set('toMailNamesList', $request->get('toMailNamesList')); $recordModel->set('saved_toid', $to); $recordModel->set('ccmail', $request->get('cc')); $recordModel->set('bccmail', $request->get('bcc')); $recordModel->set('assigned_user_id', $currentUserModel->getId()); $recordModel->set('email_flag', $flag); $recordModel->set('documentids', $documentIds); $recordModel->set('toemailinfo', $toMailInfo); foreach ($toMailInfo as $recordId => $emailValueList) { if ($recordModel->getEntityType($recordId) == 'Users') { $parentIds .= $recordId . '@-1|'; } else { $parentIds .= $recordId . '@1|'; } } $recordModel->set('parent_id', $parentIds); //save_module still depends on the $_REQUEST, need to clean it up $_REQUEST['parent_id'] = $parentIds; $success = false; $viewer = $this->getViewer($request); if ($recordModel->checkUploadSize($documentIds)) { $recordModel->save(); //To Handle existing attachments $current_user = Users_Record_Model::getCurrentUserModel(); $ownerId = $recordModel->get('assigned_user_id'); $date_var = date("Y-m-d H:i:s"); if (is_array($existingAttachments)) { foreach ($existingAttachments as $index => $existingAttachInfo) { $file_name = $existingAttachInfo['attachment']; $path = $existingAttachInfo['path']; $fileId = $existingAttachInfo['fileid']; $oldFileName = $file_name; //SEND PDF mail will not be having file id if (!empty($fileId)) { $oldFileName = $existingAttachInfo['fileid'] . '_' . $file_name; } $oldFilePath = $path . '/' . $oldFileName; $binFile = sanitizeUploadFileName($file_name, $upload_badext); $current_id = $adb->getUniqueID("vtiger_crmentity"); $filename = ltrim(basename(" " . $binFile)); //allowed filename like UTF-8 characters $filetype = $existingAttachInfo['type']; $filesize = $existingAttachInfo['size']; //get the file path inwhich folder we want to upload the file $upload_file_path = decideFilePath(); $newFilePath = $upload_file_path . $current_id . "_" . $binFile; copy($oldFilePath, $newFilePath); $sql1 = "insert into vtiger_crmentity (crmid,smcreatorid,smownerid,setype,description,createdtime,modifiedtime) values(?, ?, ?, ?, ?, ?, ?)"; $params1 = array($current_id, $current_user->getId(), $ownerId, $moduleName . " Attachment", $recordModel->get('description'), $adb->formatDate($date_var, true), $adb->formatDate($date_var, true)); $adb->pquery($sql1, $params1); $sql2 = "insert into vtiger_attachments(attachmentsid, name, description, type, path) values(?, ?, ?, ?, ?)"; $params2 = array($current_id, $filename, $recordModel->get('description'), $filetype, $upload_file_path); $result = $adb->pquery($sql2, $params2); $sql3 = 'insert into vtiger_seattachmentsrel values(?,?)'; $adb->pquery($sql3, array($recordModel->getId(), $current_id)); } } $success = true; if ($flag == 'SENT') { $status = $recordModel->send(); if ($status === true) { // This is needed to set vtiger_email_track table as it is used in email reporting $recordModel->setAccessCountValue(); } else { $success = false; $message = $status; } } } else { $message = vtranslate('LBL_MAX_UPLOAD_SIZE', $moduleName) . ' ' . vtranslate('LBL_EXCEEDED', $moduleName); } $viewer->assign('SUCCESS', $success); $viewer->assign('MESSAGE', $message); $loadRelatedList = $request->get('related_load'); if (!empty($loadRelatedList)) { $viewer->assign('RELATED_LOAD', true); } $viewer->view('SendEmailResult.tpl', $moduleName); }
public function process(Vtiger_Request $request) { $result = Vtiger_Util_Helper::transformUploadedFiles($_FILES, true); $_FILES = $result['imagename']; $moduleModel = Vtiger_Module_Model::getInstance('Users'); if (!$moduleModel->checkMailExist($request->get('email1'), $request->get('record'))) { $recordModel = $this->saveRecord($request); $settingsModuleModel = Settings_Users_Module_Model::getInstance(); $settingsModuleModel->refreshSwitchUsers(); $sharedIds = $request->get('sharedusers'); $sharedType = $request->get('calendarsharedtype'); $currentUserModel = Users_Record_Model::getCurrentUserModel(); $calendarModuleModel = Vtiger_Module_Model::getInstance('Calendar'); $accessibleUsers = $currentUserModel->getAccessibleUsersForModule('Calendar'); if ($sharedType == 'private') { $calendarModuleModel->deleteSharedUsers($currentUserModel->id); } else { if ($sharedType == 'public') { $allUsers = $currentUserModel->getAll(true); $accessibleUsers = array(); foreach ($allUsers as $id => $userModel) { $accessibleUsers[$id] = $id; } $calendarModuleModel->deleteSharedUsers($currentUserModel->id); $calendarModuleModel->insertSharedUsers($currentUserModel->id, array_keys($accessibleUsers)); } else { if (!empty($sharedIds)) { $calendarModuleModel->deleteSharedUsers($currentUserModel->id); $calendarModuleModel->insertSharedUsers($currentUserModel->id, $sharedIds); } else { $calendarModuleModel->deleteSharedUsers($currentUserModel->id); } } } if ($request->get('relationOperation')) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($request->get('sourceRecord'), $request->get('sourceModule')); $loadUrl = $parentRecordModel->getDetailViewUrl(); } else { if ($request->get('isPreference')) { $loadUrl = $recordModel->getPreferenceDetailViewUrl(); } else { $loadUrl = $recordModel->getDetailViewUrl(); } } } else { echo vtranslate('USER_MAIL_EXIST', 'Users'); header('Location: index.php?module=Users&parent=Settings&view=Edit'); } header("Location: {$loadUrl}"); }
public function process(Vtiger_Request $request) { $result = Vtiger_Util_Helper::transformUploadedFiles($_FILES, true); $_FILES = $result['imagename']; parent::process($request); }