ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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->setTableGUI($this);
94 $this->record_gui->parse();
95 //$this->setDefaultOrderField("login");
96 //$this->setDefaultOrderDirection("asc");
97 $this->setData($this->glossary->getTermList($this->filter["term"], $_GET["letter"],
98 $this->filter["definition"], $this->tax_node, false, true, $this->record_gui->getFilterElements()));
99// $this->setData(array());
100 }
101
107 protected function getAdvMDRecordGUI()
108 {
109 return $this->record_gui;
110 }
111
115 function initFilter()
116 {
117 global $lng, $rbacreview, $ilUser, $ilDB;
118
119 // term
120 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
121 $ti = new ilTextInputGUI($lng->txt("cont_term"), "term");
122 $ti->setMaxLength(64);
123 $ti->setSize(20);
124 $ti->setSubmitFormOnEnter(true);
125 $this->addFilterItem($ti);
126 $ti->readFromSession();
127 $this->filter["term"] = $ti->getValue();
128
129 // definition
130 if ($ilDB->getDBType() != "oracle")
131 {
132 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
133 $ti = new ilTextInputGUI($lng->txt("cont_definition"), "defintion");
134 $ti->setMaxLength(64);
135 $ti->setSize(20);
136 $ti->setSubmitFormOnEnter(true);
137 $this->addFilterItem($ti);
138 $ti->readFromSession();
139 $this->filter["definition"] = $ti->getValue();
140 }
141 }
142
148 function numericOrdering($a_field)
149 {
150 if (substr($a_field, 0, 3) == "md_")
151 {
152 $md_id = (int) substr($a_field, 3);
153 if ($this->adv_fields[$md_id]["type"] == ilAdvancedMDFieldDefinition::TYPE_DATE)
154 {
155 return true;
156 }
157 }
158 return false;
159 }
160
164 protected function fillRow($term)
165 {
166 global $lng, $ilCtrl;
167
168 $defs = ilGlossaryDefinition::getDefinitionList($term["id"]);
169 $ilCtrl->setParameter($this->parent_obj, "term_id", $term["id"]);
170
171 if ($this->glossary->getPresentationMode() == "full_def")
172 {
173 $this->tpl->setCurrentBlock("fd_td");
174 $this->tpl->setVariable("FULL_DEF",
175 $this->parent_obj->listDefinitions($_GET["ref_id"], $term["id"], true));
176 $this->tpl->parseCurrentBlock();
177 }
178 else
179 {
180 if(sizeof($defs))
181 {
182 for ($j=0; $j < count($defs); $j++)
183 {
184 $def = $defs[$j];
185 if (count($defs) > 1)
186 {
187 $this->tpl->setCurrentBlock("definition");
188 $this->tpl->setVariable("DEF_TEXT", $lng->txt("cont_definition")." ".($j + 1));
189 $this->tpl->parseCurrentBlock();
190 }
191
192 // check dirty short texts
193 $this->tpl->setCurrentBlock("definition");
194 if ($def["short_text_dirty"])
195 {
196 // #18022
197 $def_obj = new ilGlossaryDefinition($def["id"]);
198 $def_obj->updateShortText();
199 $short_str = $def_obj->getShortText();
200 }
201 else
202 {
203 $short_str = $def["short_text"];
204 }
205 // replace tex
206 // if a tex end tag is missing a tex end tag
207 $ltexs = strrpos($short_str, "[tex]");
208 $ltexe = strrpos($short_str, "[/tex]");
209 if ($ltexs > $ltexe)
210 {
211 $page = new ilGlossaryDefPage($def["id"]);
212 $page->buildDom();
213 $short_str = $page->getFirstParagraphText();
214 $short_str = strip_tags($short_str, "<br>");
215 $ltexe = strpos($short_str, "[/tex]", $ltexs);
216 $short_str = ilUtil::shortenText($short_str, $ltexe+6, true);
217 }
218 if (!$this->offline)
219 {
220 $short_str = ilUtil::insertLatexImages($short_str);
221 }
222 else
223 {
224 $short_str = ilUtil::buildLatexImages($short_str,
225 $this->parent_obj->getOfflineDirectory());
226 }
227 $short_str = ilPCParagraph::xml2output($short_str);
228
229 $this->tpl->setVariable("DEF_SHORT", $short_str);
230 $this->tpl->parseCurrentBlock();
231
232 $this->tpl->setCurrentBlock("definition_row");
233 $this->tpl->parseCurrentBlock();
234 }
235 }
236 else
237 {
238 $this->tpl->touchBlock("def_td");
239 }
240
241 // display additional column 'glossary' for meta glossaries
242 if ($this->glossary->isVirtual())
243 {
244 $this->tpl->setCurrentBlock("glossary_row");
245 $glo_title = ilObject::_lookupTitle($term["glo_id"]);
246 $this->tpl->setVariable("GLO_TITLE", $glo_title);
247 $this->tpl->parseCurrentBlock();
248 }
249
250 }
251
252 $ilCtrl->clearParameters($this->parent_obj);
253
254 // advanced metadata
255 foreach ($this->adv_cols_order as $c)
256 {
257 if ($c["id"] == 0)
258 {
259 $this->tpl->setCurrentBlock("link_start");
260 if (!$this->offline)
261 {
262 if (!empty ($filter))
263 {
264 $ilCtrl->setParameter($this->parent_obj, "term", $filter);
265 $ilCtrl->setParameter($this->parent_obj, "oldoffset", $_GET["oldoffset"]);
266 }
267 $ilCtrl->setParameter($this->parent_obj, "term_id", $term["id"]);
268 $ilCtrl->setParameter($this->parent_obj, "offset", $_GET["offset"]);
269 $this->tpl->setVariable("LINK_VIEW_TERM",
270 $ilCtrl->getLinkTarget($this->parent_obj, "listDefinitions"));
271 $ilCtrl->clearParameters($this->parent_obj);
272 }
273 else
274 {
275 $this->tpl->setVariable("LINK_VIEW_TERM", "term_".$term["id"].".html");
276 }
277 $this->tpl->parseCurrentBlock();
278
279 $this->tpl->setCurrentBlock("link_end");
280 $this->tpl->setVariable("ANCHOR_TERM", "term_".$term["id"]);
281 $this->tpl->parseCurrentBlock();
282
283 $this->tpl->setCurrentBlock("td");
284 $this->tpl->setVariable("TEXT", $term["term"]);
285 $this->tpl->parseCurrentBlock();
286 }
287 else
288 {
289 $id = $c["id"];
290
291 $val = " ";
292 if(isset($term["md_".$id."_presentation"]))
293 {
294 $pb = $term["md_".$id."_presentation"]->getList();
295 if($pb)
296 {
297 $val = $pb;
298 }
299 }
300
301 $this->tpl->setCurrentBlock("td");
302 $this->tpl->setVariable("TEXT", $val);
303 $this->tpl->parseCurrentBlock();
304 }
305 }
306 }
307
308}
309?>
$_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.
getAdvMDRecordGUI()
needed for advmd filter handling
numericOrdering($a_field)
Should this field be sorted numeric?
Class ilTable2GUI.
setEnableHeader($a_enableheader)
Set Enable Header.
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.
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.
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
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40
global $ilDB
global $ilUser
Definition: imgupload.php:15