ILIAS  Release_4_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilBookmarkFolder.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
14 {
20  var $tree;
21 
27  var $ilias;
28 
29  var $id;
30  var $title;
31  var $parent;
32 
38  function ilBookmarkFolder($a_bmf_id = 0, $a_tree_id = 0)
39  {
40  global $ilias;
41 
42  // Initiate variables
43  $this->ilias =& $ilias;
44  if ($a_tree_id == 0)
45  {
46  $a_tree_id = $_SESSION["AccountId"];
47  }
48 
49  $this->tree = new ilTree($a_tree_id);
50  $this->tree->setTableNames('bookmark_tree','bookmark_data');
51  $this->id = $a_bmf_id;
52 
53  if(!empty($this->id))
54  {
55  $this->read();
56  }
57  }
58 
62  function read()
63  {
64  global $ilias, $ilDB;
65 
66  $q = "SELECT * FROM bookmark_data WHERE obj_id = ".
67  $ilDB->quote($this->getId(), "integer");
68  $bmf_set = $ilDB->query($q);
69  if ($ilDB->numRows($bmf_set) == 0)
70  {
71  $message = "ilBookmarkFolder::read(): Bookmark Folder with id ".$this->getId()." not found!";
72  $ilias->raiseError($message,$ilias->error_obj->WARNING);
73  }
74  else
75  {
76  $bmf = $ilDB->fetchAssoc($bmf_set);
77  $this->setTitle($bmf["title"]);
78  $this->setParent($this->tree->getParentId($this->getId()));
79  }
80  }
81 
85  function delete()
86  {
87  global $ilDB;
88 
89  $q = "DELETE FROM bookmark_data WHERE obj_id = ".$ilDB->quote($this->getId(), "integer");
90  $ilDB->query($q);
91  }
92 
97  {
98  global $ilDB;
99 
100  /*
101  $q = "INSERT INTO bookmark_data (user_id, title, target, type) ".
102  "VALUES ('".$this->tree->getTreeId()."','dummy_folder','','bmf')";
103  $ilDB->query($q);*/
104  //$this->tree->addTree($this->tree->getTreeId(), $ilDB->getLastInsertId());
105  $this->tree->addTree($this->tree->getTreeId(), 1);
106  }
107 
113  function create()
114  {
115  global $ilDB;
116 
117  $this->setId($ilDB->nextId("bookmark_data"));
118  $q = sprintf(
119  "INSERT INTO bookmark_data (obj_id, user_id, title, type) ".
120  "VALUES (%s,%s,%s,%s)",
121  $ilDB->quote($this->getId(), "integer"),
122  $ilDB->quote($_SESSION["AccountId"], "integer"),
123  $ilDB->quote($this->getTitle(), "text"),
124  $ilDB->quote('bmf', "text")
125  );
126 
127  $ilDB->manipulate($q);
128  $this->tree->insertNode($this->getId(), $this->getParent());
129  }
130 
134  function update()
135  {
136  global $ilDB;
137 
138  $q = sprintf(
139  "UPDATE bookmark_data SET title=%s ".
140  "WHERE obj_id=%s",
141  $ilDB->quote($this->getTitle(), "text"),
142  $ilDB->quote($this->getId(), "integer")
143  );
144  $ilDB->manipulate($q);
145  }
146 
147 
148  function getId()
149  {
150  return $this->id;
151  }
152 
153  function setId($a_id)
154  {
155  $this->id = $a_id;
156  }
157 
158  function getTitle()
159  {
160  return $this->title;
161  }
162 
163  function setTitle($a_title)
164  {
165  $this->title = $a_title;
166  }
167 
168  function getParent()
169  {
170  return $this->parent;
171  }
172 
173  function setParent($a_parent_id)
174  {
175  $this->parent = $a_parent_id;
176  }
177 
181  function _lookupTitle($a_bmf_id)
182  {
183  global $ilDB;
184 
185  $q = "SELECT * FROM bookmark_data WHERE obj_id = ".
186  $ilDB->quote($a_bmf_id, "integer");
187  $bmf_set = $ilDB->query($q);
188  $bmf = $ilDB->fetchAssoc($bmf_set);
189 
190  return $bmf["title"];
191  }
192 
196  function getObjects($a_id)
197  {
198  $a_tree_id = $_SESSION["AccountId"];
199  $tree = new ilTree($a_tree_id);
200  $tree->setTableNames('bookmark_tree','bookmark_data');
201 
202  if(empty($a_id))
203  {
204  $a_id = $tree->getRootId();
205  }
206 
207  $childs = $tree->getChilds($a_id, "title");
208 
209  $objects = array();
210  $bookmarks = array();
211 
212  foreach ($childs as $key => $child)
213  {
214  switch ($child["type"])
215  {
216  case "bmf":
217  $objects[] = $child;
218  break;
219 
220  case "bm":
221  $bookmarks[] = $child;
222  break;
223  }
224  }
225  foreach ($bookmarks as $key => $bookmark)
226  {
227  $objects[] = $bookmark;
228  }
229  return $objects;
230  }
231 
236  {
237  $a_tree_id = $_SESSION["AccountId"];
238  $tree = new ilTree($a_tree_id);
239  $tree->setTableNames('bookmark_tree','bookmark_data');
240 
241  $root_node = $tree->getNodeData($tree->getRootId());
242 
243  if ($root_node["lft"] != "")
244  {
245  $bmf = $tree->getSubTree($root_node, false, "bmf");
246  $bm = $tree->getSubTree($root_node, false, "bm");
247  }
248  else
249  {
250  $bmf = array("dummy");
251  $bm = array();
252  }
253 
254  return array("folders" => (int) count($bmf) - 1, "bookmarks" => (int) count($bm));
255  }
256 
257 
261  function getObject($a_id)
262  {
263  $a_tree_id = $_SESSION["AccountId"];
264  $tree = new ilTree($a_tree_id);
265  $tree->setTableNames('bookmark_tree','bookmark_data');
266 
267  if(empty($a_id))
268  {
269  $a_id = $tree->getRootId();
270  }
271 
272  $object = $tree->getNodeData($a_id);
273  return $object;
274  }
275 
276  function isRootFolder($a_id)
277  {
278  $a_tree_id = $_SESSION["AccountId"];
279  $tree = new ilTree($a_tree_id);
280  $tree->setTableNames('bookmark_tree','bookmark_data');
281 
282  if ($a_id == $tree->getRootId())
283  {
284  return true;
285  }
286  else
287  {
288  return false;
289  }
290  }
291 
292  function getRootFolder()
293  {
294  $a_tree_id = $_SESSION["AccountId"];
295  $tree = new ilTree($a_tree_id);
296  $tree->setTableNames('bookmark_tree','bookmark_data');
297 
298  return $tree->getRootId();
299  }
300 
301  function _getParentId($a_id)
302  {
303  $a_tree_id = $_SESSION["AccountId"];
304  $tree = new ilTree($a_tree_id);
305  $tree->setTableNames('bookmark_tree','bookmark_data');
306  return $tree->getParentId($a_id);
307  }
308 
309 }
310 ?>