ExportData($request); } public function ExportData(Vtiger_Request $request) { $adb = PearDatabase::getInstance(); $moduleName = $request->get('source_module'); $this->moduleInstance = Vtiger_Module_Model::getInstance($moduleName); $this->focus = CRMEntity::getInstance($moduleName); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $EMAILMakerModel = Vtiger_Module_Model::getInstance('EMAILMaker'); $mode = $request->getMode(); if ($mode == "ExportAllData") { $result = $EMAILMakerModel->GetListviewResult($orderBy, $sortOrder, false); } elseif ($mode == "ExportCurrentPage") { $result = $EMAILMakerModel->GetListviewResult($orderBy, $sortOrder, $request); } else { $sql = $this->getExportQuery($request); if (!empty($orderby)) { $sql .= " ORDER BY vtiger_emakertemplates." . $orderBy . " " . $sortOrder; } $result = $adb->pquery($sql, array()); } $entries = array(); $num_rows = $adb->num_rows($result); while ($row = $adb->fetchByAssoc($result)) { $currModule = $row['module']; $templateid = $row['templateid']; $Template_Permissions_Data = $EMAILMakerModel->returnTemplatePermissionsData($currModule, $templateid); if ($Template_Permissions_Data["detail"] === false) { continue; } $entries[] = $row; } $this->output($entries); } public function getExportQuery(Vtiger_Request $request) { $query = "SELECT vtiger_emakertemplates.* FROM vtiger_emakertemplates LEFT JOIN vtiger_emakertemplates_displayed USING(templateid)"; $idList = $this->getRecordsListFromRequest($request); $query .= "WHERE vtiger_emakertemplates.deleted = '0'"; if (!empty($idList)) { $idList = implode(',', $idList); $query .= 'AND vtiger_emakertemplates.templateid IN (' . $idList . ')'; } return $query; } public function output($entries) { foreach ($entries as $templateResult) { $templatename = $templateResult["templatename"]; $subject = $templateResult["subject"]; $description = $templateResult["description"]; $module = $templateResult["module"]; $is_listview = $templateResult["is_listview"]; $is_theme = $templateResult["is_theme"]; $body = decode_html($templateResult["body"]); $c .= ""; } header('Content-Type: application/xhtml+xml'); header("Content-Disposition: attachment; filename=export.xml"); echo ""; echo ""; echo $c; echo ""; exit; } private function cdataEncode($text, $encode = false) { $From = array(""); $To = array("<|!|[%|CDATA|[%|", "|%]|]|>"); if ($text != "") { $pos1 = strpos("", $text); if ($pos1 === false && $pos2 === false && $encode == false) { $content = $text; } else { $text = decode_html($text); $encode_text = str_replace($From, $To, $text); $content = ""; } } else { $content = ""; } return $content; } }