/** * @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(); } }