/
PageRequest.php
75 lines (60 loc) · 1.81 KB
/
PageRequest.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
<?php
namespace Concrete\Core\Workflow\Request;
use Concrete\Core\Workflow\Workflow;
use HtmlObject\Element;
use Page;
use PermissionKey;
use Concrete\Core\Workflow\Progress\Progress as WorkflowProgress;
use Concrete\Core\Workflow\Progress\Response as WorkflowProgressResponse;
use Concrete\Core\Workflow\Progress\PageProgress as PageWorkflowProgress;
abstract class PageRequest extends Request
{
public function setRequestedPage($c)
{
$cID = ($c->getCollectionPointerOriginalID() > 0) ? $c->getCollectionPointerOriginalID() : $c->getCollectionID();
$this->cID = $cID;
}
public function getRequestedPageID()
{
return $this->cID;
}
public function getRequestedPageVersionID()
{
if (isset($this->cvID)) {
return $this->cvID;
}
$c = Page::getByID($this->cID, 'RECENT');
return $c->getVersionID();
}
public function setRequestedPageVersionID($cvID)
{
$this->cvID = $cvID;
}
public function addWorkflowProgress(Workflow $wf)
{
$pwp = PageWorkflowProgress::add($wf, $this);
$r = $pwp->start();
$pwp->setWorkflowProgressResponseObject($r);
return $pwp;
}
public function trigger()
{
$page = Page::getByID($this->cID);
$pk = PermissionKey::getByID($this->pkID);
$pk->setPermissionObject($page);
return parent::triggerRequest($pk);
}
public function cancel(WorkflowProgress $wp)
{
$c = Page::getByID($this->getRequestedPageID());
$wpr = new WorkflowProgressResponse();
$wpr->setWorkflowProgressResponseURL(\URL::to($c));
return $wpr;
}
public function getRequestIconElement()
{
$span = new Element('i');
$span->addClass('fa fa-file-text-o');
return $span;
}
}