$_FILES = $filter->xssFilterHard($_FILES); $_SESSION['USER_LOGGED'] = $filter->xssFilterHard($_SESSION['USER_LOGGED']); if (isset($_FILES["PROCESS_FILENAME"]) && pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION) == "bpmn") { try { $createMode = $_REQUEST["createMode"]; $createMode = $filter->xssFilterHard($createMode); $name = pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_FILENAME); $data = array("type" => "bpmnProject", "PRO_TITLE" => $name, "PRO_DESCRIPTION" => "", "PRO_CATEGORY" => "", "PRO_CREATE_USER" => $_SESSION['USER_LOGGED']); if ($createMode === "overwrite") { $process = Process::getByProTitle($data["PRO_TITLE"]); if ($process !== null) { $oProcess = new Process(); $oProcess->remove($process["PRO_UID"]); } } if ($createMode === "rename") { $data["PRO_TITLE"] = Process::getNextTitle($data["PRO_TITLE"]); } $project = new \ProcessMaker\Project\Adapter\WorkflowBpmn($data); copy($_FILES["PROCESS_FILENAME"]["tmp_name"], PATH_DOCUMENT . $project->getUid()); $result = array("success" => true, "catchMessage" => "", "prj_uid" => $project->getUid(), "createMode" => $createMode); } catch (Exception $e) { $result = array("success" => "confirm", "catchMessage" => $e->getMessage(), "createMode" => $createMode); } echo G::json_encode($result); exit(0); } else { $result = array("success" => "error", "catchMessage" => G::LoadTranslation("ID_FILE_UPLOAD_INCORRECT_EXTENSION")); echo G::json_encode($result); exit(0); }
/** * Save new process * * @param object $httpData */ public function saveProcess($httpData) { $projectType = empty($_GET['type']) ? 'classicProject' : $_GET['type']; try { $data = (array) $httpData; $data['PRO_CREATE_USER'] = $_SESSION['USER_LOGGED']; if ($projectType == "classicProject") { $project = new ProcessMaker\Project\Workflow($data); } else { $project = new ProcessMaker\Project\Adapter\WorkflowBpmn($data); } $sProUid = $project->getUid(); // require_once 'classes/model/Task.php'; // G::LoadClass( 'processMap' ); // $oProcessMap = new ProcessMap(); // // $httpData->PRO_TITLE = trim( $httpData->PRO_TITLE ); // // try { // if (! isset( $httpData->PRO_UID )) { // if (Process::existsByProTitle( $httpData->PRO_TITLE )) { // $result = array ('success' => false,'msg' => G::LoadTranslation( 'ID_SAVE_PROCESS_ERROR' ),'errors' => array ('PRO_TITLE' => G::LoadTranslation( 'ID_PROCESSTITLE_ALREADY_EXISTS', SYS_LANG, Array ('PRO_TITLE' => $httpData->PRO_TITLE // ) ) // ) // ); // print G::json_encode( $result ); // exit( 0 ); // } // // $processData['USR_UID'] = $_SESSION['USER_LOGGED']; // $processData['PRO_TITLE'] = $httpData->PRO_TITLE; // $processData['PRO_DESCRIPTION'] = $httpData->PRO_DESCRIPTION; // $processData['PRO_CATEGORY'] = $httpData->PRO_CATEGORY; // // $sProUid = $oProcessMap->createProcess( $processData ); // // //call pluginsx // $oData['PRO_UID'] = $sProUid; // $oData['PRO_TEMPLATE'] = isset( $httpData->PRO_TEMPLATE ) && $httpData->PRO_TEMPLATE != '' ? $httpData->PRO_TEMPLATE : ''; // $oData['PROCESSMAP'] = $oProcessMap; // // $oPluginRegistry = & PMPluginRegistry::getSingleton(); // $oPluginRegistry->executeTriggers( PM_NEW_PROCESS_SAVE, $oData ); // // } else { // //$oProcessMap->updateProcess($_POST['form']); // $sProUid = $httpData->PRO_UID; // } // // //Save Calendar ID for this process // if (isset( $httpData->PRO_CALENDAR )) { // G::LoadClass( "calendar" ); // $calendarObj = new Calendar(); // $calendarObj->assignCalendarTo( $sProUid, $httpData->PRO_CALENDAR, 'PROCESS' ); // } // $this->success = true; $this->PRO_UID = $sProUid; $this->msg = G::LoadTranslation('ID_CREATE_PROCESS_SUCCESS'); } catch (Exception $e) { $this->success = false; $this->msg = $e->getMessage(); $this->trace = $e->getTraceAsString(); } }