-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathworkflowImportExport.php
70 lines (62 loc) · 2.71 KB
/
workflowImportExport.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
/**
* Created by PhpStorm.
* User: Martin Allen
* Date: 14/02/2019
* Time: 15:47
*/
//Example Export Usage https://crm.example.com/workflowImportExport.php?mode=export&id=123 - will create workflows123.log in root directory
//Example Export Usage https://crm.example.com/workflowImportExport.php?mode=export&module=Contacts - will create workflowsContacts.log in root directory
//Example Import Usage https://crm.example.com/workflowImportExport.php?mode=import&file=123 - will read workflows123.log from root directory
//Example Import Usage https://crm.example.com/workflowImportExport.php?mode=import&file=Contacts - will read workflowsContacts.log from root directory
require_once 'include/utils/utils.php';
require 'modules/com_vtiger_workflow/VTWorkflowManager.inc';
require 'modules/com_vtiger_workflow/VTTaskManager.inc';
$wfm = new VTWorkflowManager($adb);
if (isset($_GET['mode']) && $_GET['mode'] == 'export') {
if (isset($_GET['id'])) {
$workflows = $wfm->retrieve($_GET['id']);
$filename = $_GET['id'];
} elseif (isset($_GET['module'])) {
$workflows = $wfm->getWorkflowsForModule($_GET['module']);
$filename = $_GET['module'];
} else {
echo "No id or module specified";
exit();
}
if (is_array($workflows)) {
foreach ($workflows as $workflow) {
$workflowstrings[] = $wfm->serializeWorkflow($workflow);
}
foreach ($workflowstrings as $workflowstring) {
//write to file
//error_log(print_r($workflowstring, true), 3, "workflows" . $filename . ".log");
file_put_contents("workflows".$filename.".log", $workflowstring.PHP_EOL, FILE_APPEND);
}
} else {
$workflowstring = $wfm->serializeWorkflow($workflows);
//error_log(print_r($workflowstring, true), 3, "workflows" . $filename . ".log");
file_put_contents("workflows".$filename.".log", $workflowstring.PHP_EOL, FILE_APPEND);
}
echo "workflows".$filename.".log file written";
} elseif (isset($_GET['mode']) && $_GET['mode'] == 'import') {
if (isset($_GET['file'])) {
if (file_exists("workflows".$_GET['file'].".log")) {
$workflowstrings = file("workflows".$_GET['file'].".log", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($workflowstrings as $workflowstring) {
$workflow = $wfm->deserializeWorkflow($workflowstring);
$workflow->filtersavedinnew = 6;
$wfm->save($workflow);
echo 'Created workflow: '.$workflow->id;
}
} else {
echo "File workflows".$_GET['file']."log does not exist";
}
} else {
echo "No filename specified";
}
} else {
echo 'Do you want me to import or export??'.PHP_EOL;
echo 'Use /workflowImportExport.php?mode=export&id=123 OR /workflowImportExport.php?mode=export&module=Contacts'.PHP_EOL;
echo 'OR Use /workflowImportExport.php?mode=import&file=workflowsTasks.log'.PHP_EOL;
}