ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
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 
50  parent::__construct($a_id, ilObject2GUI::OBJECT_ID);
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  {
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;
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;
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");
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  {
316 
317  if ($this->getAssignedObject() > 0) {
318  $ilCtrl->redirect($this, "listTaxonomies");
319  }
320 
321  return parent::cancel();
322  }
323 
330  public function save()
331  {
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  {
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 
366  public function showTree($a_ass_items = false)
367  {
369  $tpl = $this->tpl;
371  $lng = $this->lng;
372 
373  $tax = $this->getCurrentTaxonomy();
374 
375  include_once("./Services/Taxonomy/classes/class.ilTaxonomyExplorerGUI.php");
376  $cmd = $a_ass_items
377  ? "listAssignedItems"
378  : "listNodes";
379  $tax_exp = new ilTaxonomyExplorerGUI(
380  $this,
381  "showTree",
382  $tax->getId(),
383  "ilobjtaxonomygui",
384  $cmd
385  );
386  if (!$tax_exp->handleCommand()) {
387  //$tpl->setLeftNavContent($tax_exp->getHTML());
388  $tpl->setLeftContent($tax_exp->getHTML() . "&nbsp;");
389  }
390  return;
391  }
392 
399  public static function getTreeHTML(
400  $a_tax_id,
401  $a_class,
402  $a_cmd,
403  $a_target_class,
404  $a_target_cmd,
405  $a_root_node_title = ""
406  ) {
407  die("ilObjTaxonomyGUI::getTreeHTML is deprecated.");
408  include_once("./Services/Taxonomy/classes/class.ilTaxonomyExplorerGUI.php");
409  $tax_exp = new ilTaxonomyExplorerGUI(
410  $a_class,
411  $a_cmd,
412  $a_tax_id,
413  $a_target_class,
414  $a_target_cmd
415  );
416  if (!$tax_exp->handleCommand()) {
417  return $tax_exp->getHTML() . "&nbsp;";
418  }
419  return;
420  }
421 
422 
429  public function createTaxNode()
430  {
431  $tpl = $this->tpl;
432  $ilHelp = $this->help;
433 
434  $this->setTabs("list_items");
435  $ilHelp->setSubScreenId("create_node");
436 
437  $this->initTaxNodeForm("create");
438  $tpl->setContent($this->form->getHTML());
439  }
440 
441 
447  public function initTaxNodeForm($a_mode = "edit")
448  {
449  $lng = $this->lng;
451 
452  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
453  $this->form = new ilPropertyFormGUI();
454 
455  // title
456  $ti = new ilTextInputGUI($this->lng->txt("title"), "title");
457  $this->form->addItem($ti);
458 
459  // order nr
460  $tax = $this->getCurrentTaxonomy();
461  if ($tax->getSortingMode() == ilObjTaxonomy::SORT_MANUAL) {
462  $or = new ilTextInputGUI($this->lng->txt("tax_order_nr"), "order_nr");
463  $or->setMaxLength(5);
464  $or->setSize(5);
465  $this->form->addItem($or);
466  }
467 
468  if ($a_mode == "edit") {
469  $node = new ilTaxonomyNode((int) $_GET["tax_node"]);
470  $ti->setValue($node->getTitle());
471  $or->setValue($node->getOrderNr());
472  }
473 
474  // save and cancel commands
475  if ($a_mode == "create") {
476  $this->form->addCommandButton("saveTaxNode", $lng->txt("save"));
477  $this->form->addCommandButton("listNodes", $lng->txt("cancel"));
478  $this->form->setTitle($lng->txt("tax_new_tax_node"));
479  } else {
480  $this->form->addCommandButton("updateTaxNode", $lng->txt("save"));
481  $this->form->addCommandButton("listNodes", $lng->txt("cancel"));
482  $this->form->setTitle($lng->txt("tax_edit_tax_node"));
483  }
484 
485  $this->form->setFormAction($ilCtrl->getFormAction($this));
486  }
487 
492  public function saveTaxNode()
493  {
494  $tpl = $this->tpl;
495  $lng = $this->lng;
497 
498  $this->initTaxNodeForm("create");
499  if ($this->form->checkInput()) {
500  $tax = $this->getCurrentTaxonomy();
501 
502  // create node
503  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
504  $node = new ilTaxonomyNode();
505  $node->setTitle($this->form->getInput("title"));
506 
507  $tax = $this->getCurrentTaxonomy();
508  if ($tax->getSortingMode() == ilObjTaxonomy::SORT_MANUAL) {
509  $order_nr = $this->form->getInput("order_nr");
510  }
511  if ($order_nr === "") {
512  $order_nr = ilTaxonomyNode::getNextOrderNr($tax->getId(), (int) $_GET["tax_node"]);
513  }
514  //echo $order_nr; exit;
515  $node->setOrderNr($order_nr);
516  $node->setTaxonomyId($tax->getId());
517  $node->create();
518 
519  // put in tree
520  ilTaxonomyNode::putInTree($tax->getId(), $node, (int) $_GET["tax_node"]);
521 
522  ilTaxonomyNode::fixOrderNumbers($tax->getId(), (int) $_GET["tax_node"]);
523 
524  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
525  $ilCtrl->redirect($this, "listNodes");
526  } else {
527  $this->form->setValuesByPost();
528  $tpl->setContent($this->form->getHtml());
529  }
530  }
531 
532 
536  public function updateTaxNode()
537  {
538  $lng = $this->lng;
540  $tpl = $this->tpl;
541 
542  $this->initTaxNodeForm("edit");
543  if ($this->form->checkInput()) {
544  // create node
545  $node = new ilTaxonomyNode($_GET["tax_node"]);
546  $node->setTitle($this->form->getInput("title"));
547 
548  $tax = $this->getCurrentTaxonomy();
549  if ($tax->getSortingMode() == ilObjTaxonomy::SORT_MANUAL) {
550  $node->setOrderNr($this->form->getInput("order_nr"));
551  }
552 
553  $node->update();
554 
555  ilUtil::sendInfo($lng->txt("msg_obj_modified"), true);
556  $ilCtrl->redirect($this, "");
557  } else {
558  $this->form->setValuesByPost();
559  $tpl->setContent($this->form->getHtml());
560  }
561  }
562 
566  public function deleteItems()
567  {
568  $lng = $this->lng;
569  $tpl = $this->tpl;
571  $ilTabs = $this->tabs;
572  $ilHelp = $this->help;
573 
574  if (!isset($_POST["id"])) {
575  ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
576  $ilCtrl->redirect($this, "listNodes");
577  }
578 
579  $this->setTabs("list_items");
580  $ilHelp->setSubScreenId("del_items");
581 
582  // $ilTabs->clearTargets();
583 
584  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
585  $confirmation_gui = new ilConfirmationGUI();
586 
587  $confirmation_gui->setFormAction($ilCtrl->getFormAction($this));
588  $confirmation_gui->setHeaderText($this->lng->txt("info_delete_sure"));
589 
590  // Add items to delete
591  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
592  foreach ($_POST["id"] as $id) {
593  $confirmation_gui->addItem(
594  "id[]",
595  $id,
597  );
598  }
599 
600  $confirmation_gui->setCancel($lng->txt("cancel"), "listNodes");
601  $confirmation_gui->setConfirm($lng->txt("confirm"), "confirmedDelete");
602 
603  $tpl->setContent($confirmation_gui->getHTML());
604  }
605 
609  public function confirmedDelete()
610  {
612 
613  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
614 
615  // delete all selected objects
616  foreach ($_POST["id"] as $id) {
617  $node = new ilTaxonomyNode($id);
618  $tax = new ilObjTaxonomy($node->getTaxonomyId());
619  $tax_tree = $tax->getTree();
620  $node_data = $tax_tree->getNodeData($id);
621  if (is_object($node)) {
622  $node->delete();
623  }
624  if ($tax_tree->isInTree($id)) {
625  $tax_tree->deleteTree($node_data);
626  }
627  ilTaxonomyNode::fixOrderNumbers($node->getTaxonomyId(), $node_data["parent"]);
628  }
629 
630  // feedback
631  ilUtil::sendInfo($this->lng->txt("info_deleted"), true);
632 
633  $ilCtrl->redirect($this, "listNodes");
634  }
635 
642  public function saveSorting()
643  {
645  $lng = $this->lng;
646 
647  // save sorting
648  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
649  if (is_array($_POST["order"])) {
650  // asort($_POST["order"]);
651  // $cnt = 10;
652  foreach ($_POST["order"] as $k => $v) {
654  }
655  ilTaxonomyNode::fixOrderNumbers($this->getCurrentTaxonomyId(), (int) $_GET["tax_node"]);
656  }
657 
658  // save titles
659  if (is_array($_POST["title"])) {
660  foreach ($_POST["title"] as $k => $v) {
662  (int) $k,
664  );
665  }
666  }
667 
668 
669  ilUtil::sendSuccess($lng->txt("msg_obj_modified"));
670  $ilCtrl->redirect($this, "listNodes");
671  }
672 
676  public function moveItems()
677  {
678  $tpl = $this->tpl;
680  $lng = $this->lng;
681  $ilToolbar = $this->toolbar;
682  $ilHelp = $this->help;
683 
684  if (!isset($_POST["id"])) {
685  ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
686  $ilCtrl->redirect($this, "listNodes");
687  }
688 
689  $this->setTabs("list_items");
690  $ilHelp->setSubScreenId("move_items");
691 
692  $ilToolbar->addButton(
693  $lng->txt("cancel"),
694  $ilCtrl->getLinkTarget($this, "listNodes")
695  );
696 
697  ilUtil::sendInfo($lng->txt("tax_please_select_target"));
698 
699  if (is_array($_POST["id"])) {
700  $ilCtrl->setParameter($this, "move_ids", implode($_POST["id"], ","));
701 
703  $tpl = $this->tpl;
705  $lng = $this->lng;
706 
707  include_once("./Services/Taxonomy/classes/class.ilTaxonomyExplorerGUI.php");
708  $tax_exp = new ilTaxonomyExplorerGUI(
709  $this,
710  "moveItems",
711  $this->getCurrentTaxonomy()->getId(),
712  "ilobjtaxonomygui",
713  "pasteItems"
714  );
715  if (!$tax_exp->handleCommand()) {
716  //$tpl->setLeftNavContent($tax_exp->getHTML());
717  $tpl->setContent($tax_exp->getHTML() . "&nbsp;");
718  }
719  }
720  }
721 
725  public function pasteItems()
726  {
727  $lng = $this->lng;
729  //var_dump($_GET);
730  //var_dump($_POST);
731  if ($_GET["move_ids"] != "") {
732  $move_ids = explode(",", $_GET["move_ids"]);
733  $tax = $this->getCurrentTaxonomy();
734  $tree = $tax->getTree();
735 
736  include_once("./Services/Taxonomy/classes/class.ilTaxonomyNode.php");
737  $target_node = new ilTaxonomyNode((int) $_GET["tax_node"]);
738  foreach ($move_ids as $m_id) {
739  // cross check taxonomy
740  $node = new ilTaxonomyNode((int) $m_id);
741  if ($node->getTaxonomyId() == $tax->getId() &&
742  ($target_node->getTaxonomyId() == $tax->getId() ||
743  $target_node->getId() == $tree->readRootId())) {
744  // check if target is not within the selected nodes
745  if ($tree->isGrandChild((int) $m_id, $target_node->getId())) {
746  ilUtil::sendFailure($lng->txt("tax_target_within_nodes"), true);
747  $this->ctrl->redirect($this, "listNodes");
748  }
749 
750  // if target is not current place, move
751  $parent_id = $tree->getParentId((int) $m_id);
752  if ($parent_id != $target_node->getId()) {
753  $tree->moveTree((int) $m_id, $target_node->getId());
754  ilTaxonomyNode::fixOrderNumbers($tax->getId(), $target_node->getId());
756  }
757  }
758  }
759  }
760 
761  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
762  $ilCtrl->redirect($this, "listNodes");
763  }
764 
768  public function confirmDeleteTaxonomy()
769  {
771  $tpl = $this->tpl;
772  $lng = $this->lng;
773 
774  $tax = $this->getCurrentTaxonomy();
775 
776  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
777  $cgui = new ilConfirmationGUI();
778  $cgui->setFormAction($ilCtrl->getFormAction($this));
779  $cgui->setHeaderText($lng->txt("tax_confirm_deletion"));
780  $cgui->setCancel($lng->txt("cancel"), "listTaxonomies");
781  $cgui->setConfirm($lng->txt("delete"), "deleteTaxonomy");
782 
783  $cgui->addItem("id[]", $i, $tax->getTitle());
784 
785  $tpl->setContent($cgui->getHTML());
786  }
787 
794  public function deleteTaxonomy()
795  {
797  $lng = $this->lng;
798 
799  $tax = $this->getCurrentTaxonomy();
800  $tax->delete();
801 
802  ilUtil::sendSuccess($lng->txt("tax_tax_deleted"), true);
803  $ilCtrl->redirect($this, "listTaxonomies");
804  }
805 
812  public function listTaxonomies()
813  {
814  $tpl = $this->tpl;
815  $ilToolbar = $this->toolbar;
816  $lng = $this->lng;
818 
820  if (count($tax_ids) == 0 || $this->getMultiple()) {
821  $ilToolbar->addButton(
822  $lng->txt("tax_add_taxonomy"),
823  $ilCtrl->getLinkTarget($this, "createAssignedTaxonomy")
824  );
825  } else {
826  ilUtil::sendInfo($lng->txt("tax_max_one_tax"));
827  }
828 
829  include_once("./Services/Taxonomy/classes/class.ilTaxonomyListTableGUI.php");
830 
832  $this,
833  "listTaxonomies",
834  $this->getAssignedObject(),
835  $this->getListInfo()
836  );
837 
838  $tpl->setContent($tab->getHTML());
839  }
840 
846  public function setTabs($a_id = "")
847  {
848  $ilTabs = $this->tabs;
850  $tpl = $this->tpl;
851  $lng = $this->lng;
852  $ilHelp = $this->help;
853 
854  $ilTabs->clearTargets();
855 
856  $ilHelp->setScreenIdComponent("tax");
857 
858  $tpl->clearHeader();
859  $tpl->setTitle(ilObject::_lookupTitle($this->getCurrentTaxonomyId()));
860  $tpl->setDescription(ilObject::_lookupDescription($this->getCurrentTaxonomyId()));
861  $tpl->setTitleIcon(ilUtil::getImagePath("icon_tax.svg"));
862 
863  $ilTabs->setBackTarget(
864  $lng->txt("back"),
865  $ilCtrl->getLinkTarget($this, "listTaxonomies")
866  );
867 
868  $ilTabs->addTab(
869  "list_items",
870  $lng->txt("tax_nodes"),
871  $ilCtrl->getLinkTarget($this, "listNodes")
872  );
873  if ($this->assigned_item_sorting) {
874  $ilTabs->addTab(
875  "ass_items",
876  $lng->txt("tax_assigned_items"),
877  $ilCtrl->getLinkTarget($this, "listAssignedItems")
878  );
879  }
880  $ilTabs->addTab(
881  "settings",
882  $lng->txt("settings"),
883  $ilCtrl->getLinkTarget($this, "editSettings")
884  );
885 
886  $ilTabs->activateTab($a_id);
887  }
888 
895  public function editSettings()
896  {
897  $tpl = $this->tpl;
898 
899  $this->setTabs("settings");
900 
901  $form = $this->initSettingsForm();
902  $tpl->setContent($form->getHTML());
903  }
904 
908  public function initSettingsForm()
909  {
910  $lng = $this->lng;
912 
913  $tax = $this->getCurrentTaxonomy();
914 
915  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
916  $form = new ilPropertyFormGUI();
917 
918  // title
919  $ti = new ilTextInputGUI($lng->txt("title"), "title");
920  $ti->setMaxLength(200);
921  $form->addItem($ti);
922  $ti->setValue($tax->getTitle());
923 
924  // description
925  $ta = new ilTextAreaInputGUI($lng->txt("description"), "description");
926  //$ta->setCols();
927  //$ta->setRows();
928  $form->addItem($ta);
929  $ta->setValue($tax->getDescription());
930 
931  // sorting
932  $options = array(
933  ilObjTaxonomy::SORT_ALPHABETICAL => $lng->txt("tax_alphabetical"),
934  ilObjTaxonomy::SORT_MANUAL => $lng->txt("tax_manual")
935  );
936  $si = new ilSelectInputGUI($lng->txt("tax_node_sorting"), "sorting");
937  $si->setOptions($options);
938  $form->addItem($si);
939  $si->setValue($tax->getSortingMode());
940 
941  // assigned item sorting
942  if ($this->assigned_item_sorting) {
943  $cb = new ilCheckboxInputGUI($lng->txt("tax_item_sorting"), "item_sorting");
944  $cb->setChecked($tax->getItemSorting());
945  $form->addItem($cb);
946  }
947 
948  $form->addCommandButton("updateSettings", $lng->txt("save"));
949 
950  $form->setTitle($lng->txt("settings"));
951  $form->setFormAction($ilCtrl->getFormAction($this));
952 
953  return $form;
954  }
955 
959  public function updateSettings()
960  {
961  $tpl = $this->tpl;
962  $lng = $this->lng;
964 
965  $form = $this->initSettingsForm();
966  if ($form->checkInput()) {
967  $tax = $this->getCurrentTaxonomy();
968  $tax->setTitle($form->getInput("title"));
969  $tax->setDescription($form->getInput("description"));
970  $tax->setSortingMode($form->getInput("sorting"));
971  $tax->setItemSorting($form->getInput("item_sorting"));
972  $tax->update();
973 
974  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
975  $ilCtrl->redirect($this, "editSettings");
976  } else {
977  $form->setValuesByPost();
978  $tpl->setContent($form->getHtml());
979  }
980  }
981 
988  public function listAssignedItems()
989  {
990  $tpl = $this->tpl;
991  $ilToolbar = $this->toolbar;
992  $lng = $this->lng;
994 
995  $tax = $this->getCurrentTaxonomy();
996 
997  $this->setTabs("ass_items");
998 
999  // show tree
1000  $this->showTree(true);
1001 
1002  // list assigned items
1003  include_once("./Services/Taxonomy/classes/class.ilTaxAssignedItemsTableGUI.php");
1005  $this,
1006  "listAssignedItems",
1007  (int) $_GET["tax_node"],
1008  $this->getCurrentTaxonomy(),
1009  $this->assigned_item_comp_id,
1010  $this->assigned_item_obj_id,
1011  $this->assigned_item_type,
1012  $this->assigned_item_info_obj
1013  );
1014 
1015  $tpl->setContent($table->getHTML());
1016  }
1017 
1024  public function saveAssignedItemsSorting()
1025  {
1026  $lng = $this->lng;
1027  $ilCtrl = $this->ctrl;
1028 
1029  include_once("./Services/Taxonomy/classes/class.ilTaxNodeAssignment.php");
1030  if (is_array($_POST["order"])) {
1031  $order = $_POST["order"];
1032  //asort($order, SORT_NUMERIC);
1033  //$cnt = 10;
1034  $tax_node = (int) $_GET["tax_node"];
1035  foreach ($order as $a_item_id => $ord_nr) {
1036  $tax_ass = new ilTaxNodeAssignment(
1037  $this->assigned_item_comp_id,
1038  $this->assigned_item_obj_id,
1039  $this->assigned_item_type,
1040  $this->getCurrentTaxonomyId()
1041  );
1042  $tax_ass->setOrderNr($tax_node, $a_item_id, $ord_nr);
1043  //$cnt+= 10;
1044  }
1045  $tax_ass = new ilTaxNodeAssignment(
1046  $this->assigned_item_comp_id,
1047  $this->assigned_item_obj_id,
1048  $this->assigned_item_type,
1049  $this->getCurrentTaxonomyId()
1050  );
1051  $tax_ass->fixOrderNr($tax_node);
1052  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1053  }
1054  $ilCtrl->redirect($this, "listAssignedItems");
1055  }
1056 }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
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.
This class represents a selection list property in a property form.
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.
global $DIC
Definition: saml.php:7
$_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.
if(!array_key_exists('StateId', $_REQUEST)) $id
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.
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.
global $ilCtrl
Definition: ilias.php:18
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$a_type
Definition: workflow.php:92
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.
if(isset($_POST['submit'])) $form
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
TableGUI class for taxonomies.
pasteItems()
Paste items (move operation)
This class represents a text property in a property form.
$ilUser
Definition: imgupload.php:18
updateTaxNode()
Update tax node.
setMaxLength($a_maxlength)
Set Max Length.
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.
setOptions($a_options)
Set Options.
Create styles array
The data for the language used.
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.
This class represents a text area property in a property form.
$i
Definition: disco.tpl.php:19
saveSorting()
Save settings and sorting.
getCurrentTaxonomy()
Get current taxonomy.
if(empty($password)) $table
Definition: pwgen.php:24
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.
if(!isset($_REQUEST['ReturnTo'])) if(!isset($_REQUEST['AuthId'])) $options
Definition: as_login.php:20
Confirmation screen class.
getListInfo()
Get list info.