ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilLMObjectGUI.php
Go to the documentation of this file.
1 <?php
2 
20 
27 {
28  protected int $requested_ref_id;
30  public ilLanguage $lng;
31  public ilLMObject $obj;
32  public ilCtrl $ctrl;
34  public array $actions;
35 
36  protected \ILIAS\DI\UIServices $ui;
37  protected int $requested_obj_id;
38  protected string $requested_totransl = "";
39  protected string $requested_transl = "";
40  protected string $requested_target;
41  protected string $requested_new_type;
42  protected array $target_frame;
44 
49  public function __construct(ilObjLearningModule $a_content_obj)
50  {
51  global $DIC;
52 
53  $tpl = $DIC["tpl"];
54  $lng = $DIC->language();
55  $ilCtrl = $DIC->ctrl();
56 
57  $this->tpl = $tpl;
58  $this->lng = $lng;
59  $this->ctrl = $ilCtrl;
60  $this->content_object = $a_content_obj;
61  $this->ui = $DIC->ui();
62  $this->request = $DIC
63  ->learningModule()
64  ->internal()
65  ->gui()
66  ->editing()
67  ->request();
69 
70  $this->requested_ref_id = $req->getRefId();
71  $this->requested_obj_id = $req->getObjId();
72  $this->requested_transl = $req->getTranslation();
73  $this->requested_totransl = $req->getToTranslation();
74  $this->requested_target = $req->getTarget();
75  $this->requested_new_type = $req->getNewType();
76  }
77 
78 
82  public function setActions(?array $a_actions = null): void
83  {
84  if (is_array($a_actions)) {
85  foreach ($a_actions as $name => $lng) {
86  $this->actions[$name] = array("name" => $name, "lng" => $lng);
87  }
88  } else {
89  $this->actions = [];
90  }
91  }
92 
93 
100  public function getTargetFrame(
101  string $a_cmd,
102  string $a_target_frame = ""
103  ): string {
104  if ($this->target_frame[$a_cmd] != "") {
105  return $this->target_frame[$a_cmd];
106  } elseif (!empty($a_target_frame)) {
107  return "target=\"" . $a_target_frame . "\"";
108  } else {
109  return "";
110  }
111  }
112 
116  public function create(): void
117  {
118  $form = $this->getCreateForm();
119  $this->tpl->setContent($form->getHTML());
120  }
121 
122  public function getCreateForm(): ilPropertyFormGUI
123  {
124  $new_type = $this->requested_new_type;
125  $this->ctrl->setParameter($this, "new_type", $new_type);
126  $form = new ilPropertyFormGUI();
127  $form->setFormAction($this->ctrl->getFormAction($this, "save"));
128  $form->setTitle($this->lng->txt($new_type . "_new"));
129 
130  $title = new ilTextInputGUI($this->lng->txt("title"), "title");
131  $form->addItem($title);
132 
133  $desc = new ilTextAreaInputGUI($this->lng->txt("description"), "desc");
134  $form->addItem($desc);
135 
136  $form->addCommandButton("save", $this->lng->txt($new_type . "_add"));
137  $form->addCommandButton("cancel", $this->lng->txt("cancel"));
138 
139  return $form;
140  }
141 
142 
146  public function putInTree(?int $target = 0): void
147  {
148  if ($target == 0) {
149  $target = $this->requested_target;
150  }
151  $tree = new ilTree($this->content_object->getId());
152  $tree->setTableNames('lm_tree', 'lm_data');
153  $tree->setTreeTablePK("lm_id");
154 
155  $parent_id = ($this->requested_obj_id > 0)
156  ? $this->requested_obj_id
157  : $tree->getRootId();
158 
159  if ($target == "") {
160  // determine last child of current type
161  $childs = $tree->getChildsByType($parent_id, $this->obj->getType());
162  if (count($childs) == 0) {
163  $target = ilTree::POS_FIRST_NODE;
164  } else {
165  $target = $childs[count($childs) - 1]["obj_id"];
166  }
167  }
168  if (!$tree->isInTree($this->obj->getId())) {
169  $tree->insertNode($this->obj->getId(), $parent_id, $target);
170  }
171  }
172 
173 
177  public function delete(): void
178  {
179  $this->setTabs();
180 
181  $cont_obj_gui = new ilObjLearningModuleGUI(
182  "",
183  $this->content_object->getRefId(),
184  true,
185  false
186  );
187  $cont_obj_gui->delete($this->obj->getId());
188  }
189 
190 
194  public function cancelDelete(): void
195  {
196  ilSession::clear("saved_post");
197  $this->ctrl->redirect($this, $this->request->getBackCmd());
198  }
199 
200 
204  public function confirmedDelete(): void
205  {
206  $cont_obj_gui = new ilObjLearningModuleGUI(
207  "",
208  $this->content_object->getRefId(),
209  true,
210  false
211  );
212  $cont_obj_gui->confirmedDelete($this->obj->getId());
213  $this->ctrl->redirect($this, $this->request->getBackCmd());
214  }
215 
219  public function showActions(array $a_actions): void
220  {
221  $d = [];
222  foreach ($a_actions as $name => $lng) {
223  $d[$name] = array("name" => $name, "lng" => $lng);
224  }
225 
226  $operations = $d;
227  if (count($operations) > 0) {
228  foreach ($operations as $val) {
229  $this->tpl->setCurrentBlock("operation_btn");
230  $this->tpl->setVariable("BTN_NAME", $val["name"]);
231  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt($val["lng"]));
232  $this->tpl->parseCurrentBlock();
233  }
234 
235  $this->tpl->setCurrentBlock("operation");
236  $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.svg"));
237  $this->tpl->parseCurrentBlock();
238  }
239  }
240 
244  public function checkTree(): void
245  {
246  $this->content_object->checkTree();
247  }
248 }
EditingGUIRequest $request
confirmedDelete()
page and structure object deletion
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilGlobalTemplateInterface $tpl
checkTree()
check the content object tree
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
create()
structure / page object creation form
setActions(?array $a_actions=null)
Base class for ilStructureObjects and ilPageObjects (see ILIAS DTD)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
catch(\Exception $e) $req
Definition: xapiproxy.php:93
global $DIC
Definition: feed.php:28
if($format !==null) $name
Definition: metadata.php:247
const POS_FIRST_NODE
__construct(ilObjLearningModule $a_content_obj)
constructor
delete(int $a_parent_subobj_id=0)
confirm deletion screen for page object and structure object deletion
getTargetFrame(string $a_cmd, string $a_target_frame="")
get target frame for command (command is method name without "Object", e.g.
cancelDelete()
cancel deletion of page/structure objects
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilObjLearningModule $content_object
This class represents a text area property in a property form.
putInTree(?int $target=0)
put this object into content object tree
ILIAS DI UIServices $ui
showActions(array $a_actions)
show possible action (form buttons)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static clear(string $a_var)
confirmedDelete(int $a_parent_subobj_id=0)
delete page object or structure objects
for($i=6; $i< 13; $i++) for($i=1; $i< 13; $i++) $d
Definition: date.php:296