ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilSocialBookmarks.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 {
21  public static function _initForm($formhandlerObject, $mode = "create", $id = 0)
22  {
23  global $lng, $ilCtrl;
24  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
25  $form = new ilPropertyFormGUI();
26  $form->setMultipart(true);
27 
28  // File Title
29  $in_title = new ilTextInputGUI($lng->txt("title"), "title");
30  $in_title->setMaxLength(128);
31  $in_title->setSize(40);
32  $in_title->setRequired(true);
33  $form->addItem($in_title);
34 
35  // Link
36  $in_link = new ilTextInputGUI($lng->txt("link"), "link");
37  $in_link->setMaxLength(300);
38  $in_link->setSize(40);
39  $in_link->setRequired(true);
40  $in_link->setInfo($lng->txt('socialbm_link_description'));
41  $form->addItem($in_link);
42 
43  // File
44  $in_file = new ilFileInputGUI($lng->txt("file"), "image_file");
45  $in_file->setSuffixes(array('bmp', 'gif', 'jpg', 'jpeg','png'));
46  $form->addItem($in_file);
47 
48  // Activate on submit
49  $in_activate = new ilCheckboxInputGUI($lng->txt("activate"), "activate");
50  $in_activate->setValue('1');
51  $form->addItem($in_activate);
52 
53  // save and cancel commands
54  if ($mode == "create")
55  {
56  $form->addCommandButton("createSocialBookmark", $lng->txt("create"));
57  $form->addCommandButton("editSocialBookmarks", $lng->txt("cancel"));
58  $form->setTitle($lng->txt("adm_social_bm_create"));
59  $in_file->setRequired(true);
60  }
61  else if ($mode == "update")
62  {
63  $in_hidden = new ilHiddenInputGUI("sbm_id", $id);
64  $form->addItem($in_hidden);
65 
66  $form->addCommandButton("updateSocialBookmark", $lng->txt("update"));
67  $form->addCommandButton("cancel", $lng->txt("cancel"));
68  $form->setTitle($lng->txt("adm_social_bm_edit"));
69  $in_file->setRequired(false);
70  }
71 
72  $form->setTableWidth("60%");
73 
74  $form->setFormAction($ilCtrl->getFormAction($formhandlerObject));
75  return $form;
76  }
77 
86  public static function _insertSocialBookmark($title, $link, $active, $icon_path)
87  {
88  global $ilDB;
89 
90  $id = $ilDB->nextId('bookmark_social_bm');
91 
92  $q = 'INSERT INTO bookmark_social_bm (sbm_id, sbm_title, sbm_link, sbm_icon, sbm_active) VALUES (%s, %s, %s, %s, %s)';
93  $ilDB->manipulateF
94  (
95  $q,
96  array('integer', 'text', 'text', 'text', 'integer'),
97  array($id, $title, $link, $icon_path, $active)
98  );
99 
100  }
101 
111  public static function _updateSocialBookmark($id, $title, $link, $active, $icon_path = false)
112  {
113  global $ilDB;
114 
115  if ($icon_path)
116  {
117  $q = 'UPDATE bookmark_social_bm SET sbm_title=%s, sbm_link=%s, sbm_icon=%s, sbm_active=%s WHERE sbm_id=%s';
118  $ilDB->manipulateF
119  (
120  $q,
121  array('text', 'text', 'text', 'integer', 'integer'),
122  array($title, $link, $icon_path, $active, $id)
123  );
124  }
125  else
126  {
127  $q = 'UPDATE bookmark_social_bm SET sbm_title=%s, sbm_link=%s, sbm_active=%s WHERE sbm_id=%s';
128  $ilDB->manipulateF
129  (
130  $q,
131  array('text', 'text', 'integer', 'integer'),
132  array($title, $link, $active, $id)
133  );
134  }
135  }
136 
143  public static function _setActive($id, $active = true)
144  {
145  global $ilDB;
146 
147  if (!is_array($id))
148  {
149  $q = 'UPDATE bookmark_social_bm SET sbm_active=%s WHERE sbm_id=%s';
150  $ilDB->manipulateF
151  (
152  $q,
153  array('integer', 'integer'),
154  array($active, $id)
155  );
156  }
157  else if (count($id))
158  {
159  $q = 'UPDATE bookmark_social_bm SET sbm_active=%s WHERE ';
160  $parts = array();
161  foreach($id as $i)
162  {
163  $parts[] = 'sbm_id=' . $ilDB->quote($i, 'integer');
164  }
165  $q .= ' ' . join(' OR ', $parts);
166  $ilDB->manipulateF
167  (
168  $q,
169  array('integer'),
170  array($active)
171  );
172  }
173  }
174 
181  public static function _delete($id)
182  {
183  global $ilDB;
184 
185  if (!is_array($id))
186  {
187  self::_deleteImage($id);
188 
189  $q = 'DELETE FORM bookmark_social_bm WHERE sbm_id=%s';
190  $ilDB->manipulateF
191  (
192  $q,
193  array('integer'),
194  array($id)
195  );
196  }
197  else if (count($id))
198  {
199  $q = 'DELETE FROM bookmark_social_bm WHERE ';
200  $parts = array();
201  foreach($id as $i)
202  {
203  self::_deleteImage($i);
204  $parts[] = 'sbm_id=' . $ilDB->quote($i, 'integer');
205  }
206  $q .= ' ' . join(' OR ', $parts);
207  $ilDB->manipulateF
208  (
209  $q,
210  array('integer'),
211  array($active)
212  );
213  }
214  }
215 
221  public static function _deleteImage($id)
222  {
223  global $ilDB;
224  $q = 'SELECT sbm_icon FROM bookmark_social_bm WHERE sbm_id=%s';
225  $rset = $ilDB->queryF
226  (
227  $q,
228  array('integer'),
229  array($id)
230  );
231  $row = $ilDB->fetchObject($rset);
232  //$path = ilUtil::getWebspaceDir() . DIRECTORY_SEPARATOR . 'social_bm_icons' . DIRECTORY_SEPARATOR . $row->sbm_icon;
233  if ($row->sbm_icon && is_file($row->sbm_icon) && substr($row->sbm_icon, 0, strlen('templates')) != 'templates')
234  unlink($row->sbm_icon);
235  }
236 
237  public static function _getEntry($id = 0)
238  {
239  global $ilDB;
240  if ($id)
241  {
242  $q = 'SELECT sbm_id, sbm_title, sbm_link, sbm_icon, sbm_active FROM bookmark_social_bm WHERE sbm_id=%s';
243  $rset = $ilDB->queryF
244  (
245  $q,
246  array('integer'),
247  array($id)
248  );
249 
250  return $ilDB->fetchObject($rset);
251  }
252  else
253  {
254  $q = 'SELECT sbm_id, sbm_title, sbm_link, sbm_icon, sbm_active FROM bookmark_social_bm';
255  $rset = $ilDB->query($q);
256 
257  $result = array();
258  while($row = $ilDB->fetchObject($rset))
259  {
260  $result[] = $row;
261  }
262  return $result;
263  }
264  }
265 }