get('rid'); $urlParameters['applicationKey'] = vglobal('application_unique_key'); $verifyValue = $request->get('rv'); $url = http_build_query($urlParameters); if ($verifyValue == md5($url)) return true; else return false; } /** * Function verifies the application key and get the html content * by replacing merge tags with appropriate values. * @global type $current_user * @global type $site_URL * @param type $data */ function viewInBrowser($data) { $request = new Vtiger_Request(vtlib_purify($_REQUEST)); $isRequestAuthorized = $this->isRequestAuthorized($request); if ($isRequestAuthorized) { $applicationKey = $request->get('applicationKey'); if (vglobal('application_unique_key') !== $applicationKey) { exit; } global $current_user, $site_URL; $current_user = Users::getActiveAdminUser(); $emailId = $data['emailId']; $parentModule = $data['parentModule']; $shorturlId = $request->get('id'); $recipientIdWithModule = $request->get('rid'); $recipientId = substr($recipientIdWithModule, 1); $recordModel = Emails_Record_Model::getInstanceById($emailId); $recordModel->updateTrackDetails($recipientId); // Function increases track access count to 1 $description = $recordModel->get('description'); $urlParameters = array(); $urlParameters['rid'] = $recipientIdWithModule; $urlParameters['applicationKey'] = $applicationKey; $url = http_build_query($urlParameters); $rlock = md5($url); $viewInBrowserMergeTagURL = $site_URL . "/shorturl.php?id=$shorturlId&$url&rv=$rlock"; $mergedDescription = str_replace(EmailTemplates_Module_Model::$BROWSER_MERGE_TAG, $viewInBrowserMergeTagURL, $description); $htmlContent = getMergedDescription($mergedDescription, $recipientId, $parentModule); header('Content-Type: text/html; charset=utf-8'); $docTypeAddedContent = self::addDoctypeIfNotExist($htmlContent); echo $docTypeAddedContent; } } /** * Function to add doctype if not exist * @staticvar string $DEFAULT_DOCTYPE * @param type $htmlContent * @return string */ static function addDoctypeIfNotExist($htmlContent) { $content = decode_html($htmlContent); $DEFAULT_DOCTYPE = ''; $matches = array(); preg_match("/()/i", $content, $matches); if (!empty($matches)) { $docTypeRemovedContent = str_replace($matches[0], " ", $content); $htmlContent = $matches[0] . "
" . $docTypeRemovedContent . "
"; } else { $htmlContent = $DEFAULT_DOCTYPE . "
" . $content . "
"; } return $htmlContent; } } ?>