public function process(Vtiger_Request $request) { //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) { // SalesPlatform.ru begin require_once 'includes/SalesPlatform/NetIDNA/idna_convert.class.php'; // SalesPlatform.ru end $outgoingServerSettingsModel = Settings_Vtiger_Systems_Model::getInstanceFromServerType('email', 'OutgoingServer'); $loadDefaultSettings = $request->get('default'); if ($loadDefaultSettings == "true") { $outgoingServerSettingsModel->loadDefaultValues(); } else { $outgoingServerSettingsModel->setData($request->getAll()); } $response = new Vtiger_Response(); // SalesPlatform.ru begin $idn = new idna_convert(); $server_username = $idn->encode(vtlib_purify($request->get('server'))); $from_email_field = $idn->encode(vtlib_purify($request->get('from_email_field'))); $request->set('server_username', $server_username); $request->set('from_email_field', $from_email_field); // SalesPlatform.ru end try { $id = $outgoingServerSettingsModel->save($request); $data = $outgoingServerSettingsModel->getData(); $response->setResult($data); } catch (Exception $e) { $response->setError($e->getCode(), $e->getMessage()); } $response->emit(); }
public function process(Vtiger_Request $request) { ${"GLOBALS"}["ekosczsy"] = "tabid"; ${${"GLOBALS"}["ekosczsy"]} = getTabId($request->get("workflowModule")); ${"GLOBALS"}["mhuirymtoy"] = "tabid"; ${${"GLOBALS"}["hvamuhbnnwu"]} = \PearDatabase::getInstance(); if ($request->get("hidden") == true) { ob_start(); } if (!empty(${${"GLOBALS"}["mhuirymtoy"]})) { ${"GLOBALS"}["outajbzyo"] = "result"; ${${"GLOBALS"}["rnhwfqjyx"]} = "SELECT linkid FROM vtiger_links WHERE linktype = 'DETAILVIEWSIDEBARWIDGET' AND linklabel = 'Workflows' AND tabid = " . ${${"GLOBALS"}["bxwgaby"]}; ${${"GLOBALS"}["dsrfsmvy"]} = $adb->query(${${"GLOBALS"}["rnhwfqjyx"]}); ${${"GLOBALS"}["xdyqgnxwn"]} = $request->get("MODE"); $xyxnkgw = "mode"; if (${${"GLOBALS"}["xdyqgnxwn"]} == "ADD" && $adb->num_rows(${${"GLOBALS"}["outajbzyo"]}) > 1) { ${"GLOBALS"}["cnubqpsfrtf"] = "tabid"; $adb->query("DELETE FROM vtiger_links WHERE (linktype = 'DETAILVIEWSIDEBARWIDGET' OR linktype = 'LISTVIEWSIDEBARWIDGET') AND linklabel = 'Workflows' AND tabid = " . ${${"GLOBALS"}["bxwgaby"]}, true); ${${"GLOBALS"}["rnhwfqjyx"]} = "SELECT linkid FROM vtiger_links WHERE linktype = 'DETAILVIEWSIDEBARWIDGET' AND linklabel = 'Workflows' AND tabid = " . ${${"GLOBALS"}["cnubqpsfrtf"]}; ${${"GLOBALS"}["dsrfsmvy"]} = $adb->query(${${"GLOBALS"}["rnhwfqjyx"]}); } if (${${"GLOBALS"}["xdyqgnxwn"]} == "DEL" || empty(${$xyxnkgw}) && $adb->num_rows(${${"GLOBALS"}["dsrfsmvy"]}) > 0) { ${"GLOBALS"}["jywgricc"] = "tabid"; $lxcddedp = "mode"; ${$lxcddedp} = "DEL"; $adb->query("DELETE FROM vtiger_links WHERE (linktype = 'DETAILVIEWSIDEBARWIDGET' OR linktype = 'LISTVIEWSIDEBARWIDGET') AND linklabel = 'Workflows' AND tabid = " . ${${"GLOBALS"}["jywgricc"]}, true); echo getTranslatedString("LBL_ACTIVATE_SIDEBAR", "Settings:Workflow2"); } elseif ($adb->num_rows(${${"GLOBALS"}["dsrfsmvy"]}) == 0) { ${"GLOBALS"}["ocotbv"] = "mode"; ${${"GLOBALS"}["ocotbv"]} = "ADD"; ${"GLOBALS"}["hdlxhrdrllur"] = "linkid"; ${${"GLOBALS"}["rzgmacoc"]} = $adb->getUniqueID("vtiger_links"); $adb->query("INSERT INTO vtiger_links SET linkid = '" . ${${"GLOBALS"}["rzgmacoc"]} . "',linktype = 'DETAILVIEWSIDEBARWIDGET', linklabel = 'Workflows', tabid = " . ${${"GLOBALS"}["bxwgaby"]} . ",linkurl='" . "module=Workflow2&view=SidebarWidget" . "'", true); ${${"GLOBALS"}["rzgmacoc"]} = $adb->getUniqueID("vtiger_links"); $qcahtlck = "tabid"; $adb->query("INSERT INTO vtiger_links SET linkid = '" . ${${"GLOBALS"}["hdlxhrdrllur"]} . "',linktype = 'LISTVIEWSIDEBARWIDGET', linklabel = 'Workflows', tabid = " . ${$qcahtlck} . ",linkurl='" . "module=Workflow2&src_module=" . $request->get("workflowModule") . "&view=SidebarListWidget" . "'", true); echo getTranslatedString("LBL_DEACTIVATE_SIDEBAR", "Settings:Workflow2"); } } if ($request->get("hidden") == true) { ob_end_clean(); } if ($request->get("workflowModule") == "Calendar") { ${"GLOBALS"}["jrpyqoyvdoz"] = "request2"; ${${"GLOBALS"}["jrpyqoyvdoz"]} = ${${"GLOBALS"}["ognxjavta"]}; $request->set("MODE", ${${"GLOBALS"}["xdyqgnxwn"]}); $request->set("workflowModule", "Events"); $request->set("hidden", true); $this->process(${${"GLOBALS"}["ognxjavta"]}); } }
public function process(Vtiger_Request $request) { global $log, $adb, $moduleName; $currentUserModel = Users_Record_Model::getCurrentUserModel(); $request->set('assigned_user_id', $currentUserModel->getId()); $request->set('userid', $currentUserModel->getId()); $recordModel = $this->saveRecord($request); $fieldModelList = $recordModel->getModule()->getFields(); $result = array(); foreach ($fieldModelList as $fieldName => $fieldModel) { $fieldValue = $recordModel->get($fieldName); $result[$fieldName] = array('value' => $fieldValue, 'display_value' => $fieldModel->getDisplayValue($fieldValue)); } $result['id'] = $recordModel->getId(); $result['_recordLabel'] = $recordModel->getName(); $result['_recordId'] = $recordModel->getId(); //modify by jmangarret 11jun2015 Enviar email $idCaso = $request->get("related_to"); $userid = $request->get("userid"); $comment = $request->get("commentcontent"); $query = $adb->pquery("select smcreatorid, smownerid from vtiger_crmentity where setype='HelpDesk' and crmid = ? ", array($idCaso)); $row = $adb->fetchByAssoc($query); $idowner = $row['smownerid']; $idcreator = $row['smcreatorid']; if ($userid == $idowner) { $userid = $idcreator; } else { $userid = $idowner; } $query = $adb->pquery("select * from vtiger_troubletickets where ticketid = ? ", array($idCaso)); $row = $adb->fetchByAssoc($query); $title = $row['title']; //Para Validar si es un comentario de un caso $ticket = $row['ticket_no']; //Para Validar si es un comentario de un caso if ($title && $idowner != $idcreator) { $query = $adb->pquery("select * from vtiger_users where id = ? ", array($userid)); $row = $adb->fetchByAssoc($query); $email = $row["email1"]; $nombre = $row["first_name"]; $asunto = "Informacion"; $mensaje = " \n\t\t\t\t<html> \n\t\t\t\t<head> \n\t\t\t\t<title>Info - Tu Agencia 24</title> \n\t\t\t\t</head> \n\t\t\t\t<body> \n\t\t\t\t<p>" . $nombre . ",</p>\n\t\t\t\t<p>El siguiente caso ha sido comentado:</p>\n\t\t\t\t<p><b>Nro. Ticket: </b>" . $ticket . "</p>\n\t\t\t\t<p><b>Caso: </b>" . $title . "</p>\n\t\t\t\t<p><b>Comentario: </b>" . $comment . "</p>\n\t\t\t\t<BR><BR><BR>\n\t\t\t\t<i>\n\t\t\t\tGracias,\t\t\n\t\t\t\t<p>Equipo TuAgencia24.com</p>\n\t\t\t\t</i>\n\t\t\t\t</body> \n\t\t\t\t</html> "; enviarEmail($email, $asunto, $mensaje); } //Fin enviar email $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); $response->setResult($result); $response->emit(); }
public function process(Vtiger_Request $request) { $recordId = $request->get('record'); $scannerId = $request->get('scannerId'); $action = $request->get('action1'); $request->set('action', $action); $qualifiedModuleName = $request->getModule(false); if ($recordId) { $recordModel = Settings_MailConverter_RuleRecord_Model::getInstanceById($recordId); } else { $recordModel = Settings_MailConverter_RuleRecord_Model::getCleanInstance($scannerId); } $recordModel->assignedTo = $request->get('assignedTo'); $recordModel->cc = $request->get('cc'); $recordModel->bcc = $request->get('bcc'); $fieldsList = $recordModel->getFields(); foreach ($fieldsList as $fieldName) { $recordModel->set($fieldName, $request->get($fieldName)); } $recordModel->set('newAction', $request->get('action')); $ruleId = $recordModel->save(); $response = new Vtiger_Response(); $response->setResult(array('message' => vtranslate('LBL_SAVED_SUCCESSFULLY', $qualifiedModuleName), 'id' => $ruleId, 'scannerId' => $scannerId)); $response->emit(); }
public function process(Vtiger_Request $request) { //the new values are added to $_REQUEST for Ajax Save, are removing the Tax details depend on the 'ajxaction' value $_REQUEST['ajxaction'] = 'DETAILVIEW'; $request->set('ajaxaction', 'DETAILVIEW'); parent::process($request); }
public function preProcess(Vtiger_Request $request) { date_default_timezone_set('Europe/London'); // to overcome the pre configuration settings // Added to redirect to default module if already installed $request->set('module', 'Install'); $configFileName = 'config/config.inc.php'; if (is_file($configFileName) && filesize($configFileName) > 0) { $defaultModule = vglobal('default_module'); $defaultModuleInstance = Vtiger_Module_Model::getInstance($defaultModule); $defaultView = $defaultModuleInstance->getDefaultViewName(); header('Location:../index.php?module=' . $defaultModule . '&view=' . $defaultView); exit; } $request = $this->setLanguage($request); $_SESSION['default_language'] = $defaultLanguage = $request->get('lang') ? $request->get('lang') : 'en_us'; vglobal('default_language', $defaultLanguage); $viewer = new Vtiger_Viewer(); $viewer->setTemplateDir('install/tpl/'); $viewer->assign('LANGUAGE_STRINGS', $this->getJSLanguageStrings($request)); $viewer->assign('HTMLLANG', Vtiger_Language_Handler::getShortLanguageName()); define('INSTALLATION_MODE', true); define('INSTALLATION_MODE_DEBUG', $this->debug); echo $viewer->fetch('InstallPreProcess.tpl'); }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { //src_module value is added just to stop showing inactive services $request->set('src_module', $request->getModule()); parent::initializeListViewContents($request, $viewer); $viewer->assign('MODULE', $request->getModule()); //$viewer->assign('GETURL', 'getTaxesURL'); $viewer->assign('VIEW', 'CalculationsPopup'); }
public function process(Vtiger_Request $request) { //the new values are added to $_REQUEST for MassSave, are removing the Tax details depend on the 'action' value $_REQUEST['action'] = 'MassEditSave'; $request->set('action', 'MassEditSave'); //the new values are added to $_REQUEST for MassSave, the unit price depend on the 'mass_edit_check' value $_REQUEST['unit_price_mass_edit_check'] = 'off'; parent::process($request); }
public function process(Vtiger_Request $request) { $recordId = $request->get('record'); $currentUserModel = Users_Record_Model::getCurrentUserModel(); $request->set('assigned_user_id', $currentUserModel->getId()); $request->set('userid', $currentUserModel->getId()); $this->saveRecord($request); $recordModel = ModComments_Record_Model::getInstanceById($recordId); $result['success'] = true; $result['reasontoedit'] = $recordModel->get('reasontoedit'); $result['commentcontent'] = $recordModel->get('commentcontent'); $result['modifiedtime'] = Vtiger_Util_Helper::formatDateDiffInStrings($recordModel->get('modifiedtime')); $result['modifiedtimetitle'] = Vtiger_Util_Helper::formatDateTimeIntoDayString($recordModel->get('modifiedtime')); $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); $response->setResult($result); $response->emit(); }
public function process(Vtiger_Request $request) { //Restrict to store indirect relationship from Potentials to Contacts $sourceModule = $request->get('sourceModule'); $relationOperation = $request->get('relationOperation'); if ($relationOperation && $sourceModule === 'Contacts') { $request->set('relationOperation', false); } parent::process($request); }
public function process(Vtiger_Request $request) { $currentUserModel = Users_Record_Model::getCurrentUserModel(); $request->set('assigned_user_id', $currentUserModel->getId()); $request->set('userid', $currentUserModel->getId()); $recordModel = $this->saveRecord($request); $fieldModelList = $recordModel->getModule()->getFields(); $result = array(); foreach ($fieldModelList as $fieldName => $fieldModel) { $fieldValue = $recordModel->get($fieldName); $result[$fieldName] = array('value' => $fieldValue, 'display_value' => $fieldModel->getDisplayValue($fieldValue)); } $result['id'] = $recordModel->getId(); $result['_recordLabel'] = $recordModel->getName(); $result['_recordId'] = $recordModel->getId(); $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); $response->setResult($result); $response->emit(); }
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) { global $current_user; ${"GLOBALS"}["yiresb"] = "active"; ${"GLOBALS"}["knunfcsjumu"] = "workflowID"; $kzjdunyh = "sql"; ${"GLOBALS"}["jjsjrqhhjneu"] = "workflowID"; ${${"GLOBALS"}["opwcyadpqbwr"]} = PearDatabase::getInstance(); ${${"GLOBALS"}["jjsjrqhhjneu"]} = intval($request->get("workflow")); ${${"GLOBALS"}["yiresb"]} = intval($request->get("value")); ${${"GLOBALS"}["qiklrvjvw"]} = "UPDATE vtiger_wf_settings SET `active` = ? WHERE id = ?"; $adb->pquery(${$kzjdunyh}, array(${${"GLOBALS"}["ljpwhfqap"]}, intval(${${"GLOBALS"}["knunfcsjumu"]}))); ${"GLOBALS"}["vztwzy"] = "active"; if (${${"GLOBALS"}["ljpwhfqap"]} == "1") { $tvsadaoea = "result"; ${${"GLOBALS"}["qiklrvjvw"]} = "SELECT module_name FROM vtiger_wf_settings WHERE id = ?"; $rdlqurtccaf = "request"; ${"GLOBALS"}["ovgycf"] = "sidebar"; $ncascfhhoju = "result"; ${$tvsadaoea} = $adb->pquery(${${"GLOBALS"}["qiklrvjvw"]}, array(intval(${${"GLOBALS"}["yhvtuimi"]}))); ${${"GLOBALS"}["redluzuev"]} = $adb->fetchByAssoc(${$ncascfhhoju}); $request->set("workflowModule", ${${"GLOBALS"}["redluzuev"]}["module_name"]); $request->set("hidden", true); $request->set("MODE", "ADD"); ${${"GLOBALS"}["ovgycf"]} = new Settings_Workflow2_SidebarToggle_Action(); $sidebar->process(${$rdlqurtccaf}); } if (${${"GLOBALS"}["vztwzy"]} != "1") { ${"GLOBALS"}["lofseigxsa"] = "workflowObj"; ${"GLOBALS"}["ncfqhsgvlvp"] = "runningCounter"; ${${"GLOBALS"}["lofseigxsa"]} = new \Workflow\Main(${${"GLOBALS"}["yhvtuimi"]}); ${${"GLOBALS"}["ncfqhsgvlvp"]} = $workflowObj->countRunningInstances(); if (${${"GLOBALS"}["noevuiecun"]} > 0) { echo json_encode(array("show_warning" => 1)); exit; } } echo json_encode(array("show_warning" => 0)); exit; }
public function process(Vtiger_Request $request) { $recordId = $request->get('record'); $currentUserModel = Users_Record_Model::getCurrentUserModel(); $request->set('assigned_user_id', $currentUserModel->getId()); $request->set('userid', $currentUserModel->getId()); $recordModel = $this->saveRecord($request); $responseFieldsToSent = array('reasontoedit', 'commentcontent'); $fieldModelList = $recordModel->getModule()->getFields(); foreach ($responseFieldsToSent as $fieldName) { $fieldModel = $fieldModelList[$fieldName]; $fieldValue = $recordModel->get($fieldName); $result[$fieldName] = $fieldModel->getDisplayValue(Vtiger_Util_Helper::toSafeHTML($fieldValue)); } $result['success'] = true; $result['modifiedtime'] = Vtiger_Util_Helper::formatDateDiffInStrings($recordModel->get('modifiedtime')); $result['modifiedtimetitle'] = Vtiger_Util_Helper::formatDateTimeIntoDayString($recordModel->get('modifiedtime')); $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); $response->setResult($result); $response->emit(); }
public function process(Vtiger_Request $request) { global $root_directory; $relatedModule = $request->get('relatedModule'); $relatedView = $request->get('relatedView'); include_once "modules/Vtiger/views/{$relatedView}.php"; if (file_exists($root_directory . "modules/{$relatedModule}/views/{$relatedView}.php")) { include_once "modules/{$relatedModule}/views/{$relatedView}.php"; $viewName = ucwords($relatedModule) . "_" . ucwords($relatedView) . "_View"; } else { $viewName = "Vtiger_" . ucwords($relatedView) . "_View"; } $viewInstance = new $viewName(); $request->set('module', $relatedModule); $request->set('view', $relatedView); $headerScriptInstances = $viewInstance->getHeaderScripts($request); $jsList = array(); foreach ($headerScriptInstances as $key => $jsModel) { $jsList[] = $jsModel->getSrc(); } $response = new Vtiger_Response(); $response->setResult($jsList); $response->emit(); }
public function process(Vtiger_Request $request) { $user = Users_Record_Model::getCurrentUserModel(); $allDay = $request->get('allday'); if ('on' == $allDay) { $request->set('time_start', NULL); $request->set('time_end', NULL); } $recordModel = $this->saveRecord($request); $fieldModelList = $recordModel->getModule()->getFields(); $result = array(); foreach ($fieldModelList as $fieldName => $fieldModel) { $fieldValue = Vtiger_Util_Helper::toSafeHTML($recordModel->get($fieldName)); $result[$fieldName] = array(); if ($fieldName == 'date_start') { $timeStart = $recordModel->get('time_start'); $dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeStart); $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue(); $dateTimeComponents = explode(' ', $userDateTimeString); $dateComponent = $dateTimeComponents[0]; //Conveting the date format in to Y-m-d . since full calendar expects in the same format $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format')); $result[$fieldName]['value'] = $fieldValue; $result[$fieldName]['display_value'] = $dataBaseDateFormatedString; } else { if ($fieldName == 'due_date') { $timeEnd = $recordModel->get('time_end'); $dateTimeFieldInstance = new DateTimeField($fieldValue . ' ' . $timeEnd); $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue(); $dateTimeComponents = explode(' ', $userDateTimeString); $dateComponent = $dateTimeComponents[0]; //Conveting the date format in to Y-m-d . since full calendar expects in the same format $dataBaseDateFormatedString = DateTimeField::__convertToDBFormat($dateComponent, $user->get('date_format')); $result[$fieldName]['value'] = $fieldValue; $result[$fieldName]['display_value'] = $dataBaseDateFormatedString; } else { if ($fieldName == 'time_end') { $dueDate = $recordModel->get('due_date'); $dateTimeFieldInstance = new DateTimeField($dueDate . ' ' . $fieldValue); $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue(); $dateTimeComponents = explode(' ', $userDateTimeString); $result[$fieldName]['value'] = $fieldValue; $result[$fieldName]['display_value'] = $dateTimeComponents[1]; } else { if ($fieldName == 'time_start') { $startDate = $recordModel->get('date_start'); $dateTimeFieldInstance = new DateTimeField($startDate . ' ' . $fieldValue); $userDateTimeString = $dateTimeFieldInstance->getDisplayDateTimeValue(); $dateTimeComponents = explode(' ', $userDateTimeString); $result[$fieldName]['value'] = $fieldValue; $result[$fieldName]['display_value'] = $dateTimeComponents[1]; } else { if ('time_start' != $fieldName && 'time_end' != $fieldName && 'duration_hours' != $fieldName) { $result[$fieldName]['value'] = $fieldValue; $result[$fieldName]['display_value'] = decode_html($fieldModel->getDisplayValue($fieldValue)); } else { $result[$fieldName]['value'] = $result[$fieldName]['display_value'] = $fieldValue; } } } } } } $result['_recordLabel'] = $recordModel->getName(); $result['_recordId'] = $recordModel->getId(); // Handled to save follow up event $followupMode = $request->get('followup'); if ($followupMode == 'on') { //Start Date and Time values $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('followup_time_start')); $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('followup_date_start') . " " . $startTime); list($startDate, $startTime) = explode(' ', $startDateTime); $subject = $request->get('subject'); if ($startTime != '' && $startDate != '') { $recordModel->set('eventstatus', 'Planned'); $recordModel->set('subject', '[Followup] ' . $subject); $recordModel->set('date_start', $startDate); $recordModel->set('time_start', $startTime); $currentUser = Users_Record_Model::getCurrentUserModel(); $activityType = $recordModel->get('activitytype'); if ($activityType == 'Call') { $minutes = $currentUser->get('callduration'); } else { $minutes = $currentUser->get('othereventduration'); } $dueDateTime = date('Y-m-d H:i:s', strtotime("{$startDateTime}+{$minutes} minutes")); list($endDate, $endTime) = explode(' ', $dueDateTime); $recordModel->set('due_date', $endDate); $recordModel->set('time_end', $endTime); $recordModel->set('mode', 'create'); $recordModel->save(); } } $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); $response->setResult($result); $response->emit(); }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { //src_module value is added to just to stop showing inactive products $request->set('src_module', $request->getModule()); $moduleName = $this->getModule($request); $cvId = $request->get('cvid'); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $sourceModule = $request->get('src_module'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $currencyId = $request->get('currency_id'); $potentialId = $request->get('potentialid'); $searchParams = $request->get('search_params'); //To handle special operation when selecting record from Popup $getUrl = $request->get('get_url'); //Check whether the request is in multi select mode $multiSelectMode = $request->get('multi_select'); if (empty($multiSelectMode)) { $multiSelectMode = false; } if (empty($cvId)) { $cvId = '0'; } if (empty($pageNumber)) { $pageNumber = '1'; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); if (empty($orderBy) && empty($sortOrder)) { $moduleInstance = CRMEntity::getInstance($moduleName); $orderBy = $moduleInstance->default_order_by; $sortOrder = $moduleInstance->default_sort_order; } if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } $searchParmams = $request->get('search_params'); if (empty($searchParmams)) { $searchParmams = array(); } $transformedSearchParams = Vtiger_Util_Helper::transferListSearchParamsToFilterCondition($searchParmams, $moduleModel); $listViewModel->set('search_params', $transformedSearchParams); //To make smarty to get the details easily accesible foreach ($searchParmams as $fieldListGroup) { foreach ($fieldListGroup as $fieldSearchInfo) { $fieldSearchInfo['searchValue'] = $fieldSearchInfo[2]; $fieldSearchInfo['fieldName'] = $fieldName = $fieldSearchInfo[0]; $searchParmams[$fieldName] = $fieldSearchInfo; } } if (Settings_SalesProcesses_Module_Model::checkRelatedToPotentialsLimit() && Settings_SalesProcesses_Module_Model::isLimitForModule($sourceModule)) { if ($potentialId == '') { $potentialId = -1; } $listViewModel->set('potential_id', $potentialId); $viewer->assign('INVENTORY_LIMITED_FROM_POTENTIALS', true); } $productModel = Vtiger_Module_Model::getInstance('Products'); if (!$this->listViewHeaders) { $this->listViewHeaders = $listViewModel->getListViewHeaders(); } if (!$this->listViewEntries && $productModel->isActive()) { $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } if (!$productModel->isActive()) { $this->listViewEntries = array(); $viewer->assign('LBL_MODULE_DISABLED', true); } foreach ($this->listViewEntries as $key => $listViewEntry) { $productId = $listViewEntry->getId(); $subProducts = $listViewModel->getSubProducts($productId); if ($subProducts) { $listViewEntry->set('subProducts', $subProducts); } } $noOfEntries = count($this->listViewEntries); if (empty($sortOrder)) { $sortOrder = "ASC"; } if ($sortOrder == "ASC") { $nextSortOrder = "DESC"; $sortImage = "downArrowSmall.png"; } else { $nextSortOrder = "ASC"; $sortImage = "upArrowSmall.png"; } $viewer->assign('MODULE', $moduleName); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('RELATED_MODULE', $moduleName); $viewer->assign('SOURCE_MODULE', $sourceModule); $viewer->assign('SOURCE_FIELD', $sourceField); $viewer->assign('SOURCE_RECORD', $sourceRecord); $viewer->assign('SEARCH_KEY', $searchKey); $viewer->assign('SEARCH_VALUE', $searchValue); $viewer->assign('ORDER_BY', $orderBy); $viewer->assign('SORT_ORDER', $sortOrder); $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder); $viewer->assign('SORT_IMAGE', $sortImage); $viewer->assign('GETURL', $getUrl); $viewer->assign('CURRENCY_ID', $currencyId); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); $viewer->assign('POPUPTYPE', vglobal('popupType')); if (AppConfig::performance('LISTVIEW_COMPUTE_PAGE_COUNT')) { if (!$this->listViewCount) { $this->listViewCount = $listViewModel->getListViewCount(); } $totalCount = $this->listViewCount; $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if ($pageCount == 0) { $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('LISTVIEW_COUNT', $totalCount); } $viewer->assign('MULTI_SELECT', $multiSelectMode); $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('TARGET_MODULE', $moduleName); $viewer->assign('MODULE', $request->getModule()); $viewer->assign('GETURL', 'getTaxesURL'); $viewer->assign('VIEW', 'ProductsPopup'); $viewer->assign('SEARCH_DETAILS', $searchParmams); }
public function process(Vtiger_Request $request) { $db = PearDatabase::getInstance(); $log = vglobal('log'); $log->debug('Starting Quick Edit OSSPasswords'); // czy to 'password'???? $isPassword = $request->get('field') == 'password' ? true : false; // check if password was added thrue related module view $isRelatedPassword = $request->get('password') != '' && $request->get('password') != '**********' ? true : false; // check if encryption is enabled $config == false; if (file_exists('modules/OSSPasswords/config.ini.php')) { $config = parse_ini_file('modules/OSSPasswords/config.ini.php'); } // force updateing password if ($isPassword) { $recordId = $request->get('record'); $properPassword = $isPassword ? $request->get('value') : '**********'; $log->debug('recordid: ' . $recordId . ' properpass:'******'**********') == 0) { $log->debug('Hidden password...'); if ($config) { // when encryption is on $log->debug('Get encrypted password.'); $sql = "SELECT AES_DECRYPT(`password`, '" . $config['key'] . "') AS pass FROM `vtiger_osspasswords` WHERE `osspasswordsid` = ?;"; $result = $db->pquery($sql, array($recordId), true); $properPassword = $db->query_result($result, 0, 'pass'); } else { // encryption mode is off $log->debug('Get plain text password.'); $sql = "SELECT `password` AS pass FROM `vtiger_osspasswords` WHERE `osspasswordsid` = ?;"; $result = $db->pquery($sql, array($recordId), true); $properPassword = $db->query_result($result, 0, 'pass'); $log->debug('Plain text pass: '******'value', $properPassword); } $recordModel = $this->saveRecord($request); // apply encryption if encryption mode is on if ($isPassword && $config) { $log->debug('Encrypt new password: '******'key'], $recordId), true); } else { if ($isRelatedPassword && $config) { $record = $recordModel->getId(); $properPassword = $request->get('password'); $log->debug('Encrypt new related module password: '******'key'], $record), true); } } $fieldModelList = $recordModel->getModule()->getFields(); $result = array(); foreach ($fieldModelList as $fieldName => $fieldModel) { $recordFieldValue = $recordModel->get($fieldName); if (is_array($recordFieldValue) && $fieldModel->getFieldDataType() == 'multipicklist') { $recordFieldValue = implode(' |##| ', $recordFieldValue); } $fieldValue = $displayValue = Vtiger_Util_Helper::toSafeHTML($recordFieldValue); if ($fieldModel->getFieldDataType() !== 'currency' && $fieldModel->getFieldDataType() !== 'datetime' && $fieldModel->getFieldDataType() !== 'time' && $fieldModel->getFieldDataType() !== 'date') { $displayValue = $fieldModel->getDisplayValue($fieldValue, $recordModel->getId()); } $result[$fieldName] = array('value' => $fieldValue, 'display_value' => $displayValue); } // Handling salutation type if ($request->get('field') === 'firstname' && in_array($request->getModule(), array('Contacts', 'Leads'))) { $salutationType = $recordModel->getDisplayValue('salutationtype'); $firstNameDetails = $result['firstname']; $firstNameDetails['display_value'] = $salutationType . " " . $firstNameDetails['display_value']; if ($salutationType != '--None--') { $result['firstname'] = $firstNameDetails; } } $result['_recordLabel'] = $recordModel->getName(); $result['_recordId'] = $recordModel->getId(); $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); $response->setResult($result); $response->emit(); }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { $request->set('src_module', $request->getModule()); // $moduleName = $this->getModule($request); $cvId = $request->get('cvid'); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $sourceModule = $request->get('src_module'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $currencyId = $request->get('currency_id'); $relatedParentModule = $request->get('related_parent_module'); $relatedParentId = $request->get('related_parent_id'); $potentialId = $request->get('potentialid'); //To handle special operation when selecting record from Popup $getUrl = $request->get('get_url'); //Check whether the request is in multi select mode $multiSelectMode = $request->get('multi_select'); if (empty($multiSelectMode)) { $multiSelectMode = false; } if (empty($cvId)) { $cvId = '0'; } if (empty($pageNumber)) { $pageNumber = '1'; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); $isRecordExists = Vtiger_Util_Helper::checkRecordExistance($relatedParentId); if ($isRecordExists) { $relatedParentModule = ''; $relatedParentId = ''; } else { if ($isRecordExists === NULL) { $relatedParentModule = ''; $relatedParentId = ''; } } if (!empty($relatedParentModule) && !empty($relatedParentId)) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($relatedParentId, $relatedParentModule); $listViewModel = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $moduleName, $label); } else { $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule); } if (empty($orderBy) && empty($sortOrder)) { $moduleInstance = CRMEntity::getInstance($moduleName); $orderBy = $moduleInstance->default_order_by; $sortOrder = $moduleInstance->default_sort_order; } if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } if (!empty($potentialId) && vglobal('inventory_popup_limited_from_potentials')) { $listViewModel->set('potential_id', $potentialId); $viewer->assign('INVENTORY_LIMITED_FROM_POTENTIALS', true); } if (!empty($relatedParentModule) && !empty($relatedParentId)) { $this->listViewHeaders = $listViewModel->getHeaders(); $models = $listViewModel->getEntries($pagingModel); $noOfEntries = count($models); foreach ($models as $recordId => $recordModel) { foreach ($this->listViewHeaders as $fieldName => $fieldModel) { $recordModel->set($fieldName, $recordModel->getDisplayValue($fieldName)); } $models[$recordId] = $recordModel; } $this->listViewEntries = $models; if (count($this->listViewEntries) > 0) { $parent_related_records = true; } } else { $this->listViewHeaders = $listViewModel->getListViewHeaders(); $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } // If there are no related records with parent module then, we should show all the records if (!$parent_related_records && !empty($relatedParentModule) && !empty($relatedParentId)) { $relatedParentModule = null; $relatedParentId = null; $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName, $sourceModule); if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } $this->listViewHeaders = $listViewModel->getListViewHeaders(); $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } // End $noOfEntries = count($this->listViewEntries); if (empty($sortOrder)) { $sortOrder = "ASC"; } if ($sortOrder == "ASC") { $nextSortOrder = "DESC"; $sortImage = "downArrowSmall.png"; } else { $nextSortOrder = "ASC"; $sortImage = "upArrowSmall.png"; } $viewer->assign('MODULE', $request->getModule()); // $viewer->assign('RELATED_MODULE', $moduleName); $viewer->assign('MODULE_NAME', $moduleName); $viewer->assign('SOURCE_MODULE', $sourceModule); $viewer->assign('SOURCE_FIELD', $sourceField); $viewer->assign('SOURCE_RECORD', $sourceRecord); $viewer->assign('RELATED_PARENT_MODULE', $relatedParentModule); $viewer->assign('RELATED_PARENT_ID', $relatedParentId); $viewer->assign('SEARCH_KEY', $searchKey); $viewer->assign('SEARCH_VALUE', $searchValue); $viewer->assign('ORDER_BY', $orderBy); $viewer->assign('SORT_ORDER', $sortOrder); $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder); $viewer->assign('SORT_IMAGE', $sortImage); $viewer->assign('GETURL', 'getTaxesURL'); // $viewer->assign('CURRENCY_ID', $currencyId); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) { if (!$this->listViewCount) { $this->listViewCount = $listViewModel->getListViewCount(); } $totalCount = $this->listViewCount; $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if ($pageCount == 0) { $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('LISTVIEW_COUNT', $totalCount); } $viewer->assign('MULTI_SELECT', $multiSelectMode); $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('VIEW', 'ServicesPopup'); }
function process(Vtiger_Request $request) { $Vtiger_Utils_Log = true; include_once 'vtlib/Vtiger/Module.php'; $adb = PearDatabase::getInstance(); $module = Vtiger_Module::getInstance('PDFMaker'); if ($module) { $PDFMakerModel = new PDFMaker_PDFMaker_Model(); $request->set('key', $PDFMakerModel->GetLicenseKey()); $PDFMaker_License_Action_Model = new PDFMaker_License_Action(); $PDFMaker_License_Action_Model->deactivateLicense($request); $module->delete(); @shell_exec('rm -r modules/PDFMaker'); @shell_exec('rm -r layouts/vlayout/modules/PDFMaker'); @shell_exec('rm -f languages/ae_ae/PDFMaker.php'); @shell_exec('rm -f languages/cz_cz/PDFMaker.php'); @shell_exec('rm -f languages/de_de/PDFMaker.php'); @shell_exec('rm -f languages/en_gb/PDFMaker.php'); @shell_exec('rm -f languages/en_us/PDFMaker.php'); @shell_exec('rm -f languages/es_es/PDFMaker.php'); @shell_exec('rm -f languages/es_mx/PDFMaker.php'); @shell_exec('rm -f languages/fr_fr/PDFMaker.php'); @shell_exec('rm -f languages/hi_hi/PDFMaker.php'); @shell_exec('rm -f languages/hu_hu/PDFMaker.php'); @shell_exec('rm -f languages/it_it/PDFMaker.php'); @shell_exec('rm -f languages/nl_nl/PDFMaker.php'); @shell_exec('rm -f languages/pl_pl/PDFMaker.php'); @shell_exec('rm -f languages/pt_br/PDFMaker.php'); @shell_exec('rm -f languages/ro_ro/PDFMaker.php'); @shell_exec('rm -f languages/ru_ru/PDFMaker.php'); @shell_exec('rm -f languages/sk_sk/PDFMaker.php'); @shell_exec('rm -f languages/sv_se/PDFMaker.php'); @shell_exec('rm -f languages/tr_tr/PDFMaker.php'); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_seq", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_settings", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_breakline", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_images", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_releases", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_userstatus", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblocks", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblocks_seq", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblockcol", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblockcriteria", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblockcriteria_g", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblockdatefilter", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_relblocksortcol", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_productbloc_tpl", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_ignorepicklistvalues", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_license", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_version", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_profilespermissions", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_sharing", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_labels", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_label_keys", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_label_vals", array()); $adb->pquery("DROP TABLE IF EXISTS vtiger_pdfmaker_usersettings", array()); $result = array('success' => true); } else { $result = array('success' => false); } ob_clean(); $response = new Vtiger_Response(); $response->setResult($result); $response->emit(); }
function process(Vtiger_Request $request) { vglobal('log', LoggerManager::getLogger('System')); Vtiger_Session::init(); $forceSSL = vglobal('forceSSL'); if ($forceSSL && !Vtiger_Functions::getBrowserInfo()->https) { header("Location: https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"); } // Better place this here as session get initiated //skipping the csrf checking for the forgot(reset) password $csrfProtection = vglobal('csrfProtection'); if ($csrfProtection) { if ($request->get('mode') != 'reset' && $request->get('action') != 'Login') { require_once 'libraries/csrf-magic/csrf-magic.php'; } require_once 'config/csrf_config.php'; } // TODO - Get rid of global variable $current_user // common utils api called, depend on this variable right now $currentUser = $this->getLogin(); vglobal('current_user', $currentUser); $currentLanguage = Vtiger_Language_Handler::getLanguage(); vglobal('current_language', $currentLanguage); $module = $request->getModule(); $qualifiedModuleName = $request->getModule(false); if ($currentUser && $qualifiedModuleName) { $moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage, $qualifiedModuleName); vglobal('mod_strings', $moduleLanguageStrings['languageStrings']); } if ($currentUser) { $moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage); vglobal('app_strings', $moduleLanguageStrings['languageStrings']); } $view = $request->get('view'); $action = $request->get('action'); $response = false; try { if ($this->isInstalled() === false && $module != 'Install') { header('Location:install/Install.php'); exit; } if (empty($module)) { if ($this->hasLogin()) { $defaultModule = vglobal('default_module'); if (!empty($defaultModule) && $defaultModule != 'Home') { $module = $defaultModule; $qualifiedModuleName = $defaultModule; $view = 'List'; if ($module == 'Calendar') { // To load MyCalendar instead of list view for calendar //TODO: see if it has to enhanced and get the default view from module model $view = 'Calendar'; } } else { $module = 'Home'; $qualifiedModuleName = 'Home'; $view = 'DashBoard'; } } else { $module = 'Users'; $qualifiedModuleName = 'Settings:Users'; $view = 'Login'; } $request->set('module', $module); $request->set('view', $view); } if (!empty($action)) { $componentType = 'Action'; $componentName = $action; } else { $componentType = 'View'; if (empty($view)) { $view = 'Index'; } $componentName = $view; } $handlerClass = Vtiger_Loader::getComponentClassName($componentType, $componentName, $qualifiedModuleName); $handler = new $handlerClass(); if ($handler) { vglobal('currentModule', $module); $csrfProtection = vglobal('csrfProtection'); if ($csrfProtection) { // Ensure handler validates the request $handler->validateRequest($request); } if ($handler->loginRequired()) { $this->checkLogin($request); } //TODO : Need to review the design as there can potential security threat $skipList = array('Users', 'Home', 'CustomView', 'Import', 'Export', 'Inventory', 'Vtiger', 'PriceBooks', 'Migration', 'Install'); if (!in_array($module, $skipList) && stripos($qualifiedModuleName, 'Settings') === false) { $this->triggerCheckPermission($handler, $request); } // Every settings page handler should implement this method if (stripos($qualifiedModuleName, 'Settings') === 0 || $module == 'Users') { $handler->checkPermission($request); } $notPermittedModules = array('ModComments', 'Integration', 'DashBoard'); if (in_array($module, $notPermittedModules) && $view == 'List') { header('Location:index.php?module=Home&view=DashBoard'); } $this->triggerPreProcess($handler, $request); $response = $handler->process($request); $this->triggerPostProcess($handler, $request); } else { throw new AppException(vtranslate('LBL_HANDLER_NOT_FOUND')); } } catch (Exception $e) { if ($view) { // Log for developement. error_log($e->getTraceAsString(), E_NOTICE); Vtiger_Functions::throwNewException($e->getMessage()); } else { $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); $response->setError($e->getMessage()); //Vtiger_Functions::throwNewException($e->getMessage()); } } if ($response) { $response->emit(); } }
function process(Vtiger_Request $request) { Vtiger_Session::init(); // Better place this here as session get initiated //skipping the csrf checking for the forgot(reset) password if ($request->get('mode') != 'reset' && $request->get('action') != 'Login') { require_once 'libraries/csrf-magic/csrf-magic.php'; } // TODO - Get rid of global variable $current_user // common utils api called, depend on this variable right now $currentUser = $this->getLogin(); vglobal('current_user', $currentUser); global $default_language; vglobal('default_language', $default_language); $currentLanguage = Vtiger_Language_Handler::getLanguage(); vglobal('current_language', $currentLanguage); $module = $request->getModule(); $qualifiedModuleName = $request->getModule(false); if ($currentUser && $qualifiedModuleName) { $moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage, $qualifiedModuleName); vglobal('mod_strings', $moduleLanguageStrings['languageStrings']); } if ($currentUser) { $moduleLanguageStrings = Vtiger_Language_Handler::getModuleStringsFromFile($currentLanguage); vglobal('app_strings', $moduleLanguageStrings['languageStrings']); } $view = $request->get('view'); $action = $request->get('action'); $response = false; try { if ($this->isInstalled() === false && $module != 'Install') { header('Location:index.php?module=Install&view=Index'); exit; } if (empty($module)) { if ($this->hasLogin()) { $defaultModule = vglobal('default_module'); if (!empty($defaultModule) && $defaultModule != 'Home') { $module = $defaultModule; $qualifiedModuleName = $defaultModule; $view = 'List'; if ($module == 'Calendar') { // To load MyCalendar instead of list view for calendar //TODO: see if it has to enhanced and get the default view from module model $view = 'Calendar'; } } else { $module = 'Home'; $qualifiedModuleName = 'Home'; $view = 'DashBoard'; } } else { $module = 'Users'; $qualifiedModuleName = 'Settings:Users'; $view = 'Login'; } $request->set('module', $module); $request->set('view', $view); } if (!empty($action)) { $componentType = 'Action'; $componentName = $action; } else { $componentType = 'View'; if (empty($view)) { $view = 'Index'; } $componentName = $view; } $handlerClass = Vtiger_Loader::getComponentClassName($componentType, $componentName, $qualifiedModuleName); $handler = new $handlerClass(); if ($handler) { vglobal('currentModule', $module); // Ensure handler validates the request $handler->validateRequest($request); if ($handler->loginRequired()) { $this->checkLogin($request); } //TODO : Need to review the design as there can potential security threat $skipList = array('Users', 'Home', 'CustomView', 'Import', 'Export', 'Inventory', 'Vtiger', 'PriceBooks', 'Migration', 'Install'); if (!in_array($module, $skipList) && stripos($qualifiedModuleName, 'Settings') === false) { $this->triggerCheckPermission($handler, $request); } // Every settings page handler should implement this method if (stripos($qualifiedModuleName, 'Settings') === 0 || $module == 'Users') { $handler->checkPermission($request); } $notPermittedModules = array('ModComments', 'Integration', 'DashBoard'); if (in_array($module, $notPermittedModules) && $view == 'List') { header('Location:index.php?module=Home&view=DashBoard'); } $this->triggerPreProcess($handler, $request); /** EventHandler START */ list($handler, $request) = EventHandler_Module_Model::do_filter(array("vtiger.filter.process." . strtolower($module . '.' . $componentName . "." . $componentType) . ".before", "vtiger.filter.process." . strtolower($componentName . "." . $componentType) . ".before"), array($handler, $request)); /** EventHandler ENDE */ $response = $handler->process($request); /** EventHandler START */ list($handler, $request) = EventHandler_Module_Model::do_filter(array("vtiger.filter.process." . strtolower($module . '.' . $componentName . "." . $componentType) . ".after", "vtiger.filter.process." . strtolower($componentName . "." . $componentType) . ".after"), array($handler, $request)); /** EventHandler ENDE */ $this->triggerPostProcess($handler, $request); } else { throw new AppException(vtranslate('LBL_HANDLER_NOT_FOUND')); } } catch (Exception $e) { if ($view) { // Log for developement. error_log($e->getTraceAsString(), E_NOTICE); $viewer = new Vtiger_Viewer(); $viewer->assign('MESSAGE', $e->getMessage()); $viewer->view('OperationNotPermitted.tpl', 'Vtiger'); } else { $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); $response->setError($e->getMessage()); } } /** EventHandler START */ EventHandler_Module_Model::do_action("vtiger.process.finish", array($module, $componentName, $componentType)); EventHandler_Module_Model::do_action("vtiger.process." . strtolower($module . '.' . $componentName . "." . $componentType) . ".finish", array($module, $componentName, $componentType)); /** EventHandler ENDE */ if ($response) { $response->emit(); } }
public function initializeListViewContents(Vtiger_Request $request, Vtiger_Viewer $viewer) { //src_module value is added to just to stop showing inactive products $request->set('src_module', $request->getModule()); $moduleName = $this->getModule($request); $cvId = $request->get('cvid'); $pageNumber = $request->get('page'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $sourceField = $request->get('src_field'); $sourceRecord = $request->get('src_record'); $searchKey = $request->get('search_key'); $searchValue = $request->get('search_value'); $currencyId = $request->get('currency_id'); //To handle special operation when selecting record from Popup $getUrl = $request->get('get_url'); // To handle subproducts in popup view $subProductsPopup = $request->get('subProductsPopup'); $parentProductId = $request->get('productid'); //Check whether the request is in multi select mode $multiSelectMode = $request->get('multi_select'); if (empty($multiSelectMode)) { $multiSelectMode = false; } if (empty($cvId)) { $cvId = '0'; } if (empty($pageNumber)) { $pageNumber = '1'; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $listViewModel = Vtiger_ListView_Model::getInstanceForPopup($moduleName); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); if (!empty($orderBy)) { $listViewModel->set('orderby', $orderBy); $listViewModel->set('sortorder', $sortOrder); } if (!empty($sourceModule)) { $listViewModel->set('src_module', $sourceModule); $listViewModel->set('src_field', $sourceField); $listViewModel->set('src_record', $sourceRecord); } if (!empty($searchKey) && !empty($searchValue)) { $listViewModel->set('search_key', $searchKey); $listViewModel->set('search_value', $searchValue); } if ($subProductsPopup && $parentProductId) { $listViewModel->set('subProductsPopup', true); $listViewModel->set('productId', $parentProductId); $viewer->assign('SUBPRODUCTS_POPUP', $subProductsPopup); $viewer->assign('PARENT_PRODUCT_ID', $parentProductId); } if (!$this->listViewHeaders) { $this->listViewHeaders = $listViewModel->getListViewHeaders(); } if (!$this->listViewEntries) { $this->listViewEntries = $listViewModel->getListViewEntries($pagingModel); } $noOfEntries = count($this->listViewEntries); if (empty($sortOrder)) { $sortOrder = "ASC"; } if ($sortOrder == "ASC") { $nextSortOrder = "DESC"; $sortImage = "downArrowSmall.png"; } else { $nextSortOrder = "ASC"; $sortImage = "upArrowSmall.png"; } $viewer->assign('MODULE', $moduleName); $viewer->assign('SOURCE_MODULE', $sourceModule); $viewer->assign('SOURCE_FIELD', $sourceField); $viewer->assign('SOURCE_RECORD', $sourceRecord); $viewer->assign('SEARCH_KEY', $searchKey); $viewer->assign('SEARCH_VALUE', $searchValue); $viewer->assign('ORDER_BY', $orderBy); $viewer->assign('SORT_ORDER', $sortOrder); $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder); $viewer->assign('SORT_IMAGE', $sortImage); $viewer->assign('GETURL', $getUrl); $viewer->assign('CURRENCY_ID', $currencyId); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('PAGE_NUMBER', $pageNumber); $viewer->assign('LISTVIEW_ENTRIES_COUNT', $noOfEntries); $viewer->assign('LISTVIEW_HEADERS', $this->listViewHeaders); $viewer->assign('LISTVIEW_ENTRIES', $this->listViewEntries); if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) { if (!$this->listViewCount) { $this->listViewCount = $listViewModel->getListViewCount(); } $totalCount = $this->listViewCount; $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if ($pageCount == 0) { $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('LISTVIEW_COUNT', $totalCount); } $viewer->assign('MULTI_SELECT', $multiSelectMode); $viewer->assign('CURRENT_USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('MODULE', $request->getModule()); $viewer->assign('GETURL', 'getTaxesURL'); $viewer->assign('VIEW', 'SubProductsPopup'); $viewer->assign('MAIN_PRODUCT_POPUP', true); }
/** * 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'); $user = Users_Record_Model::getCurrentUserModel(); $allDay = $request->get('allday'); if ('on' == $allDay) { $request->set('time_start', $user->get('start_hour')); $request->set('time_end', $user->get('end_hour')); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); if (!empty($recordId)) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $modelData = $recordModel->getData(); $recordModel->set('id', $recordId); $recordModel->set('mode', 'edit'); //Due to dependencies on the activity_reminder api in Activity.php(5.x) $_REQUEST['mode'] = 'edit'; } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $modelData = $recordModel->getData(); $recordModel->set('mode', ''); } $fieldModelList = $moduleModel->getFields(); foreach ($fieldModelList as $fieldName => $fieldModel) { $fieldValue = $request->get($fieldName, null); // For custom time fields in Calendar, it was not converting to db insert format(sending as 10:00 AM/PM) $fieldDataType = $fieldModel->getFieldDataType(); if ($fieldDataType == 'time') { $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } // End if ($fieldValue !== null) { if (!is_array($fieldValue)) { $fieldValue = trim($fieldValue); } $recordModel->set($fieldName, $fieldValue); } } //Start Date and Time values $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($request->get('time_start')); $startDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('date_start')); if ($startTime) { $startTime = Vtiger_Time_UIType::getTimeValueWithSeconds($startTime); $startDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('date_start') . " " . $startTime); list($startDate, $startTime) = explode(' ', $startDateTime); } $recordModel->set('date_start', $startDate); $recordModel->set('time_start', $startTime); //End Date and Time values $endTime = $request->get('time_end'); $endDate = Vtiger_Date_UIType::getDBInsertedValue($request->get('due_date')); if ($endTime) { $endTime = Vtiger_Time_UIType::getTimeValueWithSeconds($endTime); $endDateTime = Vtiger_Datetime_UIType::getDBDateTimeValue($request->get('due_date') . " " . $endTime); list($endDate, $endTime) = explode(' ', $endDateTime); } $recordModel->set('time_end', $endTime); $recordModel->set('due_date', $endDate); $activityType = $request->get('activitytype'); if (empty($activityType)) { $recordModel->set('activitytype', 'Task'); $recordModel->set('visibility', 'Private'); } //Due to dependencies on the older code $setReminder = $request->get('set_reminder'); if ($setReminder) { $_REQUEST['set_reminder'] = 'Yes'; } else { $_REQUEST['set_reminder'] = 'No'; } $time = strtotime($request->get('time_end')) - strtotime($request->get('time_start')); $diffinSec = strtotime($request->get('due_date')) - strtotime($request->get('date_start')); $diff_days = floor($diffinSec / (60 * 60 * 24)); $hours = (double) $time / 3600 + $diff_days * 24; $minutes = ((double) $hours - (int) $hours) * 60; $recordModel->set('duration_hours', (int) $hours); $recordModel->set('duration_minutes', round($minutes, 0)); return $recordModel; }