ILIAS  Release_4_2_x_branch Revision 61807
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilCourseStartObjectsTableGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once('./Services/Table/classes/class.ilTable2GUI.php');
5 
14 {
15  public function __construct($a_parent_obj, $a_parent_cmd, $a_obj_course)
16  {
17  global $lng, $ilCtrl;
18 
19  $this->lng = $lng;
20  $this->ctrl = $ilCtrl;
21  $this->lng->loadLanguageModule('crs');
22 
23  parent::__construct($a_parent_obj, $a_parent_cmd);
24 
25  $this->addColumn('','', 1);
26  $this->addColumn($this->lng->txt('title'),'title');
27  $this->addColumn($this->lng->txt('description'),'description');
28 
29  // add
30  if($a_parent_cmd != 'listStructure')
31  {
32  $this->setTitle($this->lng->txt('crs_select_starter'));
33 
34  $this->addMultiCommand('addStarter', $this->lng->txt('crs_add_starter'));
35  }
36  // list
37  else
38  {
39  $this->setTitle($this->lng->txt('crs_edit_start_objects'));
40 
41  $this->addMultiCommand('askDeleteStarter', $this->lng->txt('delete'));
42  }
43 
44  $this->setRowTemplate("tpl.crs_add_starter.html","Modules/Course");
45  $this->setFormAction($this->ctrl->getFormAction($a_parent_obj));
46 
47  $this->setDefaultOrderField('title');
48  $this->setDefaultOrderDirection('asc');
49 
50  $this->setSelectAllCheckbox('starter');
51 
52 
53  $data = array();
54 
55  include_once './Modules/Course/classes/class.ilCourseStart.php';
56  $crs_start = new ilCourseStart($a_obj_course->getRefId(), $a_obj_course->getId());
57 
58  // add
59  if($a_parent_cmd != 'listStructure')
60  {
61  $data = $this->getPossibleObjects($a_obj_course, $crs_start);
62  }
63  // list
64  else
65  {
66  $data = $this->getStartObjects($a_obj_course, $crs_start);
67  }
68 
69  $this->setData($data);
70  }
71 
72  protected function getPossibleObjects($a_obj_course, $crs_start)
73  {
74  $a_obj_course->initCourseItemObject();
75 
76  $data = array();
77  foreach($crs_start->getPossibleStarters($a_obj_course->items_obj) as $item_ref_id)
78  {
79  $tmp_obj = ilObjectFactory::getInstanceByRefId($item_ref_id);
80 
81  $data[$item_ref_id]['id'] = $item_ref_id;
82  $data[$item_ref_id]['title'] = $tmp_obj->getTitle();
83 
84  if(strlen($tmp_obj->getDescription()))
85  {
86  $data[$item_ref_id]['description'] = $tmp_obj->getDescription();
87  }
88  }
89 
90  return $data;
91  }
92 
93  protected function getStartObjects($a_obj_course, $crs_start)
94  {
95  $starters = $crs_start->getStartObjects();
96 
97  if(!count($starters))
98  {
99  ilUtil::sendInfo($this->lng->txt('crs_no_starter_created'));
100  }
101 
102  $data = array();
103  foreach($starters as $start_id => $item)
104  {
105  $tmp_obj = ilObjectFactory::getInstanceByRefId($item['item_ref_id']);
106 
107  $data[$item['item_ref_id']]['id'] = $start_id;
108  $data[$item['item_ref_id']]['title'] = $tmp_obj->getTitle();
109 
110  if(strlen($tmp_obj->getDescription()))
111  {
112  $data[$item['item_ref_id']]['description'] = $tmp_obj->getDescription();
113  }
114  }
115 
116  return $data;
117  }
118 
119  public function fillRow($a_set)
120  {
121  $this->tpl->setVariable("ID", $a_set["id"]);
122  $this->tpl->setVariable("TXT_TITLE", $a_set["title"]);
123  $this->tpl->setVariable("TXT_DESCRIPTION", $a_set["description"]);
124  }
125 }
126 
127 ?>