4 include_once(
"./Services/DataSet/classes/class.ilDataSet.php");
23 return array(
"4.3.0");
34 return "http://www.ilias.de/xml/Services/Calendar/" . $a_entity;
43 protected function getTypes($a_entity, $a_version)
46 if ($a_entity ==
"calendar") {
60 if ($a_entity ==
"cal_entry") {
67 "Description" =>
"text",
69 "Fullday" =>
"integer",
72 "Informations" =>
"text",
73 "AutoGenerated" =>
"integer",
74 "ContextId" =>
"integer",
75 "TranslationType" =>
"integer",
76 "IsMilestone" =>
"integer",
77 "Completion" =>
"integer",
78 "Notification" =>
"integer" 84 if ($a_entity ==
"cal_assignment") {
89 "EntryId" =>
"integer" 95 if ($a_entity ==
"recurrence_rule") {
99 "RuleId" =>
"integer",
100 "EntryId" =>
"integer",
101 "CalRecurrence" =>
"integer",
102 "FreqType" =>
"text",
103 "FreqUntilDate" =>
"text",
104 "FreqUntilCount" =>
"integer",
105 "Intervall" =>
"integer",
107 "Byweekno" =>
"text",
109 "Bymonthday" =>
"text",
110 "Byyearday" =>
"text",
111 "Bysetpos" =>
"text",
112 "Weekstart" =>
"text" 124 public function readData($a_entity, $a_version, $a_ids, $a_field =
"")
128 $ilDB = $DIC[
'ilDB'];
130 if (!is_array($a_ids)) {
131 $a_ids = array($a_ids);
135 if ($a_entity ==
"calendar") {
136 switch ($a_version) {
139 " FROM cal_categories " .
141 $ilDB->in(
"cat_id", $a_ids,
false,
"integer"));
147 if ($a_entity ==
"cal_assignment") {
148 switch ($a_version) {
151 " FROM cal_cat_assignments " .
153 $ilDB->in(
"cat_id", $a_ids,
false,
"integer"));
159 if ($a_entity ==
"cal_entry") {
160 switch ($a_version) {
163 " starta, enda, informations, auto_generated, context_id, translation_type, is_milestone, completion, notification " .
164 " FROM cal_entries " .
166 $ilDB->in(
"cal_id", $a_ids,
false,
"integer"));
173 if ($a_entity ==
"recurrence_rule") {
174 switch ($a_version) {
176 $this->
getDirectDataFromQuery(
"SELECT rule_id, cal_id entry_id, cal_recurrence, freq_type, freq_until_date, freq_until_count, " .
177 " intervall, byday, byweekno, bymonth, bymonthday, byyearday, bysetpos, weekstart " .
178 " FROM cal_recurrence_rules " .
180 $ilDB->in(
"cal_id", $a_ids,
false,
"integer"));
193 include_once(
"./Services/Calendar/classes/class.ilCalendarCategoryAssignments.php");
196 foreach ($assignmnts as $cal_id) {
197 $entries[$cal_id] = $cal_id;
200 "cal_entry" => array(
"ids" => $entries),
201 "cal_assignment" => array(
"ids" => $a_rec[
"CatId"])
205 "recurrence_rule" => array(
"ids" => $a_rec[
"Id"])
218 public function importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
224 if ($a_rec[
"Type"] == 1) {
225 $usr_id = $a_mapping->getMapping(
"Services/User",
"usr", $a_rec[
"ObjId"]);
227 include_once(
'./Services/Calendar/classes/class.ilCalendarCategory.php');
229 $category->setTitle($a_rec[
"Title"]);
230 $category->setColor($a_rec[
"Color"]);
232 $category->setObjId($usr_id);
234 $a_mapping->addMapping(
238 $category->getCategoryID()
247 if ((
int) $a_rec[
"ContextId"] == 0) {
248 include_once(
'./Services/Calendar/classes/class.ilCalendarEntry.php');
250 $entry->setTitle($a_rec[
"Title"]);
251 $entry->setSubtitle($a_rec[
"Subtitle"]);
252 $entry->setDescription($a_rec[
"Description"]);
253 $entry->setLocation($a_rec[
"Location"]);
254 $entry->setFullday($a_rec[
"Fullday"]);
255 if ($a_rec[
"Starta"] !=
"") {
258 if ($a_rec[
"Enda"] !=
"") {
261 $entry->setFurtherInformations($a_rec[
"Informations"]);
262 $entry->setAutoGenerated($a_rec[
"AutoGenerated"]);
263 $entry->setContextId($a_rec[
"ContextId"]);
264 $entry->setMilestone($a_rec[
"Milestone"]);
265 $entry->setCompletion($a_rec[
"Completion"]);
266 $entry->setTranslationType($a_rec[
"TranslationType"]);
267 $entry->enableNotification($a_rec[
"Notification"]);
269 $a_mapping->addMapping(
278 case "cal_assignment":
279 $cat_id = $a_mapping->getMapping(
"Services/Calendar",
"calendar", $a_rec[
"CatId"]);
280 $entry_id = $a_mapping->getMapping(
"Services/Calendar",
"cal_entry", $a_rec[
"EntryId"]);
281 if ($cat_id > 0 && $entry_id > 0) {
282 include_once(
'./Services/Calendar/classes/class.ilCalendarCategoryAssignments.php');
284 $ass->addAssignment($cat_id);
288 case "recurrence_rule":
289 $entry_id = $a_mapping->getMapping(
"Services/Calendar",
"cal_entry", $a_rec[
"EntryId"]);
291 include_once(
'./Services/Calendar/classes/class.ilCalendarRecurrence.php');
293 $rec->setEntryId($entry_id);
294 $rec->setRecurrence($a_rec[
"CalRecurrence"]);
295 $rec->setFrequenceType($a_rec[
"FreqType"]);
296 if ($a_rec[
"FreqUntilDate"] !=
"") {
299 $rec->setFrequenceUntilCount($a_rec[
"FreqUntilCount"]);
300 $rec->setInterval($a_rec[
"Interval"]);
301 $rec->setBYDAY($a_rec[
"Byday"]);
302 $rec->setBYWEEKNO($a_rec[
"Byweekno"]);
303 $rec->setBYMONTH($a_rec[
"Bymonth"]);
304 $rec->setBYMONTHDAY($a_rec[
"Bymonthday"]);
305 $rec->setBYYEARDAY($a_rec[
"Byyearday"]);
306 $rec->setBYSETPOS($a_rec[
"Bysetpos"]);
307 $rec->setWeekstart($a_rec[
"Weekstart"]);
309 $a_mapping->addMapping(
313 $rec->getRecurrenceId()
Model for a calendar entry.
getSupportedVersions()
Get supported versions.
getTypes($a_entity, $a_version)
Get field types for entity.
getDirectDataFromQuery($a_query, $a_convert_to_leading_upper=true, $a_set=true)
Get data from query.This is a standard procedure, all db field names are directly mapped to abstract ...
importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
Import record.
readData($a_entity, $a_version, $a_ids, $a_field="")
Read data.
Stores calendar categories.
getDependencies($a_entity, $a_version, $a_rec, $a_ids)
Determine the dependent sets of data.
static _lookupType($a_id, $a_reference=false)
lookup object type
static _getAssignedAppointments($a_cat_id)
Get assigned apointments.
A dataset contains in data in a common structure that can be shared and transformed for different pur...
getXmlNamespace($a_entity, $a_schema_version)
Get xml namespace.