Adding Exporter for BPMN Projects (2nd commit)
This commit is contained in:
@@ -54,12 +54,12 @@ class BpmnBound extends BaseBpmnBound
|
||||
$rs = BpmnBoundPeer::doSelectRS($c);
|
||||
$rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$activities = array();
|
||||
$bounds = array();
|
||||
|
||||
while ($rs->next()) {
|
||||
$activities[] = $changeCaseTo !== CASE_UPPER ? array_change_key_case($rs->getRow(), CASE_LOWER) : $rs->getRow();
|
||||
$bounds[] = $changeCaseTo !== CASE_UPPER ? array_change_key_case($rs->getRow(), CASE_LOWER) : $rs->getRow();
|
||||
}
|
||||
|
||||
return $activities;
|
||||
return $bounds;
|
||||
}
|
||||
} // BpmnBound
|
||||
|
||||
@@ -24,6 +24,27 @@ class BpmnDiagram extends BaseBpmnDiagram
|
||||
return BpmnDiagramPeer::doSelect($c);
|
||||
}
|
||||
|
||||
public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $changeCaseTo = CASE_UPPER)
|
||||
{
|
||||
$c = new Criteria('workflow');
|
||||
$c->addSelectColumn("BPMN_DIAGRAM.*");
|
||||
|
||||
if (! is_null($prjUid)) {
|
||||
$c->add(BpmnDiagramPeer::PRJ_UID, $prjUid, Criteria::EQUAL);
|
||||
}
|
||||
|
||||
$rs = BpmnDiagramPeer::doSelectRS($c);
|
||||
$rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$diagrams = array();
|
||||
|
||||
while ($rs->next()) {
|
||||
$diagrams[] = $changeCaseTo !== CASE_UPPER ? array_change_key_case($rs->getRow(), CASE_LOWER) : $rs->getRow();
|
||||
}
|
||||
|
||||
return $diagrams;
|
||||
}
|
||||
|
||||
// Overrides
|
||||
|
||||
public function toArray($type = BasePeer::TYPE_FIELDNAME)
|
||||
|
||||
@@ -64,7 +64,7 @@ class BpmnFlow extends BaseBpmnFlow
|
||||
return BpmnFlowPeer::doSelect($c);
|
||||
}
|
||||
|
||||
public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $changeCaseTo = CASE_UPPER)
|
||||
public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $changeCaseTo = CASE_UPPER, $decodeState = true)
|
||||
{
|
||||
//TODO implement $start, $limit and $filter
|
||||
$c = new Criteria('workflow');
|
||||
@@ -80,7 +80,9 @@ class BpmnFlow extends BaseBpmnFlow
|
||||
|
||||
while ($rs->next()) {
|
||||
$flow = $rs->getRow();
|
||||
if ($decodeState) {
|
||||
$flow["FLO_STATE"] = @json_decode($flow["FLO_STATE"], true);
|
||||
}
|
||||
//$flow["FLO_IS_INMEDIATE"] = $flow["FLO_IS_INMEDIATE"] == 1 ? true : false;
|
||||
$flow = $changeCaseTo !== CASE_UPPER ? array_change_key_case($flow, CASE_LOWER) : $flow;
|
||||
|
||||
|
||||
@@ -24,6 +24,26 @@ class BpmnProcess extends BaseBpmnProcess
|
||||
return BpmnProcessPeer::doSelect($c);
|
||||
}
|
||||
|
||||
public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $changeCaseTo = CASE_UPPER)
|
||||
{
|
||||
$c = new Criteria('workflow');
|
||||
$c->addSelectColumn("BPMN_PROCESS.*");
|
||||
|
||||
if (! is_null($prjUid)) {
|
||||
$c->add(BpmnProcessPeer::PRJ_UID, $prjUid, Criteria::EQUAL);
|
||||
}
|
||||
|
||||
$rs = BpmnProcessPeer::doSelectRS($c);
|
||||
$rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$processes = array();
|
||||
while ($rs->next()) {
|
||||
$processes[] = $changeCaseTo !== CASE_UPPER ? array_change_key_case($rs->getRow(), CASE_LOWER) : $rs->getRow();
|
||||
}
|
||||
|
||||
return $processes;
|
||||
}
|
||||
|
||||
|
||||
// Overrides
|
||||
|
||||
|
||||
@@ -28,20 +28,19 @@ abstract class Exporter
|
||||
|
||||
|
||||
$bpmnStruct["ACTIVITY"] = \BpmnActivity::getAll($this->prjUid);
|
||||
//$data["BPMN_STRUCTURE"]["BPMN_BOUND"] = $this->bwap->getBounds();
|
||||
// $data["bpmn_data"] = $this->bwap->getProject();
|
||||
// $data["bpmn_diagram"] = $this->bwap->getProject();
|
||||
// $data["bpmn_documentation"] = $this->bwap->getProject();
|
||||
$bpmnStruct["BOUND"] = \BpmnBound::getAll($this->prjUid);
|
||||
$bpmnStruct["DATA"] = array();
|
||||
$bpmnStruct["DIAGRAM"] = \BpmnDiagram::getAll($this->prjUid);
|
||||
$bpmnStruct["DOCUMENTATION"] = array();
|
||||
$bpmnStruct["BPMN_EVENT"] = \BpmnEvent::getAll($this->prjUid);
|
||||
// $data["bpmn_extension"] = $this->bwap->getProject();
|
||||
// $data["bpmn_flow"] = $this->bwap->getProject();
|
||||
$bpmnStruct["EXTENSION"] = array();
|
||||
$bpmnStruct["FLOW"] = \BpmnFlow::getAll($this->prjUid, null, null, "", CASE_UPPER, false);
|
||||
$bpmnStruct["BPMN_GATEWAY"] = \BpmnGateway::getAll($this->prjUid);
|
||||
// $data["bpmn_lane"] = $this->bwap->getProject();
|
||||
// $data["bpmn_laneset"] = $this->bwap->getProject();
|
||||
// $data["bpmn_participant"] = $this->bwap->getProject();
|
||||
// $data["bpmn_process"] = $this->bwap->getProject();
|
||||
// $data["bpmn_project"] = $this->bwap->getProject();
|
||||
|
||||
$bpmnStruct["LANE"] = array();
|
||||
$bpmnStruct["LANESET"] = array();
|
||||
$bpmnStruct["PARTICIPANT"] = array();
|
||||
$bpmnStruct["PROCESS"] = \BpmnProcess::getAll($this->prjUid);
|
||||
$bpmnStruct["PROJECT"] = array(\BpmnProjectPeer::retrieveByPK($this->prjUid)->toArray());
|
||||
|
||||
\G::LoadClass( 'processes' );
|
||||
$oProcess = new \Processes();
|
||||
@@ -68,7 +67,7 @@ abstract class Exporter
|
||||
$htmlFile = PATH_DYNAFORM . $dynaform['DYN_FILENAME'] . '.html';
|
||||
|
||||
if (file_exists($htmlFile)) {
|
||||
$dynaforms[] = array(
|
||||
$data["WORKFLOW_FILES"]["DYNAFORMS"][] = array(
|
||||
"filename" => $dynaform['DYN_FILENAME'] . '.html',
|
||||
"filepath" => $dynaform['DYN_FILENAME'] . '.html',
|
||||
"file_content" => file_get_contents($htmlFile)
|
||||
@@ -77,33 +76,29 @@ abstract class Exporter
|
||||
}
|
||||
|
||||
// getting templates files
|
||||
$templates = array();
|
||||
$workspaceDir = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP;
|
||||
$templatesDir = $workspaceDir . 'mailTemplates' . PATH_SEP . $this->prjUid;
|
||||
$workspaceTargetDirs = array("TEMPLATES" => "mailTemplates", "PUBLIC" => "public");
|
||||
$workspaceDir = PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP;
|
||||
|
||||
foreach ($workspaceTargetDirs as $target => $workspaceTargetDir) {
|
||||
$templatesDir = $workspaceDir . $workspaceTargetDir . PATH_SEP . $this->prjUid;
|
||||
$templatesFiles = \G::rglob("*", 0, $templatesDir);
|
||||
|
||||
foreach ($templatesFiles as $templatesFile) {
|
||||
if (is_dir($templatesFile)) continue;
|
||||
|
||||
$templates[] = array(
|
||||
$data["WORKFLOW_FILES"][$target][] = array(
|
||||
"filename" => basename($templatesFile),
|
||||
"filepath" => str_replace($templatesDir, "", $templatesFile),
|
||||
"file_content" => file_get_contents($templatesFile)
|
||||
);
|
||||
}
|
||||
|
||||
$data["WORKFLOW_FILES"]["DYNAFORMS"] = $dynaforms;
|
||||
$data["WORKFLOW_FILES"]["TEMPLATES"] = $templates;
|
||||
$data["WORKFLOW_FILES"]["PUBLIC"] = array();
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function getSystemInfo()
|
||||
{
|
||||
//$sysInfo = \System::getSysInfo();
|
||||
//print_r($sysInfo); die;
|
||||
|
||||
return array(
|
||||
"vendor" => "ProcessMaker",
|
||||
"codename" => "Michelangelo",
|
||||
|
||||
@@ -54,6 +54,7 @@ class XmlExporter extends Exporter
|
||||
foreach ($recordData as $key => $value) {
|
||||
$columnNode = $this->dom->createElement(strtoupper($key));
|
||||
|
||||
if (is_array($value)) {print_r($value); die;}
|
||||
if (preg_match('/^[\w\s]+$/', $value, $match) || empty($value)) {
|
||||
$textNode = $this->dom->createTextNode($value);
|
||||
} else {
|
||||
@@ -77,8 +78,6 @@ class XmlExporter extends Exporter
|
||||
|
||||
// workflow dynaforms files
|
||||
foreach ($data["WORKFLOW_FILES"] as $elementName => $elementData) {
|
||||
//$wfFilesNode = $this->dom->createElement($elementName);
|
||||
|
||||
foreach ($elementData as $fileData) {
|
||||
$fileNode = $this->dom->createElement("FILE");
|
||||
$fileNode->setAttribute("target", strtolower($elementName));
|
||||
@@ -97,8 +96,6 @@ class XmlExporter extends Exporter
|
||||
|
||||
$workflowFilesNode->appendChild($fileNode);
|
||||
}
|
||||
|
||||
//$workflowFilesNode->appendChild($wfFilesNode);
|
||||
}
|
||||
|
||||
$this->rootNode->appendChild($workflowFilesNode);
|
||||
|
||||
Reference in New Issue
Block a user