ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilObjRemoteGroup.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/WebServices/ECS/classes/class.ilRemoteObjectBase.php');
5 
16 {
17  const DB_TABLE_NAME = "rgrp_settings";
18 
20  const ACTIVATION_OFFLINE = 1;
22  const ACTIVATION_LIMITED = 2;
23 
24  protected $availability_type;
25  protected $end;
26  protected $start;
27 
28  public function initType()
29  {
30  $this->type = "rgrp";
31  }
32 
33  protected function getTableName()
34  {
35  return self::DB_TABLE_NAME;
36  }
37 
38  protected function getECSObjectType()
39  {
40  return "/campusconnect/groups";
41  }
42 
48  public function setAvailabilityType($a_type)
49  {
50  $this->availability_type = $a_type;
51  }
52 
58  public function getAvailabilityType()
59  {
61  }
62 
68  public function setStartingTime($a_time)
69  {
70  $this->start = $a_time;
71  }
72 
78  public function getStartingTime()
79  {
80  return $this->start;
81  }
82 
88  public function setEndingTime($a_time)
89  {
90  $this->end = $a_time;
91  }
92 
98  public function getEndingTime()
99  {
100  return $this->end;
101  }
102 
109  public static function _lookupOnline($a_obj_id)
110  {
111  global $ilDB;
112 
113  $query = "SELECT * FROM " . self::DB_TABLE_NAME .
114  " WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " ";
115  $res = $ilDB->query($query);
117  switch ($row->availability_type) {
118  case self::ACTIVATION_UNLIMITED:
119  return true;
120 
121  case self::ACTIVATION_OFFLINE:
122  return false;
123 
124  case self::ACTIVATION_LIMITED:
125  return time() > $row->r_start && time < $row->r_end;
126 
127  default:
128  return false;
129  }
130 
131  return false;
132  }
133 
134  protected function doCreateCustomFields(array &$a_fields)
135  {
136  $a_fields["availability_type"] = array("integer", 0);
137  $a_fields["availability_start"] = array("integer", 0);
138  $a_fields["availability_end"] = array("integer", 0);
139  }
140 
141  protected function doUpdateCustomFields(array &$a_fields)
142  {
143  $a_fields["availability_type"] = array("integer", $this->getAvailabilityType());
144  $a_fields["availability_start"] = array("integer", (int) $this->getStartingTime());
145  $a_fields["availability_end"] = array("integer", (int) $this->getEndingTime());
146  }
147 
148  protected function doReadCustomFields($a_row)
149  {
150  $this->setAvailabilityType($a_row->availability_type);
151  $this->setStartingTime($a_row->availability_start);
152  $this->setEndingTime($a_row->availability_end);
153  }
154 
155  protected function updateCustomFromECSContent(ilECSSetting $a_server, $a_ecs_content)
156  {
157  // add custom values
158  // $this->setAvailabilityType($a_ecs_content->status == 'online' ? self::ACTIVATION_UNLIMITED : self::ACTIVATION_OFFLINE);
159 
160  // :TODO: ACTIVATION_LIMITED is currently not supported in ECS yet
161  }
162 }
getEndingTime()
get ending time
setAvailabilityType($a_type)
Set Availability type.
static _lookupOnline($a_obj_id)
Lookup online.
getAvailabilityType()
get availability type
$a_type
Definition: workflow.php:92
foreach($_POST as $key=> $value) $res
getStartingTime()
get starting time
$query
doUpdateCustomFields(array &$a_fields)
Remote object app base class.
const ACTIVATION_OFFLINE
Fixed activation.
setEndingTime($a_time)
set ending time
Remote group app class.
updateCustomFromECSContent(ilECSSetting $a_server, $a_ecs_content)
$row
doCreateCustomFields(array &$a_fields)
global $ilDB
setStartingTime($a_time)
set starting time