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 
4 include_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 ?>
__construct($a_parent_obj, $a_parent_cmd, $a_glossary, $a_offline, $a_tax_node, $a_tax_id=0)
Constructor.
getDefinitionList($a_term_id)
static
$_GET["client_id"]
static insertLatexImages($a_text, $a_start="\ex\, $a_end="\\tex\")
replace [text]...[/tex] tags with formula image code
Term list table for presentation mode.
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
static _lookupTitle($a_id)
lookup object title
setId($a_val)
Set id.
global $ilCtrl
Definition: ilias.php:18
static buildLatexImages($a_text, $a_dir)
replace [text]...[/tex] tags with formula image code //////// added additional parameters to make thi...
static xml2output($a_text, $a_wysiwyg=false, $a_replace_lists=true)
Converts xml from DB to output in edit textarea.
Class ilTable2GUI.
This class represents a text property in a property form.
setMaxLength($a_maxlength)
Set Max Length.
Glossary definition page object.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
getAllFields()
Get all advanced metadata fields.
Class ilGlossaryDefinition.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
disable($a_module_name)
diesables particular modules of table
numericOrdering($a_field)
Should this field be sorted numeric?
global $ilUser
Definition: imgupload.php:15
global $lng
Definition: privfeed.php:40
global $ilDB
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
setEnableHeader($a_enableheader)
Set Enable Header.
getAdvMDRecordGUI()
needed for advmd filter handling
setEnableTitle($a_enabletitle)
Set Enable Title.
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.
setFilterCommand($a_val, $a_caption=null)
Set filter command.