* along with this program. If not, see <http://www.gnu.org/licenses/>. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ $response = new StdClass(); $outputDir = PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "files" . PATH_SEP . "output" . PATH_SEP; try { if(empty($_GET)){ $proUid = Bootstrap::json_decode( $_POST['data']); $_GET["pro_uid"] = $proUid->pro_uid; } if (\BpmnProject::exists($_GET["pro_uid"])) { $exporter = new ProcessMaker\Exporter\XmlExporter($_GET["pro_uid"]); $getProjectName = $exporter->truncateName($exporter->getProjectName(),false); $version = ProcessMaker\Util\Common::getLastVersion($outputDir . $getProjectName . "-*.pmx") + 1; $outputFilename = sprintf("%s-%s.%s", str_replace(" ","_",$getProjectName), $version, "pmx"); $outputFilename = $exporter->saveExport($outputDir.$outputFilename); } else { $oProcess = new Processes(); $proFields = $oProcess->serializeProcess($_GET["pro_uid"]); $result = $oProcess->saveSerializedProcess($proFields); $outputFilename = $result["FILENAME"]; rename($outputDir . $outputFilename . "tpm", $outputDir . $outputFilename); } $response->file_hash = base64_encode($outputFilename); $response->success = true;
/** * @url GET /:prj_uid/export * * @param string $prj_uid {@min 32}{@max 32} */ public function export($prj_uid) { $exporter = new \ProcessMaker\Exporter\XmlExporter($prj_uid); $getProjectName = $exporter->truncateName($exporter->getProjectName(),false); $outputDir = PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "files" . PATH_SEP . "output" . PATH_SEP; $version = \ProcessMaker\Util\Common::getLastVersion($outputDir . $getProjectName . "-*.pmx") + 1; $outputFilename = $outputDir . sprintf("%s-%s.%s", str_replace(" ", "_", $getProjectName), $version, "pmx"); $exporter->setMetadata("export_version", $version); $outputFilename = $outputDir.$exporter->saveExport($outputFilename); $httpStream = new \ProcessMaker\Util\IO\HttpStream(); $fileExtension = pathinfo($outputFilename, PATHINFO_EXTENSION); $httpStream->loadFromFile($outputFilename); $httpStream->setHeader("Content-Type", "application/xml; charset=UTF-8"); $httpStream->send(); }
public function saveAs($prj_uid, $prj_name, $prj_description, $prj_category) { try { $exporter = new \ProcessMaker\Exporter\XmlExporter($prj_uid); $getProjectName = $exporter->truncateName($exporter->getProjectName(), false); $outputDir = PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "files" . PATH_SEP . "output" . PATH_SEP; $version = \ProcessMaker\Util\Common::getLastVersion($outputDir . $getProjectName . "-*.pmx") + 1; $outputFilename = $outputDir . sprintf("%s-%s.%s", str_replace(" ", "_", $getProjectName), $version, "pmx"); $exporter->setMetadata("export_version", $version); $outputFilename = $outputDir . $exporter->saveExport($outputFilename); $httpStream = new \ProcessMaker\Util\IO\HttpStream(); $fileExtension = pathinfo($outputFilename, PATHINFO_EXTENSION); $this->setSourceFile($outputFilename); $this->prepare(); $this->importData["tables"]["bpmn"]["project"][0]["prj_name"] = $prj_name; $this->importData["tables"]["bpmn"]["project"][0]["prj_description"] = $prj_description; $this->importData["tables"]["bpmn"]["diagram"][0]["dia_name"] = $prj_name; $this->importData["tables"]["bpmn"]["process"][0]["pro_name"] = $prj_name; $this->importData["tables"]["workflow"]["process"][0]["PRO_TITLE"] = $prj_name; $this->importData["tables"]["workflow"]["process"][0]["PRO_DESCRIPTION"] = $prj_description; $this->importData["tables"]["workflow"]["process"][0]["PRO_CATEGORY"] = $prj_category; $this->importData["tables"]["workflow"]["process"][0]["PRO_CATEGORY_LABEL"] = null; $this->importData["tables"]["workflow"]["process"][0]["PRO_UPDATE_DATE"] = null; $this->importData["tables"]["workflow"]["process"] = $this->importData["tables"]["workflow"]["process"][0]; return array("prj_uid" => $this->doImport()); } catch (\Exception $e) { return $e->getMessage(); } }