-
Notifications
You must be signed in to change notification settings - Fork 453
/
Type.php
113 lines (97 loc) · 2.97 KB
/
Type.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
namespace Concrete\Core\Workflow;
use Concrete\Core\Foundation\ConcreteObject;
use Loader;
use Concrete\Core\Package\PackageList;
class Type extends ConcreteObject
{
public function getWorkflowTypeID()
{
return $this->wftID;
}
public function getWorkflowTypeHandle()
{
return $this->wftHandle;
}
public function getWorkflowTypeName()
{
return $this->wftName;
}
public static function getByID($wftID)
{
$db = Loader::db();
$row = $db->GetRow('select wftID, pkgID, wftHandle, wftName from WorkflowTypes where wftID = ?', array($wftID));
if ($row['wftHandle']) {
$wt = new static();
$wt->setPropertiesFromArray($row);
return $wt;
}
}
public static function getList()
{
$db = Loader::db();
$list = array();
$r = $db->Execute('select wftID from WorkflowTypes order by wftID asc');
while ($row = $r->FetchRow()) {
$list[] = static::getByID($row['wftID']);
}
$r->Close();
return $list;
}
public static function exportList($xml)
{
$wtypes = static::getList();
$db = Loader::db();
$axml = $xml->addChild('workflowtypes');
foreach ($wtypes as $wt) {
$wtype = $axml->addChild('workflowtype');
$wtype->addAttribute('handle', $wt->getWorkflowTypeHandle());
$wtype->addAttribute('name', $wt->getWorkflowTypeName());
$wtype->addAttribute('package', $wt->getPackageHandle());
}
}
public function delete()
{
$db = Loader::db();
$db->Execute("delete from WorkflowTypes where wftID = ?", array($this->wftID));
}
public static function getListByPackage($pkg)
{
$db = Loader::db();
$list = array();
$r = $db->Execute('select wftID from WorkflowTypes where pkgID = ? order by wftID asc', array($pkg->getPackageID()));
while ($row = $r->FetchRow()) {
$list[] = static::getByID($row['wftID']);
}
$r->Close();
return $list;
}
public function getPackageID()
{
return $this->pkgID;
}
public function getPackageHandle()
{
return PackageList::getHandle($this->pkgID);
}
public static function getByHandle($wftHandle)
{
$db = Loader::db();
$wftID = $db->GetOne('select wftID from WorkflowTypes where wftHandle = ?', array($wftHandle));
if ($wftID > 0) {
return self::getByID($wftID);
}
}
public static function add($wftHandle, $wftName, $pkg = false)
{
$pkgID = 0;
if (is_object($pkg)) {
$pkgID = $pkg->getPackageID();
}
$db = Loader::db();
$db->Execute('insert into WorkflowTypes (wftHandle, wftName, pkgID) values (?, ?, ?)', array($wftHandle, $wftName, $pkgID));
$id = $db->Insert_ID();
$est = static::getByID($id);
return $est;
}
}