19 declare(strict_types=1);
34 $this->log = $DIC->logger()->wsrv();
54 $this->log->debug(
'ECS cms tree create');
59 $res = $dir_reader->getDirectoryTree($a_content_id);
60 $nodes =
$res->getResult();
66 $this->log->error(
'Tree creation failed with mesage ' . $e->getMessage());
73 $data->setMid($this->mid);
74 $data->setCmsId($cms_tree->rootID);
75 $data->setTreeId($a_content_id);
76 $data->setTitle($cms_tree->directoryTreeTitle);
77 $data->setTerm($cms_tree->term);
81 $tree->insertRootNode($a_content_id,
$data->getObjId());
82 $tree->setRootId(
$data->getObjId());
85 foreach ((array) $cms_tree->nodes as $node) {
89 $data->setMid($this->mid);
90 $data->setCmsId($node->id);
91 $data->setTreeId($a_content_id);
92 $data->setTitle($node->title);
93 $data->setTerm($node->term);
97 if ($node->parent->id) {
104 $tree->insertNode(
$data->getObjId(), $parent_id);
115 $this->log->debug(
'ECS cms tree delete');
119 $data->setMid($this->mid);
120 $data->setTreeId($a_content_id);
139 $this->log->debug(
'ECS cms tree update');
151 $res = $dir_reader->getDirectoryTree($a_content_id);
152 $nodes =
$res->getResult();
157 $this->log->error(
'Tree creation failed with message ' . $e->getMessage());
166 $old_nodes = array();
167 if ($root_node[
'child']) {
168 $old_nodes = $tree->getSubTree($root_node,
true);
172 $this->log->debug(
'Old tree data... ');
199 $data->setMid($this->mid);
200 $data->setCmsId($cms_tree->rootID);
201 $data->setTreeId($a_content_id);
202 $data->setTitle($cms_tree->directoryTreeTitle);
203 $data->setTerm($cms_tree->term);
206 $data->setDeleted(
false);
212 $tree->insertRootNode($a_content_id,
$data->getObjId());
213 $tree->setRootId(
$data->getObjId());
216 foreach ((array) $cms_tree->nodes as $node) {
226 $data->setTitle($node->title);
227 $data->setTerm($node->term);
228 $data->setDeleted(
false);
233 $data->setCmsId($node->id);
234 $data->setMid($this->mid);
236 $data->setTreeId($a_content_id);
237 $data->setDeleted(
false);
240 $data_obj_id =
$data->getObjId();
250 $tree->insertNode(
$data->getObjId(), $parent_id);
260 foreach ($deleted as $obj_id) {
262 foreach ($old_nodes as $node) {
263 if ($node[
'child'] === $obj_id) {
264 $parent = $node[
'parent'];
269 if ($parent && $tree->isInTree($parent)) {
270 $tree->insertNode($obj_id, $parent);
static writeAllDeleted($a_server_id, $a_mid, $a_tree_id, $a_deleted_flag)
Write deleted status.
handleDelete(ilECSSetting $server, int $a_content_id)
Handle delete.
static getInstanceByServerId(int $a_server_id)
Get instance by server id.
getServerId()
Get current server id.
static lookupRootId($a_tree_id)
lookup root id
handleUpdate(ilECSSetting $server, $a_content_id)
Handle update.
static lookupObjId(int $a_server_id, int $a_mid, int $a_tree_id, string $cms_id)
server()
description: > This example shows how a Progress Bar can be rendered and updated by the server...
static deleteMappings(int $a_server_id, int $a_mid, int $a_tree_id)
Delete mappings.
Interface for all command queue handler classes.
static findDeletedNodes(int $a_server_id, int $a_mid, int $a_tree_id)
Find deleted nodes Uses a left join since this is more robust.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
handleCreate(ilECSSetting $server, $a_content_id)
static deleteByTreeId(int $a_tree_id)
Delete tree by tree_id.
__construct(ilECSSetting $server)