ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilPageContent.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 
17 abstract class ilPageContent
18 {
19  //var $type; // type
20  var $hier_id; // hierarchical editing id
21  var $node; // node in page xml
22  var $dom; // dom object
23 
30  final function __construct($a_dom)
31  {
32  $this->dom = $a_dom;
33  $this->init();
34  if ($this->getType() == "")
35  {
36  die ("Error: ilPageContent::init() did not set type");
37  }
38  }
39 
44  abstract function init();
45 
51  final protected function setType($a_type)
52  {
53  $this->type = $a_type;
54  }
55 
61  function getType()
62  {
63  return $this->type;
64  }
65 
71  function setNode(&$a_node)
72  {
73  $this->node =& $a_node;
74  }
75 
76 
82  function &getNode()
83  {
84  return $this->node;
85  }
86 
87 
93  function setHierId($a_hier_id)
94  {
95  $this->hier_id = $a_hier_id;
96  }
97 
101  function getHierId()
102  {
103  return $this->hier_id;
104  }
105 
106 
110  function lookupHierId()
111  {
112  return $this->node->get_attribute("HierId");
113  }
114 
120  function readHierId()
121  {
122  if (is_object($this->node))
123  {
124  return $this->node->get_attribute("HierId");
125  }
126  }
127 
133  function setPcId($a_pcid)
134  {
135  $this->pcid = $a_pcid;
136  }
137 
143  function getPCId()
144  {
145  return $this->pcid;
146  }
147 
148 
154  function readPCId()
155  {
156  if (is_object($this->node))
157  {
158  return $this->node->get_attribute("PCID");
159  }
160  }
161 
169  final static function incEdId($ed_id)
170  {
171  $id = explode("_", $ed_id);
172  $id[count($id) - 1]++;
173 
174  return implode($id, "_");
175  }
176 
184  final static function decEdId($ed_id)
185  {
186  $id = explode("_", $ed_id);
187  $id[count($id) - 1]--;
188 
189  return implode($id, "_");
190  }
191 
200  final static function haveSameContainer($ed_id1, $ed_id2)
201  {
202  $id1 = explode("_", $ed_id1);
203  $id2 = explode("_", $ed_id1);
204  if(count($id1) == count($id2))
205  {
206  array_pop($id1);
207  array_pop($id2);
208  foreach ($id1 as $key => $id)
209  {
210  if($id != $id2[$key])
211  {
212  return false;
213  }
214  }
215  return true;
216  }
217  return false;
218  }
219 
223  static function sortHierIds($a_array)
224  {
225  uasort($a_array, array("ilPageContent", "isGreaterHierId"));
226 
227  return $a_array;
228  }
229 
233  function isGreaterHierId($a, $b)
234  {
235  $a_arr = explode("_", $a);
236  $b_arr = explode("_", $b);
237  for ($i = 0; $i < count($a_arr); $i++)
238  {
239  if ((int) $a_arr[$i] > (int) $b_arr[$i])
240  {
241  return true;
242  }
243  else if ((int) $a_arr[$i] < (int) $b_arr[$i])
244  {
245  return false;
246  }
247  }
248  return false;
249  }
250 
257  function setEnabled($value)
258  {
259  if (is_object($this->node))
260  {
261  $this->node->set_attribute("Enabled", $value);
262  }
263  }
264 
268  function enable()
269  {
270  $this->setEnabled("True");
271  }
272 
276  function disable()
277  {
278  $this->setEnabled("False");
279  }
280 
286  final function isEnabled()
287  {
288  if (is_object($this->node) && $this->node->has_attribute("Enabled"))
289  {
290  $compare = $this->node->get_attribute("Enabled");
291  }
292  else
293  {
294  $compare = "True";
295  }
296 
297  return strcasecmp($compare,"true") == 0;
298  }
299 
303  function createPageContentNode($a_set_this_node = true)
304  {
305  $node = $this->dom->create_element("PageContent");
306  if ($a_set_this_node)
307  {
308  $this->node = $node;
309  }
310  return $node;
311  }
312 
316 /*
317  function setAnchor($a_name)
318  {
319  $node = $this->getNode();
320 
321  ilDOMUtil::setFirstOptionalElement($this->dom, $node, "Anchor",
322  array("BibItemIdentifier"), $a_name, array());
323  }*/
324 
328 /*
329  function getAnchor()
330  {
331  $node = $this->getNode();
332  $childs = $node->child_nodes();
333 
334  for ($i=0; $i<count($childs); $i++)
335  {
336  if ($childs[$i]->node_name() == "Anchor")
337  {
338  return $childs[$i]->get_content();
339  }
340  }
341 
342  return "";
343  }
344 */
345 }
346 ?>