ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
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 protected $adv_cols_order = array();
18
22 function __construct($a_parent_obj, $a_parent_cmd, $a_glossary, $a_offline,
23 $a_tax_node, $a_tax_id = 0)
24 {
25 global $ilCtrl, $lng, $ilAccess, $lng;
26
27 $this->glossary = $a_glossary;
28 $this->offline = $a_offline;
29 $this->tax_node = $a_tax_node;
30 $this->tax_id = $a_tax_id;
31 $this->setId("glopr".$this->glossary->getId());
32
33 include_once("./Modules/Glossary/classes/class.ilGlossaryAdvMetaDataAdapter.php");
34 $adv_ad = new ilGlossaryAdvMetaDataAdapter($this->glossary->getId());
35 $this->adv_fields = $adv_ad->getAllFields();
36
37
38 parent::__construct($a_parent_obj, $a_parent_cmd);
39 //$this->setTitle($lng->txt("cont_terms"));
40
41 if ($this->glossary->getPresentationMode() == "full_def")
42 {
43 $this->addColumn($lng->txt("cont_terms"));
44 }
45 else
46 {
47 include_once("./Modules/Glossary/classes/class.ilGlossaryAdvMetaDataAdapter.php");
48 $adv_ap = new ilGlossaryAdvMetaDataAdapter($this->glossary->getId());
49 $this->adv_cols_order = $adv_ap->getColumnOrder();
50 foreach ($this->adv_cols_order as $c)
51 {
52 if ($c["id"] == 0)
53 {
54 $this->addColumn($lng->txt("cont_term"), "term");
55 }
56 else
57 {
58 $this->addColumn($c["text"], "md_".$c["id"]);
59 }
60 }
61
62
63 $this->addColumn($lng->txt("cont_definitions"));
64 if ($this->glossary->isVirtual())
65 {
66 $this->addColumn($lng->txt("obj_glo"));
67 }
68 }
69
70 $this->setEnableHeader(true);
71 if (!$this->offline)
72 {
73 $this->setFormAction($ilCtrl->getFormAction($this->parent_obj));
74 }
75 else
76 {
77 $this->disable("footer");
78 }
79 $this->setRowTemplate("tpl.term_tbl_pres_row.html", "Modules/Glossary");
80 $this->setEnableTitle(true);
81
82 if (!$this->offline)
83 {
84 $this->initFilter();
85 $this->setFilterCommand("applyFilter");
86
87 $this->setShowRowsSelector(true);
88 }
89
90 // advanced metadata
91 include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
92 $this->record_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_FILTER,'glo',$this->glossary->getId(),'term');
93 $this->record_gui->setSelectedOnly(true);
94 $this->record_gui->setTableGUI($this);
95 $this->record_gui->parse();
96 //$this->setDefaultOrderField("login");
97 //$this->setDefaultOrderDirection("asc");
98 $this->setData($this->glossary->getTermList($this->filter["term"], $_GET["letter"],
99 $this->filter["definition"], $this->tax_node, false, true, $this->record_gui->getFilterElements()));
100// $this->setData(array());
101 }
102
106 function initFilter()
107 {
108 global $lng, $rbacreview, $ilUser, $ilDB;
109
110 // term
111 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
112 $ti = new ilTextInputGUI($lng->txt("cont_term"), "term");
113 $ti->setMaxLength(64);
114 $ti->setSize(20);
115 $ti->setSubmitFormOnEnter(true);
116 $this->addFilterItem($ti);
117 $ti->readFromSession();
118 $this->filter["term"] = $ti->getValue();
119
120 // definition
121 if ($ilDB->getDBType() != "oracle")
122 {
123 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
124 $ti = new ilTextInputGUI($lng->txt("cont_definition"), "defintion");
125 $ti->setMaxLength(64);
126 $ti->setSize(20);
127 $ti->setSubmitFormOnEnter(true);
128 $this->addFilterItem($ti);
129 $ti->readFromSession();
130 $this->filter["definition"] = $ti->getValue();
131 }
132 }
133
134 public function writeFilterToSession()
135 {
136 // #14488
137 $term_filter = $this->getFilterItemByPostVar("term");
138 if ($term_filter &&
139 $term_filter->checkInput())
140 {
141 $term_filter->setValueByArray($_POST);
142 $term_filter->writeToSession();
143 }
144
145 $def_filter = $this->getFilterItemByPostVar("defintion");
146 if ($def_filter &&
147 $def_filter->checkInput())
148 {
149 $def_filter->setValueByArray($_POST);
150 $def_filter->writeToSession();
151 }
152
153 // we cannot use the tablegui filter handling for adv md
154 $this->record_gui->importFilter();
155 }
156
162 function numericOrdering($a_field)
163 {
164 if (substr($a_field, 0, 3) == "md_")
165 {
166 $md_id = (int) substr($a_field, 3);
167 if ($this->adv_fields[$md_id]["type"] == ilAdvancedMDFieldDefinition::TYPE_DATE)
168 {
169 return true;
170 }
171 }
172 return false;
173 }
174
178 protected function fillRow($term)
179 {
180 global $lng, $ilCtrl;
181
182 $defs = ilGlossaryDefinition::getDefinitionList($term["id"]);
183 $ilCtrl->setParameter($this->parent_obj, "term_id", $term["id"]);
184
185 if ($this->glossary->getPresentationMode() == "full_def")
186 {
187 $this->tpl->setCurrentBlock("fd_td");
188 $this->tpl->setVariable("FULL_DEF",
189 $this->parent_obj->listDefinitions($_GET["ref_id"], $term["id"], true));
190 $this->tpl->parseCurrentBlock();
191 }
192 else
193 {
194 if(sizeof($defs))
195 {
196 for ($j=0; $j < count($defs); $j++)
197 {
198 $def = $defs[$j];
199 if (count($defs) > 1)
200 {
201 $this->tpl->setCurrentBlock("definition");
202 $this->tpl->setVariable("DEF_TEXT", $lng->txt("cont_definition")." ".($j + 1));
203 $this->tpl->parseCurrentBlock();
204 }
205
206 // check dirty short texts
207 $this->tpl->setCurrentBlock("definition");
208 if ($def["short_text_dirty"])
209 {
210 // #18022
211 $def_obj = new ilGlossaryDefinition($def["id"]);
212 $def_obj->updateShortText();
213 $short_str = $def_obj->getShortText();
214 }
215 else
216 {
217 $short_str = $def["short_text"];
218 }
219 // replace tex
220 // if a tex end tag is missing a tex end tag
221 $ltexs = strrpos($short_str, "[tex]");
222 $ltexe = strrpos($short_str, "[/tex]");
223 if ($ltexs > $ltexe)
224 {
225 $page = new ilGlossaryDefPage($def["id"]);
226 $page->buildDom();
227 $short_str = $page->getFirstParagraphText();
228 $short_str = strip_tags($short_str, "<br>");
229 $ltexe = strpos($short_str, "[/tex]", $ltexs);
230 $short_str = ilUtil::shortenText($short_str, $ltexe+6, true);
231 }
232 if (!$this->offline)
233 {
234 $short_str = ilUtil::insertLatexImages($short_str);
235 }
236 else
237 {
238 $short_str = ilUtil::buildLatexImages($short_str,
239 $this->parent_obj->getOfflineDirectory());
240 }
241 $short_str = ilPCParagraph::xml2output($short_str);
242
243 $this->tpl->setVariable("DEF_SHORT", $short_str);
244 $this->tpl->parseCurrentBlock();
245
246 $this->tpl->setCurrentBlock("definition_row");
247 $this->tpl->parseCurrentBlock();
248 }
249 }
250 else
251 {
252 $this->tpl->touchBlock("def_td");
253 }
254
255 // display additional column 'glossary' for meta glossaries
256 if ($this->glossary->isVirtual())
257 {
258 $this->tpl->setCurrentBlock("glossary_row");
259 $glo_title = ilObject::_lookupTitle($term["glo_id"]);
260 $this->tpl->setVariable("GLO_TITLE", $glo_title);
261 $this->tpl->parseCurrentBlock();
262 }
263
264 }
265
266 $ilCtrl->clearParameters($this->parent_obj);
267
268 // advanced metadata
269 foreach ($this->adv_cols_order as $c)
270 {
271 if ($c["id"] == 0)
272 {
273 $this->tpl->setCurrentBlock("link_start");
274 if (!$this->offline)
275 {
276 if (!empty ($filter))
277 {
278 $ilCtrl->setParameter($this->parent_obj, "term", $filter);
279 $ilCtrl->setParameter($this->parent_obj, "oldoffset", $_GET["oldoffset"]);
280 }
281 $ilCtrl->setParameter($this->parent_obj, "term_id", $term["id"]);
282 $ilCtrl->setParameter($this->parent_obj, "offset", $_GET["offset"]);
283 $this->tpl->setVariable("LINK_VIEW_TERM",
284 $ilCtrl->getLinkTarget($this->parent_obj, "listDefinitions"));
285 $ilCtrl->clearParameters($this->parent_obj);
286 }
287 else
288 {
289 $this->tpl->setVariable("LINK_VIEW_TERM", "term_".$term["id"].".html");
290 }
291 $this->tpl->parseCurrentBlock();
292
293 $this->tpl->setCurrentBlock("link_end");
294 $this->tpl->setVariable("ANCHOR_TERM", "term_".$term["id"]);
295 $this->tpl->parseCurrentBlock();
296
297 $this->tpl->setCurrentBlock("td");
298 $this->tpl->setVariable("TEXT", $term["term"]);
299 $this->tpl->parseCurrentBlock();
300 }
301 else
302 {
303 $id = $c["id"];
304
305 $val = " ";
306 if(isset($term["md_".$id."_presentation"]))
307 {
308 $pb = $term["md_".$id."_presentation"]->getList();
309 if($pb)
310 {
311 $val = $pb;
312 }
313 }
314
315 $this->tpl->setCurrentBlock("td");
316 $this->tpl->setVariable("TEXT", $val);
317 $this->tpl->parseCurrentBlock();
318 }
319 }
320 }
321
322}
323?>
$_GET["client_id"]
Glossary definition page object.
Class ilGlossaryDefinition.
static _lookupTitle($a_id)
lookup object title
static xml2output($a_text, $a_wysiwyg=false, $a_replace_lists=true)
Converts xml from DB to output in edit textarea.
Term list table for presentation mode.
__construct($a_parent_obj, $a_parent_cmd, $a_glossary, $a_offline, $a_tax_node, $a_tax_id=0)
Constructor.
writeFilterToSession()
Write filter values to session.
numericOrdering($a_field)
Should this field be sorted numeric?
Class ilTable2GUI.
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="")
Add a column to the header.
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.
getFilterItemByPostVar($a_post_var)
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
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.
static buildLatexImages($a_text, $a_dir)
replace [text]...[/tex] tags with formula image code //////// added additional parameters to make thi...
static insertLatexImages($a_text, $a_start="\[tex\]", $a_end="\[\/tex\]")
replace [text]...[/tex] tags with formula image code
$_POST['username']
Definition: cron.php:12
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40
global $ilDB
global $ilUser
Definition: imgupload.php:15