ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
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  //$this->setDefaultOrderField("login");
90  //$this->setDefaultOrderDirection("asc");
91  $this->setData($this->glossary->getTermList($this->filter["term"], $_GET["letter"],
92  $this->filter["definition"], $this->tax_node, false, true, $this->filter));
93 // $this->setData(array());
94  }
95 
99  function initFilter()
100  {
101  global $lng, $rbacreview, $ilUser, $ilDB;
102 
103  // term
104  include_once("./Services/Form/classes/class.ilTextInputGUI.php");
105  $ti = new ilTextInputGUI($lng->txt("cont_term"), "term");
106  $ti->setMaxLength(64);
107  $ti->setSize(20);
108  $ti->setSubmitFormOnEnter(true);
109  $this->addFilterItem($ti);
110  $ti->readFromSession();
111  $this->filter["term"] = $ti->getValue();
112 
113  // definition
114  if ($ilDB->getDBType() != "oracle")
115  {
116  include_once("./Services/Form/classes/class.ilTextInputGUI.php");
117  $ti = new ilTextInputGUI($lng->txt("cont_definition"), "defintion");
118  $ti->setMaxLength(64);
119  $ti->setSize(20);
120  $ti->setSubmitFormOnEnter(true);
121  $this->addFilterItem($ti);
122  $ti->readFromSession();
123  $this->filter["definition"] = $ti->getValue();
124  }
125 
126  // advanced metadata
127  include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
128  $record_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_FILTER,'glo',$this->glossary->getId(),'term');
129  $record_gui->setSelectedOnly(true);
130  $record_gui->setTableGUI($this);
131  $record_gui->parse();
132 
133  }
134 
140  function numericOrdering($a_field)
141  {
142  if (substr($a_field, 0, 3) == "md_")
143  {
144  $md_id = (int) substr($a_field, 3);
145  if ($this->adv_fields[$md_id]["type"] == ilAdvancedMDFieldDefinition::TYPE_DATE)
146  {
147  return true;
148  }
149  }
150  return false;
151  }
152 
156  protected function fillRow($term)
157  {
158  global $lng, $ilCtrl;
159 
160  $defs = ilGlossaryDefinition::getDefinitionList($term["id"]);
161  $ilCtrl->setParameter($this->parent_obj, "term_id", $term["id"]);
162 
163  if ($this->glossary->getPresentationMode() == "full_def")
164  {
165  $this->tpl->setCurrentBlock("fd_td");
166  $this->tpl->setVariable("FULL_DEF",
167  $this->parent_obj->listDefinitions($_GET["ref_id"], $term["id"], true));
168  $this->tpl->parseCurrentBlock();
169  }
170  else
171  {
172  for ($j=0; $j < count($defs); $j++)
173  {
174  $def = $defs[$j];
175  if (count($defs) > 1)
176  {
177  $this->tpl->setCurrentBlock("definition");
178  $this->tpl->setVariable("DEF_TEXT", $lng->txt("cont_definition")." ".($j + 1));
179  $this->tpl->parseCurrentBlock();
180  }
181 
182  // check dirty short texts
183  $this->tpl->setCurrentBlock("definition");
184  if ($def["short_text_dirty"])
185  {
186  // #18022
187  $def_obj = new ilGlossaryDefinition($def["id"]);
188  $def_obj->updateShortText();
189  $short_str = $def_obj->getShortText();
190  }
191  else
192  {
193  $short_str = $def["short_text"];
194  }
195  // replace tex
196  // if a tex end tag is missing a tex end tag
197  $ltexs = strrpos($short_str, "[tex]");
198  $ltexe = strrpos($short_str, "[/tex]");
199  if ($ltexs > $ltexe)
200  {
201  $page = new ilGlossaryDefPage($def["id"]);
202  $page->buildDom();
203  $short_str = $page->getFirstParagraphText();
204  $short_str = strip_tags($short_str, "<br>");
205  $ltexe = strpos($short_str, "[/tex]", $ltexs);
206  $short_str = ilUtil::shortenText($short_str, $ltexe+6, true);
207  }
208  if (!$this->offline)
209  {
210  $short_str = ilUtil::insertLatexImages($short_str);
211  }
212  else
213  {
214  $short_str = ilUtil::buildLatexImages($short_str,
215  $this->parent_obj->getOfflineDirectory());
216  }
217  $short_str = ilPCParagraph::xml2output($short_str);
218 
219  $this->tpl->setVariable("DEF_SHORT", $short_str);
220  $this->tpl->parseCurrentBlock();
221 
222  $this->tpl->setCurrentBlock("definition_row");
223  $this->tpl->parseCurrentBlock();
224  }
225 // $this->tpl->touchBlock("def_td");
226 
227  // display additional column 'glossary' for meta glossaries
228  if ($this->glossary->isVirtual())
229  {
230  $this->tpl->setCurrentBlock("glossary_row");
231  $glo_title = ilObject::_lookupTitle($term["glo_id"]);
232  $this->tpl->setVariable("GLO_TITLE", $glo_title);
233  $this->tpl->parseCurrentBlock();
234  }
235 
236  }
237 
238  $ilCtrl->clearParameters($this->parent_obj);
239 
240  // advanced metadata
241  foreach ($this->adv_cols_order as $c)
242  {
243  if ($c["id"] == 0)
244  {
245  $this->tpl->setCurrentBlock("link_start");
246  if (!$this->offline)
247  {
248  if (!empty ($filter))
249  {
250  $ilCtrl->setParameter($this->parent_obj, "term", $filter);
251  $ilCtrl->setParameter($this->parent_obj, "oldoffset", $_GET["oldoffset"]);
252  }
253  $ilCtrl->setParameter($this->parent_obj, "term_id", $term["id"]);
254  $ilCtrl->setParameter($this->parent_obj, "offset", $_GET["offset"]);
255  $this->tpl->setVariable("LINK_VIEW_TERM",
256  $ilCtrl->getLinkTarget($this->parent_obj, "listDefinitions"));
257  $ilCtrl->clearParameters($this->parent_obj);
258  }
259  else
260  {
261  $this->tpl->setVariable("LINK_VIEW_TERM", "term_".$term["id"].".html");
262  }
263  $this->tpl->parseCurrentBlock();
264 
265  $this->tpl->setCurrentBlock("link_end");
266  $this->tpl->setVariable("ANCHOR_TERM", "term_".$term["id"]);
267  $this->tpl->parseCurrentBlock();
268 
269  $this->tpl->setCurrentBlock("td");
270  $this->tpl->setVariable("TEXT", $term["term"]);
271  $this->tpl->parseCurrentBlock();
272  }
273  else
274  {
275  $id = $c["id"];
276  $f = $this->adv_fields[$c["id"]];
277  $this->tpl->setCurrentBlock("td");
278  switch ($f["type"])
279  {
281  $val = ($term["md_".$id] > 0)
282  ? ilDatePresentation::formatDate(new ilDateTime($term["md_".$id], IL_CAL_UNIX))
283  : " ";
284  break;
285 
287 //var_dump($term["md_".$id]); echo "<br>";
288  $val = ($term["md_".$id] != 0)
289  ? ilDatePresentation::formatDate(new ilDate($term["md_".$id], IL_CAL_UNIX))
290  : " ";
291  break;
292 
293  default:
294  $val = ($term["md_".$id] != "")
295  ? $term["md_".$id]
296  : " ";
297  break;
298  }
299  $this->tpl->setVariable("TEXT", $val);
300  $this->tpl->parseCurrentBlock();
301  }
302  }
303  }
304 
305 }
306 ?>
__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"]
setFilterCommand($a_val)
Set filter command.
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
const IL_CAL_UNIX
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.
Class for single dates.
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="")
Add a column to the header.
This class represents a text property in a property form.
static formatDate(ilDateTime $date)
Format a date public.
Date and time handling
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.
disable($a_module_name)
diesables particular modules of table
global $ilUser
Definition: imgupload.php:15
numericOrdering($a_field)
Should this field be sorted numeric?
global $lng
Definition: privfeed.php:40
setFormAction($a_form_action)
Set Form action parameter.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
setEnableHeader($a_enableheader)
Set Enable Header.
setEnableTitle($a_enabletitle)
Set Enable Title.
setSelectedOnly($a_val)
Set selected only flag.