ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilTermUsagesTableGUI.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2019 ILIAS open source, Extended GPL, see docs/LICENSE */
4
11{
15 protected $access;
16
17
21 public function __construct($a_parent_obj, $a_parent_cmd, $a_term_id)
22 {
23 global $DIC;
24
25 $this->ctrl = $DIC->ctrl();
26 $this->lng = $DIC->language();
27 $this->access = $DIC->access();
28 $ilCtrl = $DIC->ctrl();
29 $lng = $DIC->language();
30 $ilAccess = $DIC->access();
31 $lng = $DIC->language();
32
33 parent::__construct($a_parent_obj, $a_parent_cmd);
34 $this->term_id = $a_term_id;
35
36 $this->addColumn("", "", "1"); // checkbox
37 $this->setEnableHeader(false);
38 $this->setFormAction($ilCtrl->getFormAction($a_parent_obj));
39 $this->setRowTemplate("tpl.term_usage_row.html", "Modules/Glossary");
40 $this->getItems();
41 $this->setTitle($lng->txt("cont_usage"));
42 }
43
47 public function getItems()
48 {
49 $usages = ilGlossaryTerm::getUsages($this->term_id);
50
51 $clip_cnt = 0;
52 $to_del = array();
53 $agg_usages = array();
54 foreach ($usages as $k => $usage) {
55 if (empty($agg_usages[$usage["type"] . ":" . $usage["id"]])) {
56 $usage["hist_nr"] = array($usage["hist_nr"]);
57 $agg_usages[$usage["type"] . ":" . $usage["id"]] = $usage;
58 } else {
59 $agg_usages[$usage["type"] . ":" . $usage["id"]]["hist_nr"][] =
60 $usage["hist_nr"];
61 }
62 }
63
64 $this->setData($agg_usages);
65 }
66
71 protected function fillRow($a_set)
72 {
74 $ilCtrl = $this->ctrl;
75 $ilAccess = $this->access;
76
77 $usage = $a_set;
78
79 if (is_int(strpos($usage["type"], ":"))) {
80 $us_arr = explode(":", $usage["type"]);
81 $usage["type"] = $us_arr[1];
82 $cont_type = $us_arr[0];
83 }
84
85 switch ($usage["type"]) {
86 case "pg":
87 $item = array();
88
89 //$this->tpl->setVariable("TXT_OBJECT", $usage["type"].":".$usage["id"]);
90 switch ($cont_type) {
91 case "sahs":
92 $page_obj = new ilSCORM2004Page($usage["id"]);
93 $lm_obj = new ilObjSAHSLearningModule($page_obj->getParentId(), false);
94 $item["obj_type_txt"] = $this->lng->txt("obj_" . $cont_type);
95 $item["obj_title"] = $lm_obj->getTitle();
96 $item["sub_txt"] = $this->lng->txt("pg");
97 $item["sub_title"] = ilSCORM2004PageNode::_lookupTitle($page_obj->getId());
98 $ref_id = $this->getFirstWritableRefId($lm_obj->getId());
99 if ($ref_id > 0) {
100 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "sahs");
101 }
102 break;
103
104 case "lm":
105 $page_obj = new ilLMPage($usage["id"]);
106 $lm_obj = new ilObjLearningModule($page_obj->getParentId(), false);
107 $item["obj_type_txt"] = $this->lng->txt("obj_" . $cont_type);
108 $item["obj_title"] = $lm_obj->getTitle();
109 $item["sub_txt"] = $this->lng->txt("pg");
110 $item["sub_title"] = ilLMObject::_lookupTitle($page_obj->getId());
111 $ref_id = $this->getFirstWritableRefId($lm_obj->getId());
112 if ($ref_id > 0) {
113 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "lm");
114 }
115 break;
116
117 case "wpg":
118 $page_obj = new ilWikiPage($usage["id"]);
119 $item["obj_type_txt"] = $this->lng->txt("obj_wiki");
120 $item["obj_title"] = ilObject::_lookupTitle($page_obj->getParentId());
121 $item["sub_txt"] = $this->lng->txt("pg");
122 $item["sub_title"] = ilWikiPage::lookupTitle($page_obj->getId());
123 $ref_id = $this->getFirstWritableRefId($page_obj->getParentId());
124 if ($ref_id > 0) {
125 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "wiki");
126 }
127 break;
128
129 case "gdf":
130 $page_obj = new ilGlossaryDefPage($usage["id"]);
131 $term_id = ilGlossaryDefinition::_lookupTermId($page_obj->getId());
132 $glo_id = ilGlossaryTerm::_lookGlossaryId($term_id);
133 $item["obj_type_txt"] = $this->lng->txt("obj_glo");
134 $item["obj_title"] = ilObject::_lookupTitle($glo_id);
135 $item["sub_txt"] = $this->lng->txt("cont_term");
136 $item["sub_title"] = ilGlossaryTerm::_lookGlossaryTerm($term_id);
137 $ref_id = $this->getFirstWritableRefId($page_obj->getParentId());
138 if ($ref_id > 0) {
139 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "glo");
140 }
141 break;
142
143 case "fold":
144 case "root":
145 case "crs":
146 case "grp":
147 case "cat":
148 case "cont":
149 $item["obj_type_txt"] = $this->lng->txt("obj_" . $cont_type);
150 $item["obj_title"] = ilObject::_lookupTitle($usage["id"]);
151 $ref_id = $this->getFirstWritableRefId($usage["id"]);
152 if ($ref_id > 0) {
153 $item["obj_link"] = ilLink::_getStaticLink($ref_id, $cont_type);
154 }
155 break;
156
157 default:
158 $item["obj_title"] = "Page " . $cont_type . ", " . $usage["id"];
159 break;
160 }
161 break;
162
163 case "mep":
164 $item["obj_type_txt"] = $this->lng->txt("obj_mep");
165 $item["obj_title"] = ilObject::_lookupTitle($usage["id"]);
166 $ref_id = $this->getFirstWritableRefId($usage["id"]);
167 if ($ref_id > 0) {
168 $item["obj_link"] = ilLink::_getStaticLink($ref_id, "mep");
169 }
170 break;
171
172 case "map":
173 $item["obj_type_txt"] = $this->lng->txt("obj_mob");
174 $item["obj_title"] = ilObject::_lookupTitle($usage["id"]);
175 $item["sub_txt"] = $this->lng->txt("cont_link_area");
176 break;
177
178 case "sqst":
179 $item["obj_type_txt"] = $this->lng->txt("cont_sqst");
180 $obj_id = SurveyQuestion::lookupObjFi($usage["id"]);
181 $item["obj_title"] = ilObject::_lookupTitle($obj_id);
182 $item["sub_txt"] = $this->lng->txt("question");
183 $item["sub_title"] = SurveyQuestion::_getTitle($usage["id"]);
184 $ref_id = $this->getFirstWritableRefId($obj_id);
185 if ($ref_id > 0) {
186 $item["obj_link"] = ilLink::_getStaticLink($ref_id);
187 }
188
189 break;
190
191 case "termref":
192 $item["obj_type_txt"] = $this->lng->txt("obj_glo");
193 $item["obj_title"] = ilObject::_lookupTitle($usage["id"]);
194 $item["sub_txt"] = $this->lng->txt("glo_referenced_term");
195 $ref_id = $this->getFirstWritableRefId($usage["id"]);
196 if ($ref_id > 0) {
197 $item["obj_link"] = ilLink::_getStaticLink($ref_id);
198 }
199 break;
200
201 default:
202 $item["obj_title"] = "Type " . $usage["type"] . ", " . $usage["id"];
203 break;
204 }
205
206 // show versions
207 if (is_array($usage["hist_nr"]) &&
208 (count($usage["hist_nr"]) > 1 || $usage["hist_nr"][0] > 0)) {
209 asort($usage["hist_nr"]);
210 $ver = $sep = "";
211 if ($usage["hist_nr"][0] == 0) {
212 array_shift($usage["hist_nr"]);
213 $usage["hist_nr"][] = 0;
214 }
215 foreach ($usage["hist_nr"] as $nr) {
216 if ($nr > 0) {
217 $ver .= $sep . $nr;
218 } else {
219 $ver .= $sep . $this->lng->txt("cont_current_version");
220 }
221 $sep = ", ";
222 }
223
224 $this->tpl->setCurrentBlock("versions");
225 $this->tpl->setVariable("TXT_VERSIONS", $this->lng->txt("cont_versions"));
226 $this->tpl->setVariable("VAL_VERSIONS", $ver);
227 $this->tpl->parseCurrentBlock();
228 }
229
230 if ($item["obj_type_txt"] != "") {
231 $this->tpl->setCurrentBlock("type");
232 $this->tpl->setVariable("TXT_TYPE", $this->lng->txt("type"));
233 $this->tpl->setVariable("VAL_TYPE", $item["obj_type_txt"]);
234 $this->tpl->parseCurrentBlock();
235 }
236
237 if ($usage["type"] != "clip") {
238 if ($item["obj_link"]) {
239 $this->tpl->setCurrentBlock("linked_item");
240 $this->tpl->setVariable("TXT_OBJECT", $item["obj_title"]);
241 $this->tpl->setVariable("HREF_LINK", $item["obj_link"]);
242 $this->tpl->parseCurrentBlock();
243 } else {
244 $this->tpl->setVariable("TXT_OBJECT_NO_LINK", $item["obj_title"]);
245 }
246
247 if ($item["sub_txt"] != "") {
248 $this->tpl->setVariable("SEP", ", ");
249 $this->tpl->setVariable("SUB_TXT", $item["sub_txt"]);
250 if ($item["sub_title"] != "") {
251 $this->tpl->setVariable("SEP2", ": ");
252 $this->tpl->setVariable("SUB_TITLE", $item["sub_title"]);
253 }
254 }
255 } else {
256 $this->tpl->setVariable("TXT_OBJECT_NO_LINK", $this->lng->txt("cont_users_have_mob_in_clip1") .
257 " " . $usage["cnt"] . " " . $this->lng->txt("cont_users_have_mob_in_clip2"));
258 }
259 }
260
261 public function getFirstWritableRefId($a_obj_id)
262 {
263 $ilAccess = $this->access;
264
265 $ref_ids = ilObject::_getAllReferences($a_obj_id);
266 foreach ($ref_ids as $ref_id) {
267 if ($ilAccess->checkAccess("write", "", $ref_id)) {
268 return $ref_id;
269 }
270 }
271 return 0;
272 }
273}
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 $DIC
Definition: goto.php:24
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc