ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilTermUsagesTableGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once("Services/Table/classes/class.ilTable2GUI.php");
5
15{
19 protected $access;
20
21
25 public function __construct($a_parent_obj, $a_parent_cmd, $a_term_id)
26 {
27 global $DIC;
28
29 $this->ctrl = $DIC->ctrl();
30 $this->lng = $DIC->language();
31 $this->access = $DIC->access();
32 $ilCtrl = $DIC->ctrl();
33 $lng = $DIC->language();
34 $ilAccess = $DIC->access();
35 $lng = $DIC->language();
36
37 parent::__construct($a_parent_obj, $a_parent_cmd);
38 $this->term_id = $a_term_id;
39
40 $this->addColumn("", "", "1"); // checkbox
41 $this->setEnableHeader(false);
42 $this->setFormAction($ilCtrl->getFormAction($a_parent_obj));
43 $this->setRowTemplate("tpl.term_usage_row.html", "Modules/Glossary");
44 $this->getItems();
45 $this->setTitle($lng->txt("cont_usage"));
46 }
47
51 public function getItems()
52 {
53 $usages = ilGlossaryTerm::getUsages($this->term_id);
54
55 $clip_cnt = 0;
56 $to_del = array();
57 $agg_usages = array();
58 foreach ($usages as $k => $usage) {
59 if (empty($agg_usages[$usage["type"] . ":" . $usage["id"]])) {
60 $usage["hist_nr"] = array($usage["hist_nr"]);
61 $agg_usages[$usage["type"] . ":" . $usage["id"]] = $usage;
62 } else {
63 $agg_usages[$usage["type"] . ":" . $usage["id"]]["hist_nr"][] =
64 $usage["hist_nr"];
65 }
66 }
67
68 $this->setData($agg_usages);
69 }
70
75 protected function fillRow($a_set)
76 {
79 $ilAccess = $this->access;
80
81 $usage = $a_set;
82
83 if (is_int(strpos($usage["type"], ":"))) {
84 $us_arr = explode(":", $usage["type"]);
85 $usage["type"] = $us_arr[1];
86 $cont_type = $us_arr[0];
87 }
88
89 include_once('./Services/Link/classes/class.ilLink.php');
90
91 switch ($usage["type"]) {
92 case "pg":
93 $item = array();
94
95 //$this->tpl->setVariable("TXT_OBJECT", $usage["type"].":".$usage["id"]);
96 switch ($cont_type) {
97 case "sahs":
98 require_once("./Modules/Scorm2004/classes/class.ilSCORM2004Page.php");
99 $page_obj = new ilSCORM2004Page($usage["id"]);
100
101 require_once("./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php");
102 require_once("./Modules/Scorm2004/classes/class.ilSCORM2004PageNode.php");
103 $lm_obj = new ilObjSAHSLearningModule($page_obj->getParentId(), false);
104 $item["obj_type_txt"] = $this->lng->txt("obj_" . $cont_type);
105 $item["obj_title"] = $lm_obj->getTitle();
106 $item["sub_txt"] = $this->lng->txt("pg");
107 $item["sub_title"] = ilSCORM2004PageNode::_lookupTitle($page_obj->getId());
108 $ref_id = $this->getFirstWritableRefId($lm_obj->getId());
109 if ($ref_id > 0) {
110 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "sahs");
111 }
112 break;
113
114 case "lm":
115 require_once("./Modules/LearningModule/classes/class.ilLMPage.php");
116 $page_obj = new ilLMPage($usage["id"]);
117
118 require_once("./Modules/LearningModule/classes/class.ilObjContentObject.php");
119 require_once("./Modules/LearningModule/classes/class.ilObjLearningModule.php");
120 require_once("./Modules/LearningModule/classes/class.ilLMObject.php");
121 $lm_obj = new ilObjLearningModule($page_obj->getParentId(), false);
122 $item["obj_type_txt"] = $this->lng->txt("obj_" . $cont_type);
123 $item["obj_title"] = $lm_obj->getTitle();
124 $item["sub_txt"] = $this->lng->txt("pg");
125 $item["sub_title"] = ilLMObject::_lookupTitle($page_obj->getId());
126 $ref_id = $this->getFirstWritableRefId($lm_obj->getId());
127 if ($ref_id > 0) {
128 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "lm");
129 }
130 break;
131
132 case "wpg":
133 require_once("./Modules/Wiki/classes/class.ilWikiPage.php");
134 $page_obj = new ilWikiPage($usage["id"]);
135 $item["obj_type_txt"] = $this->lng->txt("obj_wiki");
136 $item["obj_title"] = ilObject::_lookupTitle($page_obj->getParentId());
137 $item["sub_txt"] = $this->lng->txt("pg");
138 $item["sub_title"] = ilWikiPage::lookupTitle($page_obj->getId());
139 $ref_id = $this->getFirstWritableRefId($page_obj->getParentId());
140 if ($ref_id > 0) {
141 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "wiki");
142 }
143 break;
144
145 case "gdf":
146 require_once("./Modules/Glossary/classes/class.ilGlossaryDefPage.php");
147 $page_obj = new ilGlossaryDefPage($usage["id"]);
148 require_once("./Modules/Glossary/classes/class.ilGlossaryTerm.php");
149 require_once("./Modules/Glossary/classes/class.ilGlossaryDefinition.php");
150 $term_id = ilGlossaryDefinition::_lookupTermId($page_obj->getId());
151 $glo_id = ilGlossaryTerm::_lookGlossaryId($term_id);
152 $item["obj_type_txt"] = $this->lng->txt("obj_glo");
153 $item["obj_title"] = ilObject::_lookupTitle($glo_id);
154 $item["sub_txt"] = $this->lng->txt("cont_term");
155 $item["sub_title"] = ilGlossaryTerm::_lookGlossaryTerm($term_id);
156 $ref_id = $this->getFirstWritableRefId($page_obj->getParentId());
157 if ($ref_id > 0) {
158 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "glo");
159 }
160 break;
161
162 case "fold":
163 case "root":
164 case "crs":
165 case "grp":
166 case "cat":
167 case "cont":
168 $item["obj_type_txt"] = $this->lng->txt("obj_" . $cont_type);
169 $item["obj_title"] = ilObject::_lookupTitle($usage["id"]);
170 $ref_id = $this->getFirstWritableRefId($usage["id"]);
171 if ($ref_id > 0) {
172 $item["obj_link"] = ilLink::_getStaticLink($ref_id, $cont_type);
173 }
174 break;
175
176 default:
177 $item["obj_title"] = "Page " . $cont_type . ", " . $usage["id"];
178 break;
179 }
180 break;
181
182 case "mep":
183 $item["obj_type_txt"] = $this->lng->txt("obj_mep");
184 $item["obj_title"] = ilObject::_lookupTitle($usage["id"]);
185 $ref_id = $this->getFirstWritableRefId($usage["id"]);
186 if ($ref_id > 0) {
187 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "mep");
188 }
189 break;
190
191 case "map":
192 $item["obj_type_txt"] = $this->lng->txt("obj_mob");
193 $item["obj_title"] = ilObject::_lookupTitle($usage["id"]);
194 $item["sub_txt"] = $this->lng->txt("cont_link_area");
195 break;
196
197 case "sqst":
198 $item["obj_type_txt"] = $this->lng->txt("cont_sqst");
199 include_once("./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php");
200 $obj_id = SurveyQuestion::lookupObjFi($usage["id"]);
201 $item["obj_title"] = ilObject::_lookupTitle($obj_id);
202 $item["sub_txt"] = $this->lng->txt("question");
203 $item["sub_title"] = SurveyQuestion::_getTitle($usage["id"]);
204 $ref_id = $this->getFirstWritableRefId($obj_id);
205 if ($ref_id > 0) {
206 $item["obj_link"] = ilLink::_getStaticLink($ref_id);
207 }
208
209 break;
210
211 case "termref":
212 $item["obj_type_txt"] = $this->lng->txt("obj_glo");
213 $item["obj_title"] = ilObject::_lookupTitle($usage["id"]);
214 $item["sub_txt"] = $this->lng->txt("glo_referenced_term");
215 $ref_id = $this->getFirstWritableRefId($usage["id"]);
216 if ($ref_id > 0) {
217 $item["obj_link"] = ilLink::_getStaticLink($ref_id);
218 }
219 break;
220
221 default:
222 $item["obj_title"] = "Type " . $usage["type"] . ", " . $usage["id"];
223 break;
224 }
225
226 // show versions
227 if (is_array($usage["hist_nr"]) &&
228 (count($usage["hist_nr"]) > 1 || $usage["hist_nr"][0] > 0)) {
229 asort($usage["hist_nr"]);
230 $ver = $sep = "";
231 if ($usage["hist_nr"][0] == 0) {
232 array_shift($usage["hist_nr"]);
233 $usage["hist_nr"][] = 0;
234 }
235 foreach ($usage["hist_nr"] as $nr) {
236 if ($nr > 0) {
237 $ver.= $sep . $nr;
238 } else {
239 $ver.= $sep . $this->lng->txt("cont_current_version");
240 }
241 $sep = ", ";
242 }
243
244 $this->tpl->setCurrentBlock("versions");
245 $this->tpl->setVariable("TXT_VERSIONS", $this->lng->txt("cont_versions"));
246 $this->tpl->setVariable("VAL_VERSIONS", $ver);
247 $this->tpl->parseCurrentBlock();
248 }
249
250 if ($item["obj_type_txt"] != "") {
251 $this->tpl->setCurrentBlock("type");
252 $this->tpl->setVariable("TXT_TYPE", $this->lng->txt("type"));
253 $this->tpl->setVariable("VAL_TYPE", $item["obj_type_txt"]);
254 $this->tpl->parseCurrentBlock();
255 }
256
257 if ($usage["type"] != "clip") {
258 if ($item["obj_link"]) {
259 $this->tpl->setCurrentBlock("linked_item");
260 $this->tpl->setVariable("TXT_OBJECT", $item["obj_title"]);
261 $this->tpl->setVariable("HREF_LINK", $item["obj_link"]);
262 $this->tpl->parseCurrentBlock();
263 } else {
264 $this->tpl->setVariable("TXT_OBJECT_NO_LINK", $item["obj_title"]);
265 }
266
267 if ($item["sub_txt"] != "") {
268 $this->tpl->setVariable("SEP", ", ");
269 $this->tpl->setVariable("SUB_TXT", $item["sub_txt"]);
270 if ($item["sub_title"] != "") {
271 $this->tpl->setVariable("SEP2", ": ");
272 $this->tpl->setVariable("SUB_TITLE", $item["sub_title"]);
273 }
274 }
275 } else {
276 $this->tpl->setVariable("TXT_OBJECT_NO_LINK", $this->lng->txt("cont_users_have_mob_in_clip1") .
277 " " . $usage["cnt"] . " " . $this->lng->txt("cont_users_have_mob_in_clip2"));
278 }
279 }
280
281 public function getFirstWritableRefId($a_obj_id)
282 {
283 $ilAccess = $this->access;
284
285 $ref_ids = ilObject::_getAllReferences($a_obj_id);
286 foreach ($ref_ids as $ref_id) {
287 if ($ilAccess->checkAccess("write", "", $ref_id)) {
288 return $ref_id;
289 }
290 }
291 return 0;
292 }
293}
An exception for terminatinating execution or to throw for unit testing.
static _getTitle($question_id)
Returns the question title of a question with a given id.
static lookupObjFi($a_qid)
Lookip obj fi.
Glossary definition page object.
static _lookupTermId($a_def_id)
Looks up term id for a definition id.
static getUsages($a_term_id)
Get number of usages.
static _lookGlossaryTerm($term_id)
get glossary term
static _lookupTitle($a_obj_id)
Lookup title.
Extension of ilPageObject for learning modules.
Class ilObjLearningModule.
Class ilObjSCORMLearningModule.
static _lookupTitle($a_id)
lookup object title
static _getAllReferences($a_id)
get all reference ids of object
static _lookupTitle($a_obj_id)
Lookup Title.
Class ilSCORM2004Page.
Class ilTable2GUI.
setEnableHeader($a_enableheader)
Set Enable Header.
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
setData($a_data)
set table data @access public
setRowTemplate($a_template, $a_template_dir="")
Set row template.
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.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
TableGUI class for media object usages listing.
fillRow($a_set)
Standard Version of Fill Row.
getItems()
Get items of current folder.
__construct($a_parent_obj, $a_parent_cmd, $a_term_id)
Constructor.
Class ilWikiPage.
static lookupTitle($a_page_id)
Checks whether a page with given title exists.
global $ilCtrl
Definition: ilias.php:18
global $DIC
Definition: saml.php:7