ILIAS  Release_4_1_x_branch Revision 61804
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilExtPublicProfilePage.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/COPage/classes/class.ilPageObject.php");
5 
15 {
22  function __construct($a_id = 0, $a_old_nr = 0)
23  {
24  parent::__construct("user", $a_id, $a_old_nr);
25  }
26 
32  function setTitle($a_title)
33  {
34  $this->title = $a_title;
35  }
36 
42  function getTitle()
43  {
44  return $this->title;
45  }
46 
52  function setUserId($a_val)
53  {
54  $this->setParentId($a_val);
55  }
56 
62  function getUserId()
63  {
64  return $this->getParentId();
65  }
66 
72  function setOrderNr($a_val)
73  {
74  $this->order_nr = $a_val;
75  }
76 
82  function getOrderNr()
83  {
84  return $this->order_nr;
85  }
86 
93  static function lookupMaxOrderNr($a_user_id)
94  {
95  global $ilDB;
96 
97  $set = $ilDB->query("SELECT MAX(order_nr) m FROM usr_ext_profile_page WHERE ".
98  " user_id = ".$ilDB->quote($a_user_id, "integer"));
99  $rec = $ilDB->fetchAssoc($set);
100 
101  return (int) $rec["m"];
102  }
103 
107  function create()
108  {
109  global $ilDB;
110 
112 
113  $id = $ilDB->nextId("usr_ext_profile_page");
114  $this->setId($id);
115  $query = "INSERT INTO usr_ext_profile_page (".
116  "id".
117  ", title".
118  ", user_id".
119  ", order_nr".
120  " ) VALUES (".
121  $ilDB->quote($this->getId(), "integer")
122  .",".$ilDB->quote($this->getTitle(), "text")
123  .",".$ilDB->quote($this->getUserId(), "integer")
124  .",".$ilDB->quote($this->getOrderNr(), "integer")
125  .")";
126  $ilDB->manipulate($query);
127 
128  parent::create();
129  $this->saveInternalLinks($this->getXMLContent());
130  }
131 
137  function update($a_validate = true, $a_no_history = false)
138  {
139  global $ilDB;
140 
141  // update wiki page data
142  $query = "UPDATE usr_ext_profile_page SET ".
143  " title = ".$ilDB->quote($this->getTitle(), "text").
144  ",user_id = ".$ilDB->quote($this->getUserId(), "integer").
145  ",order_nr = ".$ilDB->quote($this->getOrderNr(), "integer").
146  " WHERE id = ".$ilDB->quote($this->getId(), "integer");
147  $ilDB->manipulate($query);
148  parent::update($a_validate, $a_no_history);
149 
150  return true;
151  }
152 
156  function read()
157  {
158  global $ilDB;
159 
160  $query = "SELECT * FROM usr_ext_profile_page WHERE id = ".
161  $ilDB->quote($this->getId(), "integer");
162  $set = $ilDB->query($query);
163  $rec = $ilDB->fetchAssoc($set);
164 
165  $this->setTitle($rec["title"]);
166  $this->setUserId($rec["user_id"]);
167  $this->setOrderNr($rec["order_nr"]);
168 
169  // get co page
170  parent::read();
171  }
172 
173 
179  function delete()
180  {
181  global $ilDB;
182 
183  // delete internal links information to this page
184  include_once("./Services/COPage/classes/class.ilInternalLink.php");
186 
187  // delete record of table usr_ext_profile_page
188  $query = "DELETE FROM usr_ext_profile_page".
189  " WHERE id = ".$ilDB->quote($this->getId(), "integer");
190  $ilDB->manipulate($query);
191 
192  // delete co page
193  parent::delete();
194 
195  return true;
196  }
197 
198 
202  static function lookupUserId($a_page_id)
203  {
204  global $ilDB;
205 
206  return ilExtPublicProfilePage::lookupProperty($a_page_id, "user_id");
207  }
208 
212  static function lookupTitle($a_page_id)
213  {
214  global $ilDB;
215 
216  return ilExtPublicProfilePage::lookupProperty($a_page_id, "title");
217  }
218 
225  protected static function lookupProperty($a_id, $a_prop)
226  {
227  global $ilDB;
228 
229  $set = $ilDB->query($q = "SELECT $a_prop FROM usr_ext_profile_page WHERE ".
230  " id = ".$ilDB->quote($a_id, "integer")
231  );
232  $rec = $ilDB->fetchAssoc($set);
233  return $rec[$a_prop];
234  }
235 
242  static function getPagesOfUser($a_user_id)
243  {
244  global $ilDB;
245 
246  $set = $ilDB->query("SELECT * FROM usr_ext_profile_page WHERE ".
247  " user_id = ".$ilDB->quote($a_user_id, "integer").
248  " ORDER BY order_nr");
249  $tabs = array();
250  while ($rec = $ilDB->fetchAssoc($set))
251  {
252  $tabs[] = $rec;
253  }
254  return $tabs;
255  }
256 
263  public static function fixOrdering($a_user_id)
264  {
265  global $ilDB;
266 
267  $pages = self::getPagesOfUser($a_user_id);
268  $cnt = 10;
269  foreach ($pages as $p)
270  {
271  $ilDB->manipulate("UPDATE usr_ext_profile_page SET ".
272  " order_nr = ".$ilDB->quote($cnt, "integer").
273  " WHERE id = ".$ilDB->quote($p["id"], "integer")
274  );
275  $cnt+= 10;
276  }
277  }
278 }
279 ?>