ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilECSImport.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
15 {
16  protected $db = null;
17 
18  protected $server_id = 0;
19  protected $obj_id = 0;
20  protected $econtent_id = 0;
21  protected $content_id = '';
22  protected $sub_id = 0;
23  protected $mid = 0;
24  protected $imported = false;
25  protected $ecs_id = 0;
26 
34  public function __construct($a_server_id,$a_obj_id)
35  {
36  global $ilDB;
37 
38  $this->server_id = $a_server_id;
39  $this->obj_id = $a_obj_id;
40  $this->db = $ilDB;
41  $this->read();
42  }
43 
53  public static function lookupContentId($a_server_id, $a_mid, $a_econtent_id)
54  {
55  global $ilDB;
56 
57  $query = 'SELECT * from ecs_import '.
58  'WHERE server_id = '.$ilDB->quote($a_server_id,'integer').' '.
59  'AND mid = '.$ilDB->quote($a_mid,'integer').' '.
60  'AND econtent_id = '.$ilDB->quote($a_econtent_id,'integer');
61  $res = $ilDB->query($query);
62  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
63  {
64  return $row->content_id;
65  }
66  return '';
67  }
68 
76  public static function lookupObjIdByContentId($a_server_id, $a_mid, $a_content_id, $a_sub_id = '')
77  {
78  global $ilDB;
79 
80  $query = "SELECT obj_id FROM ecs_import ".
81  "WHERE content_id = ".$ilDB->quote($a_content_id,'integer')." ".
82  "AND mid = ".$ilDB->quote($a_mid,'integer')." ".
83  'AND server_id = '.$ilDB->quote($a_server_id,'integer').' ';
84 
85  if($a_sub_id)
86  {
87  $query .= 'AND sub_id = '.$ilDB->quote($a_sub_id,'text');
88  }
89  else
90  {
91  $query .= 'AND sub_id IS NULL';
92  }
93  $res = $ilDB->query($query);
94 
95  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
96  {
97  return $row->obj_id;
98  }
99  return 0;
100 
101  }
102 
111  public static function lookupEContentIdByContentId($a_server_id,$a_mid,$a_content_id)
112  {
113  global $ilDB;
114 
115  $query = 'SELECT * from ecs_import '.
116  'WHERE server_id = '.$ilDB->quote($a_server_id,'integer').' '.
117  'AND mid = '.$ilDB->quote($a_mid,'integer').' '.
118  'AND content_id = '.$ilDB->quote($a_content_id,'text');
119  $res = $ilDB->query($query);
120  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
121  {
122  return $row->econtent_id;
123  }
124  return 0;
125  }
126 
134  public static function getAllImportedRemoteObjects($a_server_id)
135  {
136  global $ilDB;
137 
138  include_once './Services/WebServices/ECS/classes/class.ilECSUtils.php';
139 
140  $query = "SELECT * FROM ecs_import ei JOIN object_data obd ON ei.obj_id = obd.obj_id ".
141  'WHERE server_id = '.$ilDB->quote($a_server_id).' '.
142  'AND '.$ilDB->in('type', ilECSUtils::getPossibleRemoteTypes(), false, 'text');
143  $res = $ilDB->query($query);
144  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
145  {
146  $all[$row->econtent_id] = $row->obj_id;
147  }
148 
149  return $all ? $all : array();
150  }
151 
160  public static function _lookupObjIdsByMID($a_server_id,$a_mid)
161  {
162  global $ilDB;
163 
164  $query = "SELECT * FROM ecs_import ".
165  "WHERE mid = ".$ilDB->quote($a_mid,'integer')." ".
166  'AND server_id = '.$ilDB->quote($a_server_id,'integer');
167 
168  $res = $ilDB->query($query);
169  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
170  {
171  $obj_ids[] = $row->obj_id;
172  }
173  return $obj_ids ? $obj_ids : array();
174  }
175 
184  public static function _lookupEContentId($a_obj_id)
185  {
186  global $ilDB;
187 
188  $query = "SELECT * FROM ecs_import WHERE obj_id = ".$ilDB->quote($a_obj_id,'integer')." ";
189  $res = $ilDB->query($query);
190  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
191  {
192  return $row->econtent_id;
193  }
194  return 0;
195  }
196 
203  public static function lookupServerId($a_obj_id)
204  {
205  global $ilDB;
206 
207  $query = 'SELECT * FROM ecs_import WHERE obj_id = '.$ilDB->quote($a_obj_id,'integer');
208  $res = $ilDB->query($query);
209  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
210  {
211  return $row->server_id;
212  }
213  return 0;
214  }
215 
216 
223  public function _lookupObjIds($a_server_id,$a_econtent_id)
224  {
225  global $ilDB;
226 
227  $query = "SELECT obj_id FROM ecs_import WHERE econtent_id = ".$ilDB->quote($a_econtent_id,'integer')." ".
228  'AND server_id = '.$ilDB->quote($a_server_id,'integer');
229  $res = $ilDB->query($query);
230  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
231  {
232  $obj_ids[] = $row->obj_id;
233  }
234  return $obj_ids ? $obj_ids : array();
235  }
236 
245  public static function _lookupObjId($a_server_id,$a_econtent_id,$a_mid, $a_sub_id = NULL)
246  {
247  global $ilDB;
248 
249  $query = "SELECT obj_id FROM ecs_import ".
250  "WHERE econtent_id = ".$ilDB->quote($a_econtent_id,'integer')." ".
251  "AND mid = ".$ilDB->quote($a_mid,'integer')." ".
252  'AND server_id = '.$ilDB->quote($a_server_id,'integer').' ';
253 
254  if($a_sub_id)
255  {
256  $query .= 'AND sub_id = '.$ilDB->quote($a_sub_id,'text');
257  }
258  else
259  {
260  $query .= 'AND sub_id IS NULL';
261  }
262  $res = $ilDB->query($query);
263 
264  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
265  {
266  return $row->obj_id;
267  }
268  return 0;
269  }
270 
277  public function _lookupMID($a_server_id,$a_obj_id)
278  {
279  global $ilDB;
280 
281  $query = "SELECT * FROM ecs_emport WHERE obj_id = ".$ilDB->quote($a_obj_id)." ".
282  'AND server_id = '.$ilDB->quote($a_server_id,'integer');
283  $res = $ilDB->query($query);
284  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
285  {
286  return $row->mid;
287  }
288  return 0;
289 
290  }
291 
300  public static function _lookupMIDs($a_server_id,$a_econtent_id)
301  {
302  global $ilDB;
303 
304  $query = "SELECT mid FROM ecs_import WHERE econtent_id = ".$ilDB->quote($a_econtent_id,'integer')." ".
305  'AND server_id = '.$ilDB->quote($a_server_id,'integer');
306  $res = $ilDB->query($query);
307  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
308  {
309  $mids[] = $row->mid;
310  }
311  return $mids ? $mids : array();
312  }
313 
322  public static function _deleteByObjId($a_obj_id)
323  {
324  global $ilDB;
325 
326  $query = "DELETE FROM ecs_import ".
327  "WHERE obj_id = ".$ilDB->quote($a_obj_id,'integer')." ";
328  $res = $ilDB->manipulate($query);
329  return true;
330  }
331 
337  public static function deleteByServer($a_server_id)
338  {
339  global $ilDB;
340 
341  $query = 'DELETE FROM ecs_import '.
342  'WHERE server_id = '.$ilDB->quote($a_server_id,'integer');
343  $ilDB->manipulate($query);
344  }
345 
353  public static function deleteRessources($a_server_id, $a_mid, $a_econtent_ids)
354  {
355  global $ilDB;
356 
357  $query = 'DELETE FROM ecs_import '.
358  'WHERE server_id = '.$ilDB->quote($a_server_id,'integer'). ' '.
359  'AND mid = '.$ilDB->quote($a_mid,'integer').' '.
360  'AND '.$ilDB->in('econtent_id',(array) $a_econtent_ids,false,'integer');
361  $ilDB->manipulate($query);
362  return true;
363  }
364 
365 
366 
376  public static function _isImported($a_server_id,$a_econtent_id,$a_mid, $a_sub_id = 0)
377  {
378  return ilECSImport::_lookupObjId($a_server_id,$a_econtent_id,$a_mid, $a_sub_id);
379  }
380 
381  public function setServerId($a_server_id)
382  {
383  $this->server_id = $a_server_id;
384  }
385 
386  public function getServerId()
387  {
388  return $this->server_id;
389  }
390 
398  public function setImported($a_status)
399  {
400  $this->imported = $a_status;
401  }
402 
403  public function setSubId($a_id)
404  {
405  $this->sub_id = $a_id;
406  }
407 
408  public function getSubId()
409  {
410  return $this->sub_id ? $this->sub_id : NULL;
411  }
412 
417  public function setContentId($a_content_id)
418  {
419  $this->content_id = $a_content_id;
420  }
421 
426  public function getContentId()
427  {
428  return $this->content_id;
429  }
430 
438  public function setMID($a_mid)
439  {
440  $this->mid = $a_mid;
441  }
442 
449  public function getMID()
450  {
451  return $this->mid;
452  }
453 
461  public function setEContentId($a_id)
462  {
463  $this->econtent_id = $a_id;
464  }
465 
472  public function getEContentId()
473  {
474  return $this->econtent_id;
475  }
476 
482  public function save()
483  {
484  global $ilDB;
485 
486  $query = "DELETE FROM ecs_import ".
487  "WHERE obj_id = ".$this->db->quote($this->obj_id,'integer')." ".
488  'AND server_id = '.$ilDB->quote($this->getServerId(),'integer');
489  $res = $ilDB->manipulate($query);
490 
491  $query = "INSERT INTO ecs_import (obj_id,mid,econtent_id,sub_id,server_id,content_id) ".
492  "VALUES ( ".
493  $this->db->quote($this->obj_id,'integer').", ".
494  $this->db->quote($this->mid,'integer').", ".
495  $this->db->quote($this->econtent_id,'integer').", ".
496  $this->db->quote($this->getSubId(),'text'). ', '.
497  $this->db->quote($this->getServerId(),'integer').', '.
498  $this->db->quote($this->getContentId(),'text').' '.
499  ")";
500 
501  $res = $ilDB->manipulate($query);
502 
503  return true;
504  }
505 
510  private function read()
511  {
512  global $ilDB;
513 
514  $query = "SELECT * FROM ecs_import WHERE ".
515  "obj_id = ".$this->db->quote($this->obj_id,'integer')." ".
516  'AND server_id = '.$ilDB->quote($this->getServerId(),'integer');
517  $res = $this->db->query($query);
518  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
519  {
520  $this->econtent_id = $row->econtent_id;
521  $this->mid = $row->mid;
522  $this->sub_id = $row->sub_id;
523  $this->content_id = $row->content_id;
524  }
525  }
526 
527  public static function resetServerId($a_server_id)
528  {
529  global $ilDB;
530 
531  $query = 'UPDATE ecs_import SET server_id = '.$ilDB->quote(0,'integer').
532  ' WHERE server_id = '.$ilDB->quote($a_server_id,'integer');
533  $ilDB->manipulate($query);
534  return true;
535  }
536 
537 
538  public function setECSId($a_id)
539  {
540  $this->ecs_id = $a_id;
541  }
542 }
543 ?>