コード例 #1
0
 /**
  * Create a new bookings calendar category.
  *
  * It is named after the parenting RoomSharing-oject
  *
  * @access protected
  * @return
  */
 protected function createBookingsCalendarCategory()
 {
     global $ilUser;
     $cat = new ilCalendarCategory();
     $cat->setColor($this->color);
     $cat->setType(ilCalendarCategory::TYPE_USR);
     $title = $this->getParentObject()->getTitle();
     $cat->setTitle($title);
     $cat->setObjId($ilUser->getId());
     return $cat->add();
 }
コード例 #2
0
 /**
  * save new calendar
  *
  * @access protected
  */
 protected function save()
 {
     global $ilUser;
     include_once './Services/Calendar/classes/class.ilCalendarCategory.php';
     $category = new ilCalendarCategory(0);
     $category->setTitle(ilUtil::stripSlashes($_POST['title']));
     $category->setColor('#' . ilUtil::stripSlashes($_POST['color']));
     $category->setLocationType((int) $_POST['type_rl']);
     $category->setRemoteUrl(ilUtil::stripSlashes($_POST['remote_url']));
     $category->setRemoteUser(ilUtil::stripSlashes($_POST['remote_user']));
     $category->setRemotePass(ilUtil::stripSlashes($_POST['remote_pass']));
     if (isset($_POST['type']) and $_POST['type'] == ilCalendarCategory::TYPE_GLOBAL) {
         $category->setType((int) $_POST['type']);
         $category->setObjId(0);
     } else {
         $category->setType(ilCalendarCategory::TYPE_USR);
         $category->setObjId($ilUser->getId());
     }
     if (!$category->validate()) {
         ilUtil::sendFailure($this->lng->txt('err_check_input'));
         $this->add();
         return false;
     }
     $category->add();
     try {
         if ($category->getLocationType() == ilCalendarCategory::LTYPE_REMOTE) {
             $this->doSynchronisation($category);
         }
     } catch (Exception $e) {
         // Delete calendar if creation failed
         $category->delete();
         ilUtil::sendFailure($e->getMessage());
         $this->manage();
         return true;
     }
     ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
     // $this->ctrl->returnToParent($this);
     $this->manage(true);
 }
コード例 #3
0
 /**
  * Create a default calendar
  *
  * @access protected
  * @return
  */
 protected function createDefaultCalendar()
 {
     global $ilUser, $lng;
     $cat = new ilCalendarCategory();
     $cat->setColor(ilCalendarCategory::DEFAULT_COLOR);
     $cat->setType(ilCalendarCategory::TYPE_USR);
     $cat->setTitle($this->lng->txt('cal_default_calendar'));
     $cat->setObjId($ilUser->getId());
     return $cat->add();
 }
コード例 #4
0
 /**
  * Create a category for a new object (crs,grp, ...)
  * 
  * @access public
  * @param object ilias object ('crs','grp',...)
  * @static
  */
 public static function createCategory($a_obj)
 {
     global $lng;
     include_once './Services/Calendar/classes/class.ilCalendarCategory.php';
     include_once './Services/Calendar/classes/class.ilCalendarAppointmentColors.php';
     $cat = new ilCalendarCategory();
     $cat->setTitle($a_obj->getTitle() ? $a_obj->getTitle() : $lng->txt('obj_' . $a_obj->getType()));
     $cat->setType(ilCalendarCategory::TYPE_OBJ);
     $cat->setColor(ilCalendarAppointmentColors::_getRandomColorByType($a_obj->getType()));
     $cat->setObjId($a_obj->getId());
     return $cat->add();
 }
コード例 #5
0
 /**
  * Create a category for a new object (crs,grp, ...)
  * 
  * @access public
  * @param object ilias object ('crs','grp',...)
  * @static
  */
 public static function createCategory($a_obj, $a_check_existing = false)
 {
     global $lng;
     include_once './Services/Calendar/classes/class.ilCalendarCategory.php';
     include_once './Services/Calendar/classes/class.ilCalendarAppointmentColors.php';
     // already existing?  do update instead
     if ($a_check_existing && ilCalendarCategory::_getInstanceByObjId($a_obj->getId())) {
         return self::updateCategory($a_obj);
     }
     $cat = new ilCalendarCategory();
     $cat->setTitle($a_obj->getTitle() ? $a_obj->getTitle() : $lng->txt('obj_' . $a_obj->getType()));
     $cat->setType(ilCalendarCategory::TYPE_OBJ);
     $cat->setColor(ilCalendarAppointmentColors::_getRandomColorByType($a_obj->getType()));
     $cat->setObjId($a_obj->getId());
     return $cat->add();
 }
コード例 #6
0
 /**
  * Import record
  *
  * @param
  * @return
  */
 function importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
 {
     switch ($a_entity) {
         case "calendar":
             // please note: we currently only support private user calendars to
             // be imported
             if ($a_rec["Type"] == 1) {
                 $usr_id = $a_mapping->getMapping("Services/User", "usr", $a_rec["ObjId"]);
                 if ($usr_id > 0 && ilObject::_lookupType($usr_id) == "usr") {
                     include_once './Services/Calendar/classes/class.ilCalendarCategory.php';
                     $category = new ilCalendarCategory(0);
                     $category->setTitle($a_rec["Title"]);
                     $category->setColor($a_rec["Color"]);
                     $category->setType(ilCalendarCategory::TYPE_USR);
                     $category->setObjId($usr_id);
                     $category->add();
                     $a_mapping->addMapping("Services/Calendar", "calendar", $a_rec["CatId"], $category->getCategoryID());
                 }
             }
             break;
         case "cal_entry":
             // please note: we currently only support private user calendars to
             // be imported
             if ((int) $a_rec["ContextId"] == 0) {
                 include_once './Services/Calendar/classes/class.ilCalendarEntry.php';
                 $entry = new ilCalendarEntry(0);
                 $entry->setTitle($a_rec["Title"]);
                 $entry->setSubtitle($a_rec["Subtitle"]);
                 $entry->setDescription($a_rec["Description"]);
                 $entry->setLocation($a_rec["Location"]);
                 $entry->setFullday($a_rec["Fullday"]);
                 if ($a_rec["Starta"] != "") {
                     $entry->setStart(new ilDateTime($a_rec["Starta"], IL_CAL_DATETIME, 'UTC'));
                 }
                 if ($a_rec["Enda"] != "") {
                     $entry->setEnd(new ilDateTime($a_rec["Enda"], IL_CAL_DATETIME, 'UTC'));
                 }
                 $entry->setFurtherInformations($a_rec["Informations"]);
                 $entry->setAutoGenerated($a_rec["AutoGenerated"]);
                 $entry->setContextId($a_rec["ContextId"]);
                 $entry->setMilestone($a_rec["Milestone"]);
                 $entry->setCompletion($a_rec["Completion"]);
                 $entry->setTranslationType($a_rec["TranslationType"]);
                 $entry->enableNotification($a_rec["Notification"]);
                 $entry->save();
                 $a_mapping->addMapping("Services/Calendar", "cal_entry", $a_rec["Id"], $entry->getEntryId());
             }
             break;
         case "cal_assignment":
             $cat_id = $a_mapping->getMapping("Services/Calendar", "calendar", $a_rec["CatId"]);
             $entry_id = $a_mapping->getMapping("Services/Calendar", "cal_entry", $a_rec["EntryId"]);
             if ($cat_id > 0 && $entry_id > 0) {
                 include_once './Services/Calendar/classes/class.ilCalendarCategoryAssignments.php';
                 $ass = new ilCalendarCategoryAssignments($entry_id);
                 $ass->addAssignment($cat_id);
             }
             break;
         case "recurrence_rule":
             $entry_id = $a_mapping->getMapping("Services/Calendar", "cal_entry", $a_rec["EntryId"]);
             if ($entry_id > 0) {
                 include_once './Services/Calendar/classes/class.ilCalendarRecurrence.php';
                 $rec = new ilCalendarRecurrence();
                 $rec->setEntryId($entry_id);
                 $rec->setRecurrence($a_rec["CalRecurrence"]);
                 $rec->setFrequenceType($a_rec["FreqType"]);
                 if ($a_rec["FreqUntilDate"] != "") {
                     $rec->setFrequenceUntilDate(new ilDateTime($a_rec["FreqUntilDate"], IL_CAL_DATETIME));
                 }
                 $rec->setFrequenceUntilCount($a_rec["FreqUntilCount"]);
                 $rec->setInterval($a_rec["Interval"]);
                 $rec->setBYDAY($a_rec["Byday"]);
                 $rec->setBYWEEKNO($a_rec["Byweekno"]);
                 $rec->setBYMONTH($a_rec["Bymonth"]);
                 $rec->setBYMONTHDAY($a_rec["Bymonthday"]);
                 $rec->setBYYEARDAY($a_rec["Byyearday"]);
                 $rec->setBYSETPOS($a_rec["Bysetpos"]);
                 $rec->setWeekstart($a_rec["Weekstart"]);
                 $rec->save();
                 $a_mapping->addMapping("Services/Calendar", "recurrence_rule", $a_rec["RuleId"], $rec->getRecurrenceId());
             }
             break;
     }
 }