ILIAS  release_7 Revision v7.30-3-g800a261c036
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
4include_once('Services/WebServices/ECS/classes/class.ilRemoteObjectBase.php');
5
16{
17 const DB_TABLE_NAME = "rgrp_settings";
18
23
25 protected $end;
26 protected $start;
27
28 public function initType()
29 {
30 $this->type = "rgrp";
31 }
32
33 protected function getTableName()
34 {
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);
116 $row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT);
117 switch ($row->availability_type) {
119 return true;
120
122 return false;
123
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}
An exception for terminatinating execution or to throw for unit testing.
Remote group app class.
setStartingTime($a_time)
set starting time
getStartingTime()
get starting time
getAvailabilityType()
get availability type
doReadCustomFields($a_row)
Read custom fields from db row.
setAvailabilityType($a_type)
Set Availability type.
doUpdateCustomFields(array &$a_fields)
Add custom fields to db update.
updateCustomFromECSContent(ilECSSetting $a_server, $a_ecs_content)
update remote object settings from ecs content
getTableName()
Get db table name.
getECSObjectType()
Get ECS resource identifier, e.g.
const ACTIVATION_OFFLINE
Fixed activation.
getEndingTime()
get ending time
doCreateCustomFields(array &$a_fields)
Add custom fields to db insert.
setEndingTime($a_time)
set ending time
static _lookupOnline($a_obj_id)
Lookup online.
Remote object app base class.
$query
foreach($_POST as $key=> $value) $res
global $ilDB