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 
4 include_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  {
77  $lng = $this->lng;
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 }
static _lookupTitle($a_obj_id)
Lookup Title.
static lookupTitle($a_page_id)
Checks whether a page with given title exists.
Class ilObjLearningModule.
global $DIC
Definition: saml.php:7
static _getTitle($question_id)
Returns the question title of a question with a given id.
TableGUI class for media object usages listing.
static _lookupTitle($a_id)
lookup object title
static lookupObjFi($a_qid)
Lookip obj fi.
static _lookupTitle($a_obj_id)
Lookup title.
__construct($a_parent_obj, $a_parent_cmd, $a_term_id)
Constructor.
static _getAllReferences($a_id)
get all reference ids of object
static _lookupTermId($a_def_id)
Looks up term id for a definition id.
global $ilCtrl
Definition: ilias.php:18
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
Class ilTable2GUI.
static getUsages($a_term_id)
Get number of usages.
Class ilSCORM2004Page.
getItems()
Get items of current folder.
getTitle()
get object title public
Class ilWikiPage.
Glossary definition page object.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
Create styles array
The data for the language used.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
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.
getTitle()
get title of content object
setEnableHeader($a_enableheader)
Set Enable Header.
fillRow($a_set)
Standard Version of Fill Row.
static _lookGlossaryTerm($term_id)
get glossary term
Extension of ilPageObject for learning modules.
Class ilObjSCORMLearningModule.