ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilCourseObjectiveMaterialAssignmentTableGUI.php
Go to the documentation of this file.
1<?php
2/*
3 +-----------------------------------------------------------------------------+
4 | ILIAS open source |
5 +-----------------------------------------------------------------------------+
6 | Copyright (c) 1998-2006 ILIAS open source, University of Cologne |
7 | |
8 | This program is free software; you can redistribute it and/or |
9 | modify it under the terms of the GNU General Public License |
10 | as published by the Free Software Foundation; either version 2 |
11 | of the License, or (at your option) any later version. |
12 | |
13 | This program is distributed in the hope that it will be useful, |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | GNU General Public License for more details. |
17 | |
18 | You should have received a copy of the GNU General Public License |
19 | along with this program; if not, write to the Free Software |
20 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21 +-----------------------------------------------------------------------------+
22*/
23
24include_once('./Services/Table/classes/class.ilTable2GUI.php');
25
35{
36 private $objective = null;
37 private $objective_lm = null;
38
39 private $objective_id = 0;
40 private $course_obj;
41
49 public function __construct($a_parent_obj,$a_course_obj,$a_objective_id)
50 {
51 global $lng,$ilCtrl;
52
53 $this->objective_id = $a_objective_id;
54 $this->course_obj = $a_course_obj;
55
56 $this->lng = $lng;
57 $this->lng->loadLanguageModule('crs');
58 $this->ctrl = $ilCtrl;
59
60 parent::__construct($a_parent_obj,'materialAssignment');
61 $this->setFormName('assignments');
62 $this->addColumn('','f',"1");
63 $this->addColumn($this->lng->txt('type'),'type',"1px");
64 $this->addColumn($this->lng->txt('title'),'title','99%');
65
66 $this->setFormAction($this->ctrl->getFormAction($a_parent_obj));
67 $this->setRowTemplate("tpl.crs_objective_list_materials_row.html","Modules/Course");
68 #$this->disable('sort');
69 #$this->disable('header');
70 #$this->disable('numinfo');
71 #$this->disable('select_all');
72
73 $this->setDefaultOrderField('title');
74 $this->setLimit(200);
75
76 $this->setNoEntriesText($this->lng->txt('crs_no_objective_lms_found'));
77
78
79 $this->addCommandButton('updateMaterialAssignment',$this->lng->txt('crs_wiz_next'));
80 #$this->addMultiCommand('updateMaterialAssignment', $this->lng->txt('crs_wiz_next'));
81 $this->addCommandButton('create',$this->lng->txt('crs_wiz_back'));
82
84
85 }
86
94 protected function fillRow($a_set)
95 {
96 foreach($a_set['sub'] as $sub_data)
97 {
98 // Indentation
99 for($i = $sub_data['depth'];$i > 1;$i--)
100 {
101 $this->tpl->touchBlock('begin_depth');
102 $this->tpl->touchBlock('end_depth');
103 }
104
105 $this->tpl->setCurrentBlock('chapter');
106 include_once('Modules/LearningModule/classes/class.ilLMObject.php');
107
108 if($this->objective_lm->isChapterAssigned($a_set['id'],$sub_data['id']))
109 {
110 $this->tpl->setVariable('CHAP_CHECKED','checked="checked"');
111 }
112
113 $this->tpl->setVariable('CHAPTER_TITLE',ilLMObject::_lookupTitle($sub_data['id']));
114 $this->tpl->setVariable('CHAP_ID',$a_set['id'].'_'.$sub_data['id']);
115 $this->tpl->setVariable('CHAP_TYPE_IMG',ilObject::_getIcon($sub_data['id'],"tiny", $sub_data['type']));
116 $this->tpl->setVariable('CHAP_TYPE_ALT',$this->lng->txt('obj_'.$sub_data['type']));
117 $this->tpl->parseCurrentBlock();
118
119
120 }
121 if(count($a_set['sub']))
122 {
123 $this->tpl->setVariable('TXT_CHAPTER',$this->lng->txt('objs_st'));
124 }
125
126 $this->tpl->setVariable('VAL_ID',$a_set['id']);
127
128 if($this->objective_lm->isAssigned($a_set['id']))
129 {
130 $this->tpl->setVariable('VAL_CHECKED','checked="checked"');
131 }
132
133 $this->tpl->setVariable('ROW_TYPE_IMG',ilObject::_getIcon($a_set['obj_id'],"tiny", $a_set['type']));
134 $this->tpl->setVariable('ROW_TYPE_ALT',$this->lng->txt('obj_'.$a_set['type']));
135
136 $this->tpl->setVariable('VAL_TITLE',$a_set['title']);
137 if(strlen($a_set['description']))
138 {
139 $this->tpl->setVariable('VAL_DESC',$a_set['description']);
140 }
141 }
142
150 public function parse($a_assignable)
151 {
152 global $objDefinition;
153
154 $materials = array();
155 foreach($a_assignable as $node)
156 {
157 // no side blocks here
158 if($objDefinition->isSideBlock($node['type']))
159 {
160 continue;
161 }
162
163 $tmp_data = array();
164 $subobjects = array();
165
166 if($node['type'] == 'lm')
167 {
168 include_once('./Modules/LearningModule/classes/class.ilLMObject.php');
169
170
171 // Chapters and pages
172 foreach($chapters = $this->getAllSubObjects($node['child']) as $chapter => $chapter_data)
173 {
174 $sub['title'] = ilLMObject::_lookupTitle($chapter);
175 $sub['id'] = $chapter;
176 $sub['depth'] = $chapter_data['depth'];
177 $sub['type'] = $chapter_data['type'];
178
179 $subobjects[] = $sub;
180 }
181 }
182
183 $tmp_data['sub'] = $subobjects;
184 $tmp_data['title'] = $node['title'];
185 $tmp_data['description'] = $node['description'];
186 $tmp_data['type'] = $node['type'];
187 $tmp_data['id'] = $node['child'];
188 $tmp_data['obj_id'] = $node['obj_id'];
189
190 $materials[] = $tmp_data;
191 }
192
193 $this->setData($materials);
194 }
195
202 protected function getAllSubObjects($a_ref_id)
203 {
204 $tree = new ilTree(ilObject::_lookupObjId($a_ref_id));
205 $tree->setTableNames('lm_tree','lm_data');
206 $tree->setTreeTablePK("lm_id");
207
208 foreach($tree->getSubTree($tree->getNodeData($tree->getRootId())) as $node)
209 {
210 if($node['type'] == 'st' or $node['type'] == 'pg')
211 {
212 $depth = $node['depth'] - 1;
213 $child = $node['child'];
214 $chapter[$child]['depth'] = $depth;
215 $chapter[$child]['type'] = $node['type'];
216 }
217 }
218 return $chapter ? $chapter : array();
219 }
220
221
228 protected function initObjectiveAssignments()
229 {
230 include_once('./Modules/Course/classes/class.ilCourseObjective.php');
231 $this->objective = new ilCourseObjective($this->course_obj,$this->objective_id);
232
233 include_once './Modules/Course/classes/class.ilCourseObjectiveMaterials.php';
234 $this->objective_lm = new ilCourseObjectiveMaterials($this->objective_id);
235 }
236}
237?>
TableGUI for material assignments of course objectives.
__construct($a_parent_obj, $a_course_obj, $a_objective_id)
Constructor.
getAllSubObjects($a_ref_id)
get all subobject (structure and page objects) of a lm
class ilCourseObjectiveMaterials
class ilcourseobjective
static _lookupTitle($a_obj_id)
Lookup title.
static _lookupObjId($a_id)
static _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
Class ilTable2GUI.
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setNoEntriesText($a_text)
Set text for an empty table.
setData($a_data)
set table data @access public
setRowTemplate($a_template, $a_template_dir="")
Set row template.
setLimit($a_limit=0, $a_default_limit=0)
set max.
setFormName($a_formname)
Set Form name.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40