ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilObjRemoteCourse.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 = "remote_course_settings";
18 
19  const ACTIVATION_OFFLINE = 0;
21  const ACTIVATION_LIMITED = 2;
22 
23  protected $availability_type;
24  protected $end;
25  protected $start;
26 
27  public function initType()
28  {
29  $this->type = "rcrs";
30  }
31 
32  protected function getTableName()
33  {
34  return self::DB_TABLE_NAME;
35  }
36 
37  protected function getECSObjectType()
38  {
39  return "/campusconnect/courselinks";
40  }
41 
47  public function setAvailabilityType($a_type)
48  {
49  $this->availability_type = $a_type;
50  }
51 
57  public function getAvailabilityType()
58  {
60  }
61 
67  public function setStartingTime($a_time)
68  {
69  $this->start = $a_time;
70  }
71 
77  public function getStartingTime()
78  {
79  return $this->start;
80  }
81 
87  public function setEndingTime($a_time)
88  {
89  $this->end = $a_time;
90  }
91 
97  public function getEndingTime()
98  {
99  return $this->end;
100  }
101 
108  public static function _lookupOnline($a_obj_id)
109  {
110  global $ilDB;
111 
112  $query = "SELECT * FROM ".self::DB_TABLE_NAME.
113  " WHERE obj_id = ".$ilDB->quote($a_obj_id ,'integer')." ";
114  $res = $ilDB->query($query);
116  switch($row->availability_type)
117  {
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["r_start"] = array("integer", 0);
138  $a_fields["r_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["r_start"] = array("integer",(int) $this->getStartingTime());
145  $a_fields["r_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->r_start);
152  $this->setEndingTime($a_row->r_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  // adv. metadata
163  include_once('./Services/WebServices/ECS/classes/class.ilECSUtils.php');
164  include_once('./Services/WebServices/ECS/classes/class.ilECSDataMappingSetting.php');
165  $definition = ilECSUtils::getEContentDefinition($this->getECSObjectType());
166  $this->importMetadataFromJson($a_ecs_content, $a_server, $definition,
168 
169  include_once './Services/WebServices/ECS/classes/class.ilECSImport.php';
170  $import = new ilECSImport($a_server->getServerId(),$this->getId());
171  $import->setContentId($a_ecs_content->courseID);
172  $import->save();
173 
174 
175  }
176 }
177 
178 ?>
getAvailabilityType()
get availability type
getServerId()
Get current server id.
static getEContentDefinition($a_resource_id)
Get econtent / metadata definition.
importMetadataFromJson($a_json, ilECSSetting $a_server, array $a_definition, $a_mapping_mode)
Add advanced metadata to json (export)
$a_type
Definition: workflow.php:93
setStartingTime($a_time)
set starting time
updateCustomFromECSContent(ilECSSetting $a_server, $a_ecs_content)
setEndingTime($a_time)
set ending time
Storage of ECS imported objects.
setAvailabilityType($a_type)
Set Availability type.
Remote object app base class.
Remote course app class.
Create styles array
The data for the language used.
getEndingTime()
get ending time
static _lookupOnline($a_obj_id)
Lookup online.
getStartingTime()
get starting time
setContentId($a_content_id)
Set content id.
global $ilDB
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
doCreateCustomFields(array &$a_fields)
doUpdateCustomFields(array &$a_fields)