$_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);
}
示例#2
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();
     }
 }