19declare(strict_types=1);
58 $this->querier->deleteAll($ressource_id);
64 foreach ($set->getRoot()->getSubElements() as $sub) {
69 $this->querier->manipulate(
79 foreach ($from_set->
getRoot()->getSubElements() as $sub) {
80 foreach ($this->collectRowsForTransferFromElementAndSubElements(
84 $this->querier->manipulate(
99 bool $delete_all =
false
102 throw new \ilMDStructureException(
'LOM Structure is nested to deep.');
105 $collected_rows = [];
107 $marker = $this->marker($element);
108 if (!isset($marker) && !$delete_all) {
112 $tag = $this->tag($element);
113 if (!is_null($next_row = $this->getNewRowIfNecessary($element->getMDID(), $tag, $current_row))) {
114 $current_row = $next_row;
115 $collected_rows[] = $next_row;
118 $action = $marker?->action();
123 case MarkerAction::NEUTRAL:
124 if ($element->isScaffold()) {
129 case MarkerAction::CREATE_OR_UPDATE:
130 if (!is_null($tag)) {
131 $this->createOrUpdateElement(
134 $marker->dataValue(),
141 if (!is_null($tag)) {
142 $current_row->addAction($this->assignment_factory->action(
150 foreach ($element->getSubElements() as $sub) {
151 $collected_rows = array_merge(
153 $this->collectRowsForManipulationFromElementAndSubElements(
161 return $collected_rows;
170 throw new \ilMDStructureException(
'LOM Structure is nested to deep.');
173 $collected_rows = [];
174 $marker = $this->marker($element);
176 if ($element->isScaffold() && $marker?->action() !== MarkerAction::CREATE_OR_UPDATE) {
179 $data_value = !is_null($marker?->dataValue()) ? $marker->dataValue() : $element->getData()->value();
181 $tag = $this->tag($element);
182 if (!is_null($next_row = $this->getNewRowIfNecessary(NoID::SCAFFOLD, $tag, $current_row))) {
183 $current_row = $next_row;
184 $collected_rows[] = $next_row;
187 if (!is_null($tag)) {
188 $current_row->addAction($this->assignment_factory->action(
193 if (!$current_row->id()) {
194 $current_row->setId($this->querier->nextID($current_row->table()));
198 foreach ($element->getSubElements() as $sub) {
199 $collected_rows = array_merge(
201 $this->collectRowsForTransferFromElementAndSubElements(
208 return $collected_rows;
216 $table = $tag?->table() ??
'';
217 if ($table && $current_row?->table() !== $table) {
218 return $this->assignment_factory->row(
220 is_int($md_id) ? $md_id : 0,
221 $current_row?->
id() ?? 0
233 if (!$element->isScaffold()) {
234 $row->
addAction($this->assignment_factory->action(
240 $row->addAction($this->assignment_factory->action(
246 $row->setId($this->querier->nextID($row->table()));
254 return $this->dictionary->tagForElement($element);
263 return $element->getMarker();
Component logger with individual log levels by component id.
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
if(!file_exists('../ilias.ini.php'))