getModule(); if ('edit' == $this->getOperationArg($request)) { $model = $this->getMailBoxModel(); $connector = $this->getConnector(); $serverName = $model->serverName(); if ($connector->isConnected()) { $folders = $connector->folders(); } $viewer = $this->getViewer($request); $viewer->assign('MODULE', $module); $viewer->assign('MAILBOX', $model); $viewer->assign('SERVERNAME', $serverName); $viewer->assign('FOLDERS', $folders); $response->setResult($viewer->view('SettingsEdit.tpl', $module, true)); } else if ('save' == $this->getOperationArg($request)) { $model = $this->getMailBoxModel(); $model->setServer($request->get('_mbox_server')); $model->setUsername($request->get('_mbox_user')); // MailManager_Request->get($key) is give urldecoded value which is replacing + with space $model->setPassword($request->getRaw('_mbox_pwd')); $model->setProtocol($request->get('_mbox_protocol', 'IMAP4')); $model->setSSLType($request->get('_mbox_ssltype', 'ssl')); $model->setCertValidate($request->get('_mbox_certvalidate', 'novalidate-cert')); $model->setRefreshTimeOut($request->get('_mbox_refresh_timeout')); $connector = $this->getConnector(); $sentFolder = $request->get('_mbox_sent_folder'); //SalesPlatform.ru begin $trashFolder = $request->get('_mbox_trash_folder'); //SalesPlatform.ru end //SalesPlatform.ru begin if($connector->isConnected()) { $folderInstaces = $connector->folders(); /* Default folder if no match to sent folder */ $firstFolderInstance = current($folderInstaces); $sentFolder = $firstFolderInstance->name(); /* Lookup folder which match to name */ $mboxFolder = strtolower($request->get('_mbox_sent_folder')); $tboxFolder = strtolower($request->get('_mbox_trash_folder')); foreach($folderInstaces as $folder) { if(mb_strtolower($folder->name()) == $mboxFolder) { $sentFolder = $folder->name(); } if(mb_strtolower($folder->name()) == $tboxFolder) { $trashFolder = $folder->name(); } } } //if($connector->isConnected() && empty($sentFolder)) { // $folderInstaces = $connector->folders(); // foreach($folderInstaces as $folder) { // if (strpos(strtolower($folder->name()), 'sent') !== false) { // $sentFolder = $folder->name(); // } // } //} //SalesPlatform.ru end $model->setFolder($sentFolder); //SalesPlatform.ru begin $model->setTrash($trashFolder); //SalesPlatform.ru end if ($connector->isConnected()) { $model->save(); $request->set('_operation', 'mainui'); return parent::process($request); } else if($connector->hasError()) { $error = $connector->lastError(); $response->isJSON(true); $response->setError(101, $error); } } else if ('remove' == $this->getOperationArg($request)) { $model = $this->getMailBoxModel(); $model->delete(); $response->isJSON(true); $response->setResult(array('status' => true)); } else if ('detail' == $this->getOperationArg($request)) { $model = $this->getMailBoxModel(); $serverName = $model->serverName(); $viewer = $this->getViewer($request); $viewer->assign('MODULE', $module); $viewer->assign('MAILBOX', $model); $viewer->assign('SERVERNAME', $serverName); $response->setResult($viewer->view('SettingsDetail.tpl', $module, true)); } return $response; } public function validateRequest(Vtiger_Request $request) { return $request->validateWriteAccess(); } } ?>