ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilObjTaxonomyGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2012 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once "./Services/Object/classes/class.ilObject2GUI.php";
5 require_once "./Services/Taxonomy/classes/class.ilObjTaxonomy.php";
6 include_once("./Services/Taxonomy/interfaces/interface.ilTaxAssignedItemInfo.php");
7 
19 {
23  protected $tabs;
24 
28  protected $help;
29 
30  protected $multiple = false;
31  protected $assigned_item_sorting = false;
32 
36  public function __construct($a_id = 0)
37  {
38  global $DIC;
39 
40  $this->ctrl = $DIC->ctrl();
41  $this->lng = $DIC->language();
42  $this->user = $DIC->user();
43  $this->tabs = $DIC->tabs();
44  $this->toolbar = $DIC->toolbar();
45  $this->tpl = $DIC["tpl"];
46  $this->help = $DIC["ilHelp"];
47  $ilCtrl = $DIC->ctrl();
48  $lng = $DIC->language();
49 
51 
52  $ilCtrl->saveParameter($this, "tax_node");
53  $ilCtrl->saveParameter($this, "tax_id");
54 
55  $lng->loadLanguageModule("tax");
56  }
57 
63  public function getType()
64  {
65  return "tax";
66  }
67 
73  public function setAssignedObject($a_val)
74  {
75  $this->assigned_object_id = $a_val;
76  }
77 
83  public function getAssignedObject()
84  {
85  return $this->assigned_object_id;
86  }
87 
93  public function setMultiple($a_val)
94  {
95  $this->multiple = $a_val;
96  }
97 
103  public function getMultiple()
104  {
105  return $this->multiple;
106  }
107 
113  public function setListInfo($a_val)
114  {
115  $this->list_info = trim($a_val);
116  }
117 
123  public function getListInfo()
124  {
125  return $this->list_info;
126  }
127 
133  public function activateAssignedItemSorting(ilTaxAssignedItemInfo $a_item_info_obj, $a_component_id, $a_obj_id, $a_item_type)
134  {
135  $this->assigned_item_sorting = true;
136  $this->assigned_item_info_obj = $a_item_info_obj;
137  $this->assigned_item_comp_id = $a_component_id;
138  $this->assigned_item_obj_id = $a_obj_id;
139  $this->assigned_item_type = $a_item_type;
140  }
141 
142 
146  public function executeCommand()
147  {
148  $ilCtrl = $this->ctrl;
150  $ilTabs = $this->tabs;
151 
152  $next_class = $ilCtrl->getNextClass();
153 
154  switch ($next_class) {
155  default:
156  $cmd = $ilCtrl->getCmd("listTaxonomies");
157  $this->$cmd();
158  break;
159  }
160  }
161 
165  protected function initCreationForms($a_new_type)
166  {
167  $forms = array(
168  self::CFORM_NEW => $this->initCreateForm("tax")
169  );
170 
171  return $forms;
172  }
173 
174 
178 
185  public function editAOTaxonomySettings()
186  {
187  $ilToolbar = $this->toolbar;
188  $ilCtrl = $this->ctrl;
189  $lng = $this->lng;
190 
191 
192  // if (count($tax_ids) != 0 && !$this->getMultiple())
193  // {
194  // $this->listNodes();
195  // }
196  // else if ($this->getMultiple())
197  // {
198  $this->listTaxonomies();
199  // }
200 
201  // currently we support only one taxonomy, otherwise we may need to provide
202  // a list here
203  }
204 
211  public function getCurrentTaxonomyId()
212  {
214  $tax_id = (int) $_GET["tax_id"];
215  if (in_array($tax_id, $tax_ids)) {
216  return $tax_id;
217  }
218  return false;
219  }
220 
221 
228  public function getCurrentTaxonomy()
229  {
230  $tax_id = $this->getCurrentTaxonomyId();
231  if ($tax_id > 0) {
232  $tax = new ilObjTaxonomy($tax_id);
233  return $tax;
234  }
235 
236  return false;
237  }
238 
239 
246  public function listNodes()
247  {
248  $tpl = $this->tpl;
249  $ilToolbar = $this->toolbar;
250  $lng = $this->lng;
251  $ilCtrl = $this->ctrl;
252 
253  $tax = $this->getCurrentTaxonomy();
254 
255  $this->setTabs("list_items");
256 
257  // show toolbar
258  $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
259  $ilToolbar->addFormButton($lng->txt("tax_create_node"), "createTaxNode");
260 
261  $ilToolbar->setCloseFormTag(false);
262 
263 
264  // show tree
265  $this->showTree();
266 
267  // show subitems
268  include_once("./Services/Taxonomy/classes/class.ilTaxonomyTableGUI.php");
269  $table = new ilTaxonomyTableGUI(
270  $this,
271  "listNodes",
272  $tax->getTree(),
273  (int) $_GET["tax_node"],
274  $this->getCurrentTaxonomy()
275  );
276  $table->setOpenFormTag(false);
277 
278  $tpl->setContent($table->getHTML());
279  }
280 
281 
288  public function createAssignedTaxonomy()
289  {
290  $this->create();
291  }
292 
293 
298  protected function checkPermissionBool($a_perm, $a_cmd = "", $a_type = "", $a_node_id = null)
299  {
300  if ($this->getAssignedObject() > 0) {
301  return true;
302  } else {
303  return parent::checkPermissionBool($a_perm, $a_cmd, $a_type, $a_node_id);
304  }
305  }
306 
313  public function cancel()
314  {
315  $ilCtrl = $this->ctrl;
316 
317  if ($this->getAssignedObject() > 0) {
318  $ilCtrl->redirect($this, "listTaxonomies");
319  }
320 
321  return parent::cancel();
322  }
323 
330  public function save()
331  {
332  $ilCtrl = $this->ctrl;
333 
334  if ($this->getAssignedObject() > 0) {
335  $_REQUEST["new_type"] = "tax";
336  }
337 
338  parent::saveObject();
339  }
340 
347  protected function afterSave(ilObject $a_new_object)
348  {
349  $ilCtrl = $this->ctrl;
350  $lng = $this->lng;
351 
352  if ($this->getAssignedObject() > 0) {
354  $a_new_object->getId(),
355  $this->getAssignedObject()
356  );
357  $ilCtrl->setParameter($this, "tax_id", $a_new_object->getId());
358  ilUtil::sendSuccess($lng->txt("tax_added"), true);
359  $ilCtrl->redirect($this, "editSettings");
360  }
361  }
362 
368  public function showTree($a_ass_items = false)
369  {
370  global $DIC;
371 
372  $tax = $this->getCurrentTaxonomy();
373  $ctrl = $this->ctrl;
374 
375  $cmd = $a_ass_items
376  ? "listAssignedItems"
377  : "listNodes";
378 
379  $DIC->globalScreen()->tool()->context()->current()
380  ->addAdditionalData(
382  true
383  );
384  $DIC->globalScreen()->tool()->context()->current()
385  ->addAdditionalData(
387  $ctrl->getCurrentClassPath()
388  );
389  $DIC->globalScreen()->tool()->context()->current()
390  ->addAdditionalData(
392  $tax->getId()
393  );
394  $DIC->globalScreen()->tool()->context()->current()
395  ->addAdditionalData(
397  $cmd
398  );
399  $DIC->globalScreen()->tool()->context()->current()
400  ->addAdditionalData(
402  "showTree"
403  );
404 
405  $tax_exp = new ilTaxonomyExplorerGUI(
406  $this,
407  "showTree",
408  $tax->getId(),
409  "ilobjtaxonomygui",
410  $cmd
411  );
412  $tax_exp->handleCommand();
413  return;
414  }
415 
422  public static function getTreeHTML(
423  $a_tax_id,
424  $a_class,
425  $a_cmd,
426  $a_target_class,
427  $a_target_cmd,
428  $a_root_node_title = ""
429  ) {
430  die("ilObjTaxonomyGUI::getTreeHTML is deprecated.");
431  include_once("./Services/Taxonomy/classes/class.ilTaxonomyExplorerGUI.php");
432  $tax_exp = new ilTaxonomyExplorerGUI(
433  $a_class,
434  $a_cmd,
435  $a_tax_id,
436  $a_target_class,
437  $a_target_cmd
438  );
439  if (!$tax_exp->handleCommand()) {
440  return $tax_exp->getHTML() . "&nbsp;";
441  }
442  return;
443  }
444 
445 
452  public function createTaxNode()
453  {
454  $tpl = $this->tpl;
455  $ilHelp = $this->help;
456 
457  $this->setTabs("list_items");
458  $ilHelp->setSubScreenId("create_node");
459 
460  $this->initTaxNodeForm("create");
461  $tpl->setContent($this->form->getHTML());
462  }
463 
464 
470  public function initTaxNodeForm($a_mode = "edit")
471  {
472  $lng = $this->lng;
473  $ilCtrl = $this->ctrl;
474 
475  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
476  $this->form = new ilPropertyFormGUI();
477 
478  // title
479  $ti = new ilTextInputGUI($this->lng->txt("title"), "title");
480  $this->form->addItem($ti);
481 
482  // order nr
483  $tax = $this->getCurrentTaxonomy();
484  if ($tax->getSortingMode() == ilObjTaxonomy::SORT_MANUAL) {
485  $or = new ilTextInputGUI($this->lng->txt("tax_order_nr"), "order_nr");
486  $or->setMaxLength(5);
487  $or->setSize(5);
488  $this->form->addItem($or);
489  }
490 
491  if ($a_mode == "edit") {
492  $node = new ilTaxonomyNode((int) $_GET["tax_node"]);
493  $ti->setValue($node->getTitle());
494  $or->setValue($node->getOrderNr());
495  }
496 
497  // save and cancel commands
498  if ($a_mode == "create") {
499  $this->form->addCommandButton("saveTaxNode", $lng->txt("save"));
500  $this->form->addCommandButton("listNodes", $lng->txt("cancel"));
501  $this->form->setTitle($lng->txt("tax_new_tax_node"));
502  } else {
503  $this->form->addCommandButton("updateTaxNode", $lng->txt("save"));
504  $this->form->addCommandButton("listNodes", $lng->txt("cancel"));
505  $this->form->setTitle($lng->txt("tax_edit_tax_node"));
506  }
507 
508  $this->form->setFormAction($ilCtrl->getFormAction($this));
509  }
510 
515  public function saveTaxNode()
516  {
517  $tpl = $this->tpl;
518  $lng = $this->lng;
519  $ilCtrl = $this->ctrl;
520 
521  $this->initTaxNodeForm("create");
522  if ($this->form->checkInput()) {
523  $tax = $this->getCurrentTaxonomy();
524 
525  // create node
526  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
527  $node = new ilTaxonomyNode();
528  $node->setTitle($this->form->getInput("title"));
529 
530  $tax = $this->getCurrentTaxonomy();
531  if ($tax->getSortingMode() == ilObjTaxonomy::SORT_MANUAL) {
532  $order_nr = $this->form->getInput("order_nr");
533  }
534  if ($order_nr === "") {
535  $order_nr = ilTaxonomyNode::getNextOrderNr($tax->getId(), (int) $_GET["tax_node"]);
536  }
537  //echo $order_nr; exit;
538  $node->setOrderNr($order_nr);
539  $node->setTaxonomyId($tax->getId());
540  $node->create();
541 
542  // put in tree
543  ilTaxonomyNode::putInTree($tax->getId(), $node, (int) $_GET["tax_node"]);
544 
545  ilTaxonomyNode::fixOrderNumbers($tax->getId(), (int) $_GET["tax_node"]);
546 
547  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
548  $ilCtrl->redirect($this, "listNodes");
549  } else {
550  $this->form->setValuesByPost();
551  $tpl->setContent($this->form->getHtml());
552  }
553  }
554 
555 
559  public function updateTaxNode()
560  {
561  $lng = $this->lng;
562  $ilCtrl = $this->ctrl;
563  $tpl = $this->tpl;
564 
565  $this->initTaxNodeForm("edit");
566  if ($this->form->checkInput()) {
567  // create node
568  $node = new ilTaxonomyNode($_GET["tax_node"]);
569  $node->setTitle($this->form->getInput("title"));
570 
571  $tax = $this->getCurrentTaxonomy();
572  if ($tax->getSortingMode() == ilObjTaxonomy::SORT_MANUAL) {
573  $node->setOrderNr($this->form->getInput("order_nr"));
574  }
575 
576  $node->update();
577 
578  ilUtil::sendInfo($lng->txt("msg_obj_modified"), true);
579  $ilCtrl->redirect($this, "");
580  } else {
581  $this->form->setValuesByPost();
582  $tpl->setContent($this->form->getHtml());
583  }
584  }
585 
589  public function deleteItems()
590  {
591  $lng = $this->lng;
592  $tpl = $this->tpl;
593  $ilCtrl = $this->ctrl;
594  $ilTabs = $this->tabs;
595  $ilHelp = $this->help;
596 
597  if (!isset($_POST["id"])) {
598  ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
599  $ilCtrl->redirect($this, "listNodes");
600  }
601 
602  $this->setTabs("list_items");
603  $ilHelp->setSubScreenId("del_items");
604 
605  // $ilTabs->clearTargets();
606 
607  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
608  $confirmation_gui = new ilConfirmationGUI();
609 
610  $confirmation_gui->setFormAction($ilCtrl->getFormAction($this));
611  $confirmation_gui->setHeaderText($this->lng->txt("info_delete_sure"));
612 
613  // Add items to delete
614  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
615  foreach ($_POST["id"] as $id) {
616  $confirmation_gui->addItem(
617  "id[]",
618  $id,
620  );
621  }
622 
623  $confirmation_gui->setCancel($lng->txt("cancel"), "listNodes");
624  $confirmation_gui->setConfirm($lng->txt("confirm"), "confirmedDelete");
625 
626  $tpl->setContent($confirmation_gui->getHTML());
627  }
628 
632  public function confirmedDelete()
633  {
634  $ilCtrl = $this->ctrl;
635 
636  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
637 
638  // delete all selected objects
639  foreach ($_POST["id"] as $id) {
640  $node = new ilTaxonomyNode($id);
641  $tax = new ilObjTaxonomy($node->getTaxonomyId());
642  $tax_tree = $tax->getTree();
643  $node_data = $tax_tree->getNodeData($id);
644  if (is_object($node)) {
645  $node->delete();
646  }
647  if ($tax_tree->isInTree($id)) {
648  $tax_tree->deleteTree($node_data);
649  }
650  ilTaxonomyNode::fixOrderNumbers($node->getTaxonomyId(), $node_data["parent"]);
651  }
652 
653  // feedback
654  ilUtil::sendInfo($this->lng->txt("info_deleted"), true);
655 
656  $ilCtrl->redirect($this, "listNodes");
657  }
658 
665  public function saveSorting()
666  {
667  $ilCtrl = $this->ctrl;
668  $lng = $this->lng;
669 
670  // save sorting
671  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
672  if (is_array($_POST["order"])) {
673  // asort($_POST["order"]);
674  // $cnt = 10;
675  foreach ($_POST["order"] as $k => $v) {
677  }
678  ilTaxonomyNode::fixOrderNumbers($this->getCurrentTaxonomyId(), (int) $_GET["tax_node"]);
679  }
680 
681  // save titles
682  if (is_array($_POST["title"])) {
683  foreach ($_POST["title"] as $k => $v) {
685  (int) $k,
687  );
688  }
689  }
690 
691 
692  ilUtil::sendSuccess($lng->txt("msg_obj_modified"));
693  $ilCtrl->redirect($this, "listNodes");
694  }
695 
699  public function moveItems()
700  {
701  $tpl = $this->tpl;
702  $ilCtrl = $this->ctrl;
703  $lng = $this->lng;
704  $ilToolbar = $this->toolbar;
705  $ilHelp = $this->help;
706 
707  if (!isset($_POST["id"])) {
708  ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
709  $ilCtrl->redirect($this, "listNodes");
710  }
711 
712  $this->setTabs("list_items");
713  $ilHelp->setSubScreenId("move_items");
714 
715  $ilToolbar->addButton(
716  $lng->txt("cancel"),
717  $ilCtrl->getLinkTarget($this, "listNodes")
718  );
719 
720  ilUtil::sendInfo($lng->txt("tax_please_select_target"));
721 
722  if (is_array($_POST["id"])) {
723  $ilCtrl->setParameter($this, "move_ids", implode(",", $_POST["id"]));
724 
726  $tpl = $this->tpl;
727  $ilCtrl = $this->ctrl;
728  $lng = $this->lng;
729 
730  include_once("./Services/Taxonomy/classes/class.ilTaxonomyExplorerGUI.php");
731  $tax_exp = new ilTaxonomyExplorerGUI(
732  $this,
733  "moveItems",
734  $this->getCurrentTaxonomy()->getId(),
735  "ilobjtaxonomygui",
736  "pasteItems"
737  );
738  if (!$tax_exp->handleCommand()) {
739  //$tpl->setLeftNavContent($tax_exp->getHTML());
740  $tpl->setContent($tax_exp->getHTML() . "&nbsp;");
741  }
742  }
743  }
744 
748  public function pasteItems()
749  {
750  $lng = $this->lng;
751  $ilCtrl = $this->ctrl;
752  //var_dump($_GET);
753  //var_dump($_POST);
754  if ($_GET["move_ids"] != "") {
755  $move_ids = explode(",", $_GET["move_ids"]);
756  $tax = $this->getCurrentTaxonomy();
757  $tree = $tax->getTree();
758 
759  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
760  $target_node = new ilTaxonomyNode((int) $_GET["tax_node"]);
761  foreach ($move_ids as $m_id) {
762  // cross check taxonomy
763  $node = new ilTaxonomyNode((int) $m_id);
764  if ($node->getTaxonomyId() == $tax->getId() &&
765  ($target_node->getTaxonomyId() == $tax->getId() ||
766  $target_node->getId() == $tree->readRootId())) {
767  // check if target is not within the selected nodes
768  if ($tree->isGrandChild((int) $m_id, $target_node->getId()) ||
769  $m_id == $target_node->getId()) {
770  ilUtil::sendFailure($lng->txt("tax_target_within_nodes"), true);
771  $this->ctrl->redirect($this, "listNodes");
772  }
773 
774  // if target is not current place, move
775  $parent_id = $tree->getParentId((int) $m_id);
776  if ($parent_id != $target_node->getId()) {
777  $tree->moveTree((int) $m_id, $target_node->getId());
778  ilTaxonomyNode::fixOrderNumbers($tax->getId(), $target_node->getId());
780  }
781  }
782  }
783  }
784 
785  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
786  $ilCtrl->redirect($this, "listNodes");
787  }
788 
792  public function confirmDeleteTaxonomy()
793  {
794  $ilCtrl = $this->ctrl;
795  $tpl = $this->tpl;
796  $lng = $this->lng;
797 
798  $tax = $this->getCurrentTaxonomy();
799 
800  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
801  $cgui = new ilConfirmationGUI();
802  $cgui->setFormAction($ilCtrl->getFormAction($this));
803  $cgui->setHeaderText($lng->txt("tax_confirm_deletion"));
804  $cgui->setCancel($lng->txt("cancel"), "listTaxonomies");
805  $cgui->setConfirm($lng->txt("delete"), "deleteTaxonomy");
806 
807  $cgui->addItem("id[]", $i, $tax->getTitle());
808 
809  $tpl->setContent($cgui->getHTML());
810  }
811 
818  public function deleteTaxonomy()
819  {
820  $ilCtrl = $this->ctrl;
821  $lng = $this->lng;
822 
823  $tax = $this->getCurrentTaxonomy();
824  $tax->delete();
825 
826  ilUtil::sendSuccess($lng->txt("tax_tax_deleted"), true);
827  $ilCtrl->redirect($this, "listTaxonomies");
828  }
829 
836  public function listTaxonomies()
837  {
838  $tpl = $this->tpl;
839  $ilToolbar = $this->toolbar;
840  $lng = $this->lng;
841  $ilCtrl = $this->ctrl;
842 
844  if (count($tax_ids) == 0 || $this->getMultiple()) {
845  $ilToolbar->addButton(
846  $lng->txt("tax_add_taxonomy"),
847  $ilCtrl->getLinkTarget($this, "createAssignedTaxonomy")
848  );
849  } else {
850  ilUtil::sendInfo($lng->txt("tax_max_one_tax"));
851  }
852 
853  include_once("./Services/Taxonomy/classes/class.ilTaxonomyListTableGUI.php");
854 
855  $tab = new ilTaxonomyListTableGUI(
856  $this,
857  "listTaxonomies",
858  $this->getAssignedObject(),
859  $this->getListInfo()
860  );
861 
862  $tpl->setContent($tab->getHTML());
863  }
864 
870  public function setTabs($a_id = "")
871  {
872  $ilTabs = $this->tabs;
873  $ilCtrl = $this->ctrl;
874  $tpl = $this->tpl;
875  $lng = $this->lng;
876  $ilHelp = $this->help;
877 
878  $ilTabs->clearTargets();
879 
880  $ilHelp->setScreenIdComponent("tax");
881 
882  $tpl->setTitle(ilObject::_lookupTitle($this->getCurrentTaxonomyId()));
883  $tpl->setDescription(ilObject::_lookupDescription($this->getCurrentTaxonomyId()));
884  $tpl->setTitleIcon(ilUtil::getImagePath("icon_tax.svg"));
885 
886  $ilTabs->setBackTarget(
887  $lng->txt("back"),
888  $ilCtrl->getLinkTarget($this, "listTaxonomies")
889  );
890 
891  $ilTabs->addTab(
892  "list_items",
893  $lng->txt("tax_nodes"),
894  $ilCtrl->getLinkTarget($this, "listNodes")
895  );
896  if ($this->assigned_item_sorting) {
897  $ilTabs->addTab(
898  "ass_items",
899  $lng->txt("tax_assigned_items"),
900  $ilCtrl->getLinkTarget($this, "listAssignedItems")
901  );
902  }
903  $ilTabs->addTab(
904  "settings",
905  $lng->txt("settings"),
906  $ilCtrl->getLinkTarget($this, "editSettings")
907  );
908 
909  $ilTabs->activateTab($a_id);
910  }
911 
918  public function editSettings()
919  {
920  $tpl = $this->tpl;
921 
922  $this->setTabs("settings");
923 
924  $form = $this->initSettingsForm();
925  $tpl->setContent($form->getHTML());
926  }
927 
931  public function initSettingsForm()
932  {
933  $lng = $this->lng;
934  $ilCtrl = $this->ctrl;
935 
936  $tax = $this->getCurrentTaxonomy();
937 
938  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
939  $form = new ilPropertyFormGUI();
940 
941  // title
942  $ti = new ilTextInputGUI($lng->txt("title"), "title");
943  $ti->setMaxLength(200);
944  $form->addItem($ti);
945  $ti->setValue($tax->getTitle());
946 
947  // description
948  $ta = new ilTextAreaInputGUI($lng->txt("description"), "description");
949  //$ta->setCols();
950  //$ta->setRows();
951  $form->addItem($ta);
952  $ta->setValue($tax->getDescription());
953 
954  // sorting
955  $options = array(
956  ilObjTaxonomy::SORT_ALPHABETICAL => $lng->txt("tax_alphabetical"),
957  ilObjTaxonomy::SORT_MANUAL => $lng->txt("tax_manual")
958  );
959  $si = new ilSelectInputGUI($lng->txt("tax_node_sorting"), "sorting");
960  $si->setOptions($options);
961  $form->addItem($si);
962  $si->setValue($tax->getSortingMode());
963 
964  // assigned item sorting
965  if ($this->assigned_item_sorting) {
966  $cb = new ilCheckboxInputGUI($lng->txt("tax_item_sorting"), "item_sorting");
967  $cb->setChecked($tax->getItemSorting());
968  $form->addItem($cb);
969  }
970 
971  $form->addCommandButton("updateSettings", $lng->txt("save"));
972 
973  $form->setTitle($lng->txt("settings"));
974  $form->setFormAction($ilCtrl->getFormAction($this));
975 
976  return $form;
977  }
978 
982  public function updateSettings()
983  {
984  $tpl = $this->tpl;
985  $lng = $this->lng;
986  $ilCtrl = $this->ctrl;
987 
988  $form = $this->initSettingsForm();
989  if ($form->checkInput()) {
990  $tax = $this->getCurrentTaxonomy();
991  $tax->setTitle($form->getInput("title"));
992  $tax->setDescription($form->getInput("description"));
993  $tax->setSortingMode($form->getInput("sorting"));
994  $tax->setItemSorting($form->getInput("item_sorting"));
995  $tax->update();
996 
997  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
998  $ilCtrl->redirect($this, "editSettings");
999  } else {
1000  $form->setValuesByPost();
1001  $tpl->setContent($form->getHtml());
1002  }
1003  }
1004 
1011  public function listAssignedItems()
1012  {
1013  $tpl = $this->tpl;
1014  $ilToolbar = $this->toolbar;
1015  $lng = $this->lng;
1016  $ilCtrl = $this->ctrl;
1017 
1018  $tax = $this->getCurrentTaxonomy();
1019 
1020  $this->setTabs("ass_items");
1021 
1022  // show tree
1023  $this->showTree(true);
1024 
1025  // list assigned items
1026  include_once("./Services/Taxonomy/classes/class.ilTaxAssignedItemsTableGUI.php");
1027  $table = new ilTaxAssignedItemsTableGUI(
1028  $this,
1029  "listAssignedItems",
1030  (int) $_GET["tax_node"],
1031  $this->getCurrentTaxonomy(),
1032  $this->assigned_item_comp_id,
1033  $this->assigned_item_obj_id,
1034  $this->assigned_item_type,
1035  $this->assigned_item_info_obj
1036  );
1037 
1038  $tpl->setContent($table->getHTML());
1039  }
1040 
1047  public function saveAssignedItemsSorting()
1048  {
1049  $lng = $this->lng;
1050  $ilCtrl = $this->ctrl;
1051 
1052  include_once("./Services/Taxonomy/classes/class.ilTaxNodeAssignment.php");
1053  if (is_array($_POST["order"])) {
1054  $order = $_POST["order"];
1055  //asort($order, SORT_NUMERIC);
1056  //$cnt = 10;
1057  $tax_node = (int) $_GET["tax_node"];
1058  foreach ($order as $a_item_id => $ord_nr) {
1059  $tax_ass = new ilTaxNodeAssignment(
1060  $this->assigned_item_comp_id,
1061  $this->assigned_item_obj_id,
1062  $this->assigned_item_type,
1063  $this->getCurrentTaxonomyId()
1064  );
1065  $tax_ass->setOrderNr($tax_node, $a_item_id, $ord_nr);
1066  //$cnt+= 10;
1067  }
1068  $tax_ass = new ilTaxNodeAssignment(
1069  $this->assigned_item_comp_id,
1070  $this->assigned_item_obj_id,
1071  $this->assigned_item_type,
1072  $this->getCurrentTaxonomyId()
1073  );
1074  $tax_ass->fixOrderNr($tax_node);
1075  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1076  }
1077  $ilCtrl->redirect($this, "listAssignedItems");
1078  }
1079 }
deleteTaxonomy()
Delete taxonomy.
setMultiple($a_val)
Set multiple.
__construct($a_id=0)
Execute command.
Taxonomy node <-> item assignment.
static getNextOrderNr($a_tax_id, $a_parent_id)
Put this node into the taxonomy tree.
static writeTitle($a_node_id, $a_title)
Write title.
setAssignedObject($a_val)
Set assigned object.
editSettings()
Edit settings.
deleteItems()
Confirm deletion screen for items.
static getUsageOfObject($a_obj_id, $a_include_titles=false)
Get usage of object.
This class represents a property form user interface.
saveTaxNode()
Save tax node form.
New implementation of ilObjectGUI.
cancel()
Cancel creation.
updateSettings()
Update taxonomy settings.
$_GET["client_id"]
getMultiple()
Get multiple.
listTaxonomies()
List taxonomies.
TableGUI class for taxonomy list.
createTaxNode()
Create tax node.
Taxonomy explorer GUI class.
create()
Deleted in ilObject.
activateAssignedItemSorting(ilTaxAssignedItemInfo $a_item_info_obj, $a_component_id, $a_obj_id, $a_item_type)
Activate sorting mode of assigned objects.
setValue($a_value)
Set Value.
This class represents a checkbox property in a property form.
executeCommand()
Execute command.
static _lookupTitle($a_id)
lookup object title
saveAssignedItemsSorting()
Save assigned items sorting.
createAssignedTaxonomy()
Create assigned taxonomy.
static _lookupTitle($a_obj_id)
Lookup Title.
handleCommand()
Handle explorer internal command.
confirmDeleteTaxonomy()
Confirm taxonomy deletion.
user()
Definition: user.php:4
afterSave(ilObject $a_new_object)
After saving,.
getCurrentTaxonomyId()
Get current taxonomy id.
static writeOrderNr($a_node_id, $a_order_nr)
Write order nr.
help()
Definition: help.php:2
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
setChecked($a_checked)
Set Checked.
static getTreeHTML( $a_tax_id, $a_class, $a_cmd, $a_target_class, $a_target_cmd, $a_root_node_title="")
Get tree html.
getId()
get object id public
setTabs($a_id="")
Set tabs.
Taxonomy GUI class.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static _lookupDescription($a_id)
lookup object description
global $DIC
Definition: goto.php:24
TableGUI class for taxonomies.
pasteItems()
Paste items (move operation)
updateTaxNode()
Update tax node.
initCreateForm($a_new_type)
Init object creation form.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
setListInfo($a_val)
Set list info.
multiple()
Definition: multiple.php:5
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_node_id=null)
If we run under an assigned object, the permission should be checked on the upper level...
confirmedDelete()
Delete taxonomy nodes.
setTabs()
create tabs (repository/workspace switch)
Interface for assigned items of taxonomies.
listAssignedItems()
List assigned items.
static putInTree( $a_tax_id, $a_node, $a_parent_id="", $a_target_node_id="", $a_order_nr=0)
Put this node into the taxonomy tree.
initCreationForms($a_new_type)
Init creation forms.
static saveUsage($a_tax_id, $a_obj_id)
Save Usage.
initTaxNodeForm($a_mode="edit")
Init tax node form.
__construct(Container $dic, ilPlugin $plugin)
This class represents a text area property in a property form.
saveSorting()
Save settings and sorting.
setOpenFormTag($a_val)
Set open form tag.
getCurrentTaxonomy()
Get current taxonomy.
$ilUser
Definition: imgupload.php:18
TableGUI class for taxonomy list.
$_POST["username"]
showTree($a_ass_items=false)
Show Editing Tree.
getAssignedObject()
Get assigned object.
static fixOrderNumbers($a_tax_id, $a_parent_id)
Fix order numbers.
$i
Definition: metadata.php:24
Confirmation screen class.
getListInfo()
Get list info.