ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilPresentationListTableGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once("./Services/Table/classes/class.ilTable2GUI.php");
5
16{
17
21 protected $glossary;
22
26 protected $adv_cols_order = array();
27
31 protected $lng;
32
36 protected $ctrl;
37
41 protected $page_config;
42
46 public function __construct(
47 $a_parent_obj,
48 $a_parent_cmd,
49 $a_glossary,
50 $a_offline,
51 $a_tax_node,
52 $a_tax_id = 0
53 ) {
54 global $DIC;
55
56 $this->lng = $DIC->language();
57 $this->ctrl = $DIC->ctrl();
58
59 $this->glossary = $a_glossary;
60 $this->offline = $a_offline;
61 $this->tax_node = $a_tax_node;
62 $this->tax_id = $a_tax_id;
63 $this->setId("glopr" . $this->glossary->getId());
64
65 $gdf = new ilGlossaryDefPage();
66 $this->page_config = $gdf->getPageConfig();
67
68 include_once("./Modules/Glossary/classes/class.ilGlossaryAdvMetaDataAdapter.php");
69 $adv_ad = new ilGlossaryAdvMetaDataAdapter($this->glossary->getRefId());
70 $this->adv_fields = $adv_ad->getAllFields();
71
72
73 parent::__construct($a_parent_obj, $a_parent_cmd);
74 //$this->setTitle($this->lng->txt("cont_terms"));
75
76 if ($this->glossary->getPresentationMode() == "full_def") {
77 $this->addColumn($this->lng->txt("cont_terms"));
78 } else {
79 include_once("./Modules/Glossary/classes/class.ilGlossaryAdvMetaDataAdapter.php");
80 $adv_ap = new ilGlossaryAdvMetaDataAdapter($this->glossary->getRefId());
81 $this->adv_cols_order = $adv_ap->getColumnOrder();
82 foreach ($this->adv_cols_order as $c) {
83 if ($c["id"] == 0) {
84 $this->addColumn($this->lng->txt("cont_term"), "term");
85 } else {
86 $this->addColumn($c["text"], "md_" . $c["id"]);
87 }
88 }
89
90
91 $this->addColumn($this->lng->txt("cont_definitions"));
92 if ($this->glossary->isVirtual()) {
93 $this->addColumn($this->lng->txt("obj_glo"));
94 }
95 }
96
97 $this->setEnableHeader(true);
98 if (!$this->offline) {
99 $this->setFormAction($this->ctrl->getFormAction($this->parent_obj));
100 } else {
101 $this->disable("footer");
102 }
103 $this->setRowTemplate("tpl.term_tbl_pres_row.html", "Modules/Glossary");
104 $this->setEnableTitle(true);
105
106 if (!$this->offline) {
107 $this->initFilter();
108 $this->setFilterCommand("applyFilter");
109
110 $this->setShowRowsSelector(true);
111 }
112
113 // advanced metadata
114 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
115 $this->record_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_FILTER, 'glo', $this->glossary->getId(), 'term');
116 $this->record_gui->setTableGUI($this);
117 $this->record_gui->parse();
118 //$this->setDefaultOrderField("login");
119 //$this->setDefaultOrderDirection("asc");
120 $this->setData($this->glossary->getTermList(
121 $this->filter["term"],
122 $_GET["letter"],
123 $this->filter["definition"],
124 $this->tax_node,
125 false,
126 true,
127 $this->record_gui->getFilterElements(),
128 false,
129 true
130 ));
131 // $this->setData(array());
132 }
133
139 protected function getAdvMDRecordGUI()
140 {
141 return $this->record_gui;
142 }
143
147 public function initFilter()
148 {
149 // term
150 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
151 $ti = new ilTextInputGUI($this->lng->txt("cont_term"), "term");
152 $ti->setMaxLength(64);
153 $ti->setSize(20);
154 $ti->setSubmitFormOnEnter(true);
155 $this->addFilterItem($ti);
156 $ti->readFromSession();
157 $this->filter["term"] = $ti->getValue();
158
159 // definition
160 if ($this->glossary->supportsLongTextQuery()) {
161 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
162 $ti = new ilTextInputGUI($this->lng->txt("cont_definition"), "defintion");
163 $ti->setMaxLength(64);
164 $ti->setSize(20);
165 $ti->setSubmitFormOnEnter(true);
166 $this->addFilterItem($ti);
167 $ti->readFromSession();
168 $this->filter["definition"] = $ti->getValue();
169 }
170 }
171
177 public function numericOrdering($a_field)
178 {
179 if (substr($a_field, 0, 3) == "md_") {
180 $md_id = (int) substr($a_field, 3);
181 if ($this->adv_fields[$md_id]["type"] == ilAdvancedMDFieldDefinition::TYPE_DATE) {
182 return true;
183 }
184 }
185 return false;
186 }
187
191 protected function fillRow($term)
192 {
193 $defs = ilGlossaryDefinition::getDefinitionList($term["id"]);
194 $this->ctrl->setParameter($this->parent_obj, "term_id", $term["id"]);
195
196 if ($this->glossary->getPresentationMode() == "full_def") {
197 $this->tpl->setCurrentBlock("fd_td");
198 $this->tpl->setVariable(
199 "FULL_DEF",
200 $this->parent_obj->listDefinitions($_GET["ref_id"], $term["id"], true)
201 );
202 $this->tpl->parseCurrentBlock();
203 } else {
204 if (sizeof($defs)) {
205 for ($j=0; $j < count($defs); $j++) {
206 $def = $defs[$j];
207 if (count($defs) > 1) {
208 if (!$this->offline) {
209 if (!empty($filter)) {
210 $this->ctrl->setParameter($this->parent_obj, "term", $filter);
211 $this->ctrl->setParameter($this->parent_obj, "oldoffset", $_GET["oldoffset"]);
212 }
213 $this->ctrl->setParameter($this->parent_obj, "term_id", $term["id"]);
214 $this->ctrl->setParameter($this->parent_obj, "offset", $_GET["offset"]);
215 $def_href = $this->ctrl->getLinkTarget($this->parent_obj, "listDefinitions");
216 $this->ctrl->clearParameters($this->parent_obj);
217 } else {
218 $def_href = "term_" . $term["id"] . ".html";
219 }
220 $this->tpl->parseCurrentBlock();
221
222 $this->tpl->setCurrentBlock("definition");
223 $this->tpl->setVariable("DEF_TEXT", $this->lng->txt("cont_definition") . " " . ($j + 1));
224 $this->tpl->setVariable("HREF_DEF", $def_href . "#ilPageTocDef" . ($j + 1));
225 $this->tpl->parseCurrentBlock();
226 }
227
228 // check dirty short texts
229 $this->tpl->setCurrentBlock("definition");
230 if ($def["short_text_dirty"]) {
231 // #18022
232 $def_obj = new ilGlossaryDefinition($def["id"]);
233 $def_obj->updateShortText();
234 $short_str = $def_obj->getShortText();
235 } else {
236 $short_str = $def["short_text"];
237 }
238
239 if (!$this->page_config->getPreventHTMLUnmasking()) {
240 $short_str = str_replace("&lt;", "<", $short_str);
241 $short_str = str_replace("&gt;", ">", $short_str);
242 }
243
244 // replace tex
245 // if a tex end tag is missing a tex end tag
246 $ltexs = strrpos($short_str, "[tex]");
247 $ltexe = strrpos($short_str, "[/tex]");
248 if ($ltexs > $ltexe) {
249 $page = new ilGlossaryDefPage($def["id"]);
250 $page->buildDom();
251 $short_str = $page->getFirstParagraphText();
252 $short_str = strip_tags($short_str, "<br>");
253 $ltexe = strpos($short_str, "[/tex]", $ltexs);
254 $short_str = ilUtil::shortenText($short_str, $ltexe+6, true);
255 }
256
257 include_once './Services/MathJax/classes/class.ilMathJax.php';
258 if (!$this->offline) {
259 $short_str = ilMathJax::getInstance()->insertLatexImages($short_str);
260 } else {
261 $short_str = ilMathJax::getInstance()->insertLatexImages(
262 $short_str,
263 '[tex]',
264 '[/tex]',
265 $this->parent_obj->getOfflineDirectory() . '/teximg',
266 './teximg'
267 );
268 }
269
270
271 $short_str = ilPCParagraph::xml2output($short_str, false, true, false);
272
273 $this->tpl->setVariable("DEF_SHORT", $short_str);
274 $this->tpl->parseCurrentBlock();
275
276 $this->tpl->setCurrentBlock("definition_row");
277 $this->tpl->parseCurrentBlock();
278 }
279 } else {
280 $this->tpl->touchBlock("def_td");
281 }
282
283 // display additional column 'glossary' for meta glossaries
284 if ($this->glossary->isVirtual()) {
285 $this->tpl->setCurrentBlock("glossary_row");
286 $glo_title = ilObject::_lookupTitle($term["glo_id"]);
287 $this->tpl->setVariable("GLO_TITLE", $glo_title);
288 $this->tpl->parseCurrentBlock();
289 }
290 }
291
292 $this->ctrl->clearParameters($this->parent_obj);
293
294 // advanced metadata
295 foreach ($this->adv_cols_order as $c) {
296 if ($c["id"] == 0) {
297 $this->tpl->setCurrentBlock("link_start");
298 if (!$this->offline) {
299 if (!empty($filter)) {
300 $this->ctrl->setParameter($this->parent_obj, "term", $filter);
301 $this->ctrl->setParameter($this->parent_obj, "oldoffset", $_GET["oldoffset"]);
302 }
303 $this->ctrl->setParameter($this->parent_obj, "term_id", $term["id"]);
304 $this->ctrl->setParameter($this->parent_obj, "offset", $_GET["offset"]);
305 $this->tpl->setVariable(
306 "LINK_VIEW_TERM",
307 $this->ctrl->getLinkTarget($this->parent_obj, "listDefinitions")
308 );
309 $this->ctrl->clearParameters($this->parent_obj);
310 } else {
311 $this->tpl->setVariable("LINK_VIEW_TERM", "term_" . $term["id"] . ".html");
312 }
313 $this->tpl->parseCurrentBlock();
314
315 $this->tpl->setCurrentBlock("link_end");
316 $this->tpl->setVariable("ANCHOR_TERM", "term_" . $term["id"]);
317 $this->tpl->parseCurrentBlock();
318
319 $this->tpl->setCurrentBlock("td");
320 $this->tpl->setVariable("TEXT", $term["term"]);
321 $this->tpl->parseCurrentBlock();
322 } else {
323 $id = $c["id"];
324
325 $val = " ";
326 if (isset($term["md_" . $id . "_presentation"])) {
327 $pb = $term["md_" . $id . "_presentation"]->getList();
328 if ($pb) {
329 $val = $pb;
330 }
331 }
332
333 $this->tpl->setCurrentBlock("td");
334 $this->tpl->setVariable("TEXT", $val);
335 $this->tpl->parseCurrentBlock();
336 }
337 }
338 }
339}
$_GET["client_id"]
An exception for terminatinating execution or to throw for unit testing.
Glossary definition page object.
Class ilGlossaryDefinition.
static getDefinitionList($a_term_id)
static
static getInstance()
Singleton: get instance.
static _lookupTitle($a_id)
lookup object title
static xml2output($a_text, $a_wysiwyg=false, $a_replace_lists=true, $unmask=true)
Converts xml from DB to output in edit textarea.
Term list table for presentation mode.
getAdvMDRecordGUI()
needed for advmd filter handling
numericOrdering($a_field)
Should this field be sorted numeric?
__construct( $a_parent_obj, $a_parent_cmd, $a_glossary, $a_offline, $a_tax_node, $a_tax_id=0)
Constructor.
Class ilTable2GUI.
setEnableHeader($a_enableheader)
Set Enable Header.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
setData($a_data)
set table data @access public
setEnableTitle($a_enabletitle)
Set Enable Title.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
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.
setId($a_val)
Set id.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setFilterCommand($a_val, $a_caption=null)
Set filter command.
disable($a_module_name)
diesables particular modules of table
This class represents a text property in a property form.
static shortenText( $a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
$def
Definition: croninfo.php:21
if(!array_key_exists('StateId', $_REQUEST)) $id
global $DIC
Definition: saml.php:7