ILIAS  Release_4_2_x_branch Revision 61807
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilBlogPosting.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once("./Services/COPage/classes/class.ilPageObject.php");
5 
15 {
16  protected $title; // [string]
17  protected $created; // [ilDateTime]
18  protected $blog_wsp_id; // [int]
19 
28  function __construct($a_id = 0, $a_old_nr = 0, $a_halt = true)
29  {
30  parent::__construct("blp", $a_id, $a_old_nr, $a_halt);
31  }
32 
38  function setTitle($a_title)
39  {
40  $this->title = $a_title;
41  }
42 
48  function getTitle()
49  {
50  return $this->title;
51  }
52 
58  function setBlogId($a_id)
59  {
60  $this->setParentId($a_id);
61  }
62 
68  function getBlogId()
69  {
70  return $this->getParentId();
71  }
72 
78  function setCreated(ilDateTime $a_date)
79  {
80  $this->created = $a_date;
81  }
82 
88  function getCreated()
89  {
90  return $this->created;
91  }
92 
96  function create()
97  {
98  global $ilDB;
99 
100  $id = $ilDB->nextId("il_blog_posting");
101  $this->setId($id);
102 
103  // we are using a separate creation date to enable sorting without JOINs
104 
105  $query = "INSERT INTO il_blog_posting (id, title, blog_id, created) VALUES (".
106  $ilDB->quote($this->getId(), "integer").",".
107  $ilDB->quote($this->getTitle(), "text").",".
108  $ilDB->quote($this->getBlogId(), "integer").",".
109  $ilDB->quote(ilUtil::now(), "timestamp").")";
110  $ilDB->manipulate($query);
111 
112  parent::create();
113  // $this->saveInternalLinks($this->getXMLContent());
114  }
115 
124  function update($a_validate = true, $a_no_history = false, $a_notify = true)
125  {
126  global $ilDB;
127 
128  // blog_id and created cannot be changed
129 
130  $query = "UPDATE il_blog_posting SET".
131  " title = ".$ilDB->quote($this->getTitle(), "text").
132  " WHERE id = ".$ilDB->quote($this->getId(), "integer");
133  $ilDB->manipulate($query);
134 
135  parent::update($a_validate, $a_no_history);
136 
137  if($a_notify && $this->getActive())
138  {
139  include_once "Modules/Blog/classes/class.ilObjBlog.php";
140  ilObjBlog::sendNotification("update", $this->blog_wsp_id, $this->getId());
141  }
142 
143  return true;
144  }
145 
149  function read()
150  {
151  global $ilDB;
152 
153  $query = "SELECT * FROM il_blog_posting".
154  " WHERE id = ".$ilDB->quote($this->getId(), "integer");
155  $set = $ilDB->query($query);
156  $rec = $ilDB->fetchAssoc($set);
157 
158  $this->setTitle($rec["title"]);
159  $this->setBlogId($rec["blog_id"]);
160  $this->setCreated(new ilDateTime($rec["created"], IL_CAL_DATETIME));
161 
162  parent::read();
163  }
164 
165 
171  function delete()
172  {
173  global $ilDB;
174 
175  $query = "DELETE FROM il_blog_posting".
176  " WHERE id = ".$ilDB->quote($this->getId(), "integer");
177  $ilDB->manipulate($query);
178 
179  parent::delete();
180 
181  return true;
182  }
183 
189  static function deleteAllBlogPostings($a_blog_id)
190  {
191  global $ilDB;
192 
193  $query = "SELECT * FROM il_blog_posting".
194  " WHERE blog_id = ".$ilDB->quote($a_blog_id, "integer");
195  $set = $ilDB->query($query);
196  while($rec = $ilDB->fetchAssoc($set))
197  {
198  $post = new ilBlogPosting($rec["id"]);
199  $post->delete();
200  }
201  }
202 
209  static function lookupBlogId($a_posting_id)
210  {
211  global $ilDB;
212 
213  $query = "SELECT blog_id FROM il_blog_posting".
214  " WHERE id = ".$ilDB->quote($a_posting_id, "integer");
215  $set = $ilDB->query($query);
216  if ($rec = $ilDB->fetchAssoc($set))
217  {
218  return $rec["blog_id"];
219  }
220  return false;
221  }
222 
231  static function getAllPostings($a_blog_id, $a_limit = 100, $a_offset = 0)
232  {
233  global $ilDB;
234 
235  $pages = parent::getAllPages("blp", $a_blog_id);
236 
237  if($limit)
238  {
239  $ilDB->setLimit($a_limit, $a_offset);
240  }
241 
242  $query = "SELECT * FROM il_blog_posting".
243  " WHERE blog_id = ".$ilDB->quote($a_blog_id, "integer").
244  " ORDER BY created DESC";
245  $set = $ilDB->query($query);
246  $post = array();
247  while($rec = $ilDB->fetchAssoc($set))
248  {
249  if (isset($pages[$rec["id"]]))
250  {
251  $post[$rec["id"]] = $pages[$rec["id"]];
252  $post[$rec["id"]]["title"] = $rec["title"];
253  $post[$rec["id"]]["created"] = new ilDateTime($rec["created"], IL_CAL_DATETIME);
254  }
255  }
256 
257  return $post;
258  }
259 
267  static function exists($a_blog_id, $a_posting_id)
268  {
269  global $ilDB;
270 
271  $query = "SELECT id FROM il_blog_posting".
272  " WHERE blog_id = ".$ilDB->quote($a_blog_id, "integer").
273  " AND id = ".$ilDB->quote($a_posting_id, "integer");
274  $set = $ilDB->query($query);
275  if($rec = $ilDB->fetchAssoc($set))
276  {
277  return true;
278  }
279  return false;
280  }
281 
288  static function getLastPost($a_blog_id)
289  {
290  $data = self::getAllPostings($a_blog_id, 1);
291  if($data)
292  {
293  return array_pop(array_keys($data));
294  }
295  }
296 
302  public function setBlogWspId($a_id)
303  {
304  $this->blog_wsp_id = (int)$a_id;
305  }
306 }
307 
308 ?>