/**
  * Write course item information 
  * Starting time, ending time...
  * @param int $a_ref_id
  * @return 
  */
 protected function writeCourseItemInformation($a_ref_id)
 {
     include_once './Services/Object/classes/class.ilObjectActivation.php';
     $item = ilObjectActivation::getItem($a_ref_id);
     $this->xmlStartTag('Timing', array('Type' => $item['timing_type'], 'Visible' => $item['visible'], 'Changeable' => $item['changeable']));
     if ($item['timing_start']) {
         $tmp_date = new ilDateTime($item['timing_start'], IL_CAL_UNIX);
         $this->xmlElement('Start', array(), $tmp_date->get(IL_CAL_DATETIME, '', ilTimeZone::UTC));
     }
     if ($item['timing_end']) {
         $tmp_date = new ilDateTime($item['timing_end'], IL_CAL_UNIX);
         $this->xmlElement('End', array(), $tmp_date->get(IL_CAL_DATETIME, '', ilTimeZone::UTC));
     }
     if ($item['suggestion_start']) {
         $tmp_date = new ilDateTime($item['suggestion_start'], IL_CAL_UNIX);
         $this->xmlElement('SuggestionStart', array(), $tmp_date->get(IL_CAL_DATETIME, '', ilTimeZone::UTC));
     }
     if ($item['suggestion_end']) {
         $tmp_date = new ilDateTime($item['suggestion_end'], IL_CAL_UNIX);
         $this->xmlElement('SuggestionEnd', array(), $tmp_date->get(IL_CAL_DATETIME, '', ilTimeZone::UTC));
     }
     if ($item['earliest_start']) {
         $tmp_date = new ilDateTime($item['earliest_start'], IL_CAL_UNIX);
         $this->xmlElement('EarliestStart', array(), $tmp_date->get(IL_CAL_DATETIME, '', ilTimeZone::UTC));
     }
     if ($item['latest_end']) {
         $tmp_date = new ilDateTime($item['latest_end'], IL_CAL_UNIX);
         $this->xmlElement('LatestEnd', array(), $tmp_date->get(IL_CAL_DATETIME, '', ilTimeZone::UTC));
     }
     $this->xmlEndTag('Timing');
 }
 function validate()
 {
     include_once './Services/Object/classes/class.ilObjectActivation.php';
     $item = ilObjectActivation::getItem($this->getItemId());
     if ($this->getPlanedEndingTime() > $item_data['latest_end']) {
         return false;
     }
     return true;
 }
 function &_getTimings($a_ref_id)
 {
     static $cache = array();
     if (isset($cache[$a_ref_id])) {
         return $cache[$a_ref_id];
     }
     $cache[$a_ref_id]['item'] = ilObjectActivation::getItem($a_ref_id);
     $cache[$a_ref_id]['user'] = ilTimingPlaned::_getPlanedTimingsByItem($a_ref_id);
     return $cache[$a_ref_id];
 }
 /**
  * Is activated?
  *
  * @param int $a_obj_id
  * @param int $a_ref_id
  * @return boolean
  */
 public static function _isActivated($a_ref_id)
 {
     include_once './Services/Object/classes/class.ilObjectActivation.php';
     $item = ilObjectActivation::getItem($a_ref_id);
     switch ($item['timing_type']) {
         case ilObjectActivation::TIMINGS_ACTIVATION:
             if (time() < $item['timing_start'] or time() > $item['timing_end']) {
                 return false;
             }
             // fallthrough
         // fallthrough
         default:
             return true;
     }
 }
 protected function updateActivation()
 {
     // moved activation to ilObjectActivation
     if ($this->ref_id) {
         include_once "./Services/Object/classes/class.ilObjectActivation.php";
         ilObjectActivation::getItem($this->ref_id);
         $item = new ilObjectActivation();
         if (!$this->isActivationLimited()) {
             $item->setTimingType(ilObjectActivation::TIMINGS_DEACTIVATED);
         } else {
             $item->setTimingType(ilObjectActivation::TIMINGS_ACTIVATION);
             $item->setTimingStart($this->getActivationStartDate());
             $item->setTimingEnd($this->getActivationEndDate());
             $item->toggleVisible($this->getActivationVisibility());
         }
         $item->update($this->ref_id);
     }
 }
Beispiel #6
0
 /**
  * Loads a ilObjTest object from a database
  */
 public function loadFromDb()
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT * FROM tst_tests WHERE obj_fi = %s", array('integer'), array($this->getId()));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchObject($result);
         $this->setTestId($data->test_id);
         if (strlen($this->getAuthor()) == 0) {
             $this->saveAuthorToMetadata($data->author);
         }
         $this->setAuthor($data->author);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setIntroductionEnabled($data->intro_enabled);
         $this->setIntroduction(ilRTE::_replaceMediaObjectImageSrc($data->introduction, 1));
         $this->setShowInfo($data->showinfo);
         $this->setFinalStatement(ilRTE::_replaceMediaObjectImageSrc($data->finalstatement, 1));
         $this->setForceJS($data->forcejs);
         $this->setCustomStyle($data->customstyle);
         $this->setShowFinalStatement($data->showfinalstatement);
         $this->setSequenceSettings($data->sequence_settings);
         $this->setScoreReporting($data->score_reporting);
         $this->setInstantFeedbackSolution($data->instant_verification);
         $this->setAnswerFeedbackPoints($data->answer_feedback_points);
         $this->setAnswerFeedback($data->answer_feedback);
         $this->setAnonymity($data->anonymity);
         $this->setShowCancel($data->show_cancel);
         $this->setShowMarker($data->show_marker);
         $this->setFixedParticipants($data->fixed_participants);
         $this->setNrOfTries($data->nr_of_tries);
         $this->setKiosk($data->kiosk);
         $this->setUsePreviousAnswers($data->use_previous_answers);
         $this->setRedirectionMode($data->redirection_mode);
         $this->setRedirectionUrl($data->redirection_url);
         $this->setTitleOutput($data->title_output);
         $this->setProcessingTime($data->processing_time);
         $this->setEnableProcessingTime($data->enable_processing_time);
         $this->setResetProcessingTime($data->reset_processing_time);
         $this->setReportingDate($data->reporting_date);
         $this->setShuffleQuestions($data->shuffle_questions);
         $this->setResultsPresentation($data->results_presentation);
         $this->setStartingTimeEnabled($data->starting_time_enabled);
         $this->setStartingTime($data->starting_time);
         $this->setEndingTimeEnabled($data->ending_time_enabled);
         $this->setEndingTime($data->ending_time);
         $this->setListOfQuestionsSettings($data->show_summary);
         $this->setECTSOutput($data->ects_output);
         $this->setECTSGrades(array("A" => $data->ects_a, "B" => $data->ects_b, "C" => $data->ects_c, "D" => $data->ects_d, "E" => $data->ects_e));
         $this->setECTSFX($data->ects_fx);
         $this->mark_schema->flush();
         $this->mark_schema->loadFromDb($this->getTestId());
         $this->setCountSystem($data->count_system);
         $this->setMCScoring($data->mc_scoring);
         $this->setMailNotification($data->mailnotification);
         $this->setMailNotificationType($data->mailnottype);
         $this->setExportSettings($data->exportsettings);
         $this->setScoreCutting($data->score_cutting);
         $this->setPasswordEnabled($data->password_enabled);
         $this->setPassword($data->password);
         $this->setLimitUsersEnabled($data->limit_users_enabled);
         $this->setAllowedUsers($data->allowedusers);
         $this->setAllowedUsersTimeGap($data->alloweduserstimegap);
         $this->setPassScoring($data->pass_scoring);
         $this->setObligationsEnabled($data->obligations_enabled);
         $this->setOfferingQuestionHintsEnabled($data->offer_question_hints);
         $this->setCertificateVisibility($data->certificate_visibility);
         $this->setEnabledViewMode($data->enabled_view_mode);
         $this->setTemplate($data->template_id);
         $this->setPoolUsage($data->pool_usage);
         $this->setPrintBestSolutionWithResult((bool) $data->print_bs_with_res);
         $this->setHighscoreEnabled((bool) $data->highscore_enabled);
         $this->setHighscoreAnon((bool) $data->highscore_anon);
         $this->setHighscoreAchievedTS((bool) $data->highscore_achieved_ts);
         $this->setHighscoreScore((bool) $data->highscore_score);
         $this->setHighscorePercentage((bool) $data->highscore_percentage);
         $this->setHighscoreHints((bool) $data->highscore_hints);
         $this->setHighscoreWTime((bool) $data->highscore_wtime);
         $this->setHighscoreOwnTable((bool) $data->highscore_own_table);
         $this->setHighscoreTopTable((bool) $data->highscore_top_table);
         $this->setHighscoreTopNum((int) $data->highscore_top_num);
         $this->setOnline((bool) $data->online_status);
         $this->setSpecificAnswerFeedback((int) $data->specific_feedback);
         $this->setAutosave((bool) $data->autosave);
         $this->setAutosaveIval((int) $data->autosave_ival);
         $this->setPassDeletionAllowed($data->pass_deletion_allowed);
         $this->setEnableExamview((bool) $data->enable_examview);
         $this->setShowExamviewHtml((bool) $data->show_examview_html);
         $this->setShowExamviewPdf((bool) $data->show_examview_pdf);
         $this->setEnableArchiving((bool) $data->enable_archiving);
         $this->setShowExamIdInTestPassEnabled((bool) $data->examid_in_test_pass);
         $this->setShowExamIdInTestResultsEnabled((bool) $data->examid_in_test_res);
         $this->setSignSubmission((bool) $data->sign_submission);
         $this->setQuestionSetType($data->question_set_type);
         $this->setCharSelectorAvailability((int) $data->char_selector_availability);
         $this->setCharSelectorDefinition($data->char_selector_definition);
         $this->setSkillServiceEnabled((bool) $data->skill_service);
         $this->setResultFilterTaxIds(strlen($data->result_tax_filters) ? unserialize($data->result_tax_filters) : array());
         $this->setShowGradingStatusEnabled((bool) $data->show_grading_status);
         $this->setShowGradingMarkEnabled((bool) $data->show_grading_mark);
         $this->setInstantFeedbackAnswerFixationEnabled((bool) $data->inst_fb_answer_fixation);
         $this->loadQuestions();
     }
     // moved activation to ilObjectActivation
     if ($this->ref_id) {
         include_once "./Services/Object/classes/class.ilObjectActivation.php";
         $activation = ilObjectActivation::getItem($this->ref_id);
         switch ($activation["timing_type"]) {
             case ilObjectActivation::TIMINGS_ACTIVATION:
                 $this->setActivationLimited(true);
                 $this->setActivationStartingTime($activation["timing_start"]);
                 $this->setActivationEndingTime($activation["timing_end"]);
                 $this->setActivationVisibility($activation["visible"]);
                 break;
             default:
                 $this->setActivationLimited(false);
                 break;
         }
     }
 }
 /**
  * get values
  *
  * @access protected
  * @return
  */
 protected function getValues()
 {
     global $ilUser;
     include_once "Services/Object/classes/class.ilObjectActivation.php";
     $item_data = ilObjectActivation::getItem($this->getItemId());
     $data = array();
     if (!$item_data) {
         $data['timing_type'] = ilObjectActivation::TIMINGS_DEACTIVATED;
     } else {
         $data['timing_type'] = $item_data['timing_type'];
         $data['visible'] = $item_data['visible'];
         $data['changeable'] = $item_data['changeable'];
         $start = new ilDateTime($item_data['timing_start'], IL_CAL_UNIX);
         $data['timing_start']['date'] = $start->get(IL_CAL_FKT_DATE, 'Y-m-d', $ilUser->getTimeZone());
         $data['timing_start']['time'] = $start->get(IL_CAL_FKT_DATE, 'H:i:s', $ilUser->getTimeZone());
         $end = new ilDateTime($item_data['timing_end'], IL_CAL_UNIX);
         $data['timing_end']['date'] = $end->get(IL_CAL_FKT_DATE, 'Y-m-d', $ilUser->getTimeZone());
         $data['timing_end']['time'] = $end->get(IL_CAL_FKT_DATE, 'H:i:s', $ilUser->getTimeZone());
         $start = new ilDate(date('Y-m-d', $item_data['suggestion_start']), IL_CAL_DATE);
         $data['sug_start']['date'] = $start->get(IL_CAL_FKT_DATE, 'Y-m-d', 'UTC');
         $end = new ilDate(date('Y-m-d', $item_data['suggestion_end']), IL_CAL_DATE);
         $data['sug_end']['date'] = $end->get(IL_CAL_FKT_DATE, 'Y-m-d', 'UTC');
         $start = new ilDate(date('Y-m-d', $item_data['earliest_start']), IL_CAL_DATE);
         $data['early_start']['date'] = $start->get(IL_CAL_FKT_DATE, 'Y-m-d', 'UTC');
         $end = new ilDate(date('Y-m-d', $item_data['latest_end']), IL_CAL_DATE);
         $data['late_end']['date'] = $end->get(IL_CAL_FKT_DATE, 'Y-m-d', 'UTC');
     }
     $this->form->setValuesByArray($data);
 }
 public function checkReminder()
 {
     global $ilDB, $ilAccess;
     $now = time();
     $today = date("Y-m-d");
     // object settings / participation period
     if ($this->isOffline() || !$this->getReminderStatus() || $this->getStartDate() && $now < $this->getStartDate() || $this->getEndDate() && $now > $this->getEndDate()) {
         return false;
     }
     // reminder period
     $start = $this->getReminderStart();
     if ($start) {
         $start = $start->get(IL_CAL_DATE);
     }
     $end = $this->getReminderEnd();
     if ($end) {
         $end = $end->get(IL_CAL_DATE);
     }
     if ($today < $start || $end && $today > $end) {
         return false;
     }
     // object access period
     include_once "Services/Object/classes/class.ilObjectActivation.php";
     $item_data = ilObjectActivation::getItem($this->getRefId());
     if ($item_data["timing_type"] == ilObjectActivation::TIMINGS_ACTIVATION && ($now < $item_data["timing_start"] || $now > $item_data["timing_end"])) {
         return false;
     }
     // check frequency
     $cut = new ilDate($today, IL_CAL_DATE);
     $cut->increment(IL_CAL_DAY, $this->getReminderFrequency() * -1);
     if (!$this->getReminderLastSent() || $cut->get(IL_CAL_DATE) >= substr($this->getReminderLastSent(), 0, 10)) {
         $user_ids = $this->getNotificationTargetUserIds();
         if ($user_ids) {
             // gather participants who already finished
             $finished_ids = array();
             $set = $ilDB->query("SELECT user_fi FROM svy_finished" . " WHERE survey_fi = " . $ilDB->quote($this->getSurveyId(), "integer") . " AND state = " . $ilDB->quote(1, "text") . " AND " . $ilDB->in("user_fi", $user_ids, "", "integer"));
             while ($row = $ilDB->fetchAssoc($set)) {
                 $finished_ids[] = $row["user_fi"];
             }
             // some users missing out?
             $missing_ids = array_diff($user_ids, $finished_ids);
             if ($missing_ids) {
                 foreach ($missing_ids as $idx => $user_id) {
                     // should be able to participate
                     if (!$ilAccess->checkAccessOfUser($user_id, "read", "", $this->getRefId(), "svy", $this->getId())) {
                         unset($missing_ids[$idx]);
                     }
                 }
             }
             if ($missing_ids) {
                 $this->sentReminder($missing_ids);
             }
         }
         $this->setReminderLastSent($today);
         $this->saveToDb();
         return true;
     }
     return false;
 }
 /**
  * Append time target settings for items inside of courses 
  * @param int $ref_id Reference id of object
  * @return void
  */
 public function __appendTimeTargets($a_ref_id)
 {
     global $tree;
     if (!$tree->checkForParentType($a_ref_id, 'crs')) {
         return;
     }
     include_once './Services/Object/classes/class.ilObjectActivation.php';
     $time_targets = ilObjectActivation::getItem($a_ref_id);
     switch ($time_targets['timing_type']) {
         case ilObjectActivation::TIMINGS_DEACTIVATED:
             $type = self::TIMING_DEACTIVATED;
             break;
         case ilObjectActivation::TIMINGS_ACTIVATION:
             $type = self::TIMING_TEMPORARILY_AVAILABLE;
             break;
         case ilObjectActivation::TIMINGS_PRESETTING:
             $type = self::TIMING_PRESETTING;
             break;
         default:
             $type = self::TIMING_DEACTIVATED;
             break;
     }
     $this->xmlStartTag('TimeTarget', array('type' => $type));
     $vis = $time_targets['visible'] == 0 ? self::TIMING_VISIBILITY_OFF : self::TIMING_VISIBILITY_ON;
     $this->xmlElement('Timing', array('starting_time' => $time_targets['timing_start'], 'ending_time' => $time_targets['timing_end'], 'visibility' => $vis));
     if ($time_targets['changeable'] or 1) {
         $this->xmlElement('Suggestion', array('starting_time' => $time_targets['suggestion_start'], 'ending_time' => $time_targets['suggestion_end'], 'changeable' => $time_targets['changeable'], 'earliest_start' => $time_targets['earliest_start'], 'latest_end' => $time_targets['latest_end']));
     } else {
         $this->xmlElement('Suggestion', array('starting_time' => $time_targets['suggestion_start'], 'ending_time' => $time_targets['suggestion_end'], 'changeable' => $time_targets['changeable']));
     }
     $this->xmlEndTag('TimeTarget');
     return;
 }
 /**
  * Is activated?
  *
  * @see ilStartupGUI
  * @param int $a_obj_id
  * @param bool &$a_visible_flag
  * @param bool $a_mind_member_view
  * @return boolean
  */
 public static function _isActivated($a_obj_id, &$a_visible_flag = null, $a_mind_member_view = true)
 {
     // #7669
     if ($a_mind_member_view) {
         include_once './Services/Container/classes/class.ilMemberViewSettings.php';
         if (ilMemberViewSettings::getInstance()->isActive()) {
             $a_visible_flag = true;
             return true;
         }
     }
     // offline?
     if (!self::_isOnline($a_obj_id)) {
         $a_visible_flag = false;
         return false;
     }
     $ref_id = ilObject::_getAllReferences($a_obj_id);
     $ref_id = array_pop($ref_id);
     $a_visible_flag = true;
     include_once './Services/Object/classes/class.ilObjectActivation.php';
     $item = ilObjectActivation::getItem($ref_id);
     switch ($item['timing_type']) {
         case ilObjectActivation::TIMINGS_ACTIVATION:
             if (time() < $item['timing_start'] or time() > $item['timing_end']) {
                 $a_visible_flag = $item['visible'];
                 return false;
             }
             // fallthrough
         // fallthrough
         default:
             return true;
     }
 }
 /**
  * check for course activation 
  * 
  */
 function doActivationCheck($a_permission, $a_cmd, $a_ref_id, $a_user_id, $a_all = false)
 {
     global $ilBench, $ilUser;
     $ilBench->start("AccessControl", "3150_checkAccess_check_course_activation");
     $cache_perm = $a_permission == "visible" ? "visible" : "other";
     //echo "<br>doActivationCheck-$cache_perm-$a_ref_id-$a_user_id-".$ilObjDataCache->lookupType($ilObjDataCache->lookupObjId($a_ref_id));
     if (isset($this->ac_cache[$cache_perm][$a_ref_id][$a_user_id])) {
         $ilBench->stop("AccessControl", "3150_checkAccess_check_course_activation");
         return $this->ac_cache[$cache_perm][$a_ref_id][$a_user_id];
     }
     // nothings needs to be done if current permission is write permission
     if ($a_permission == 'write') {
         $ilBench->stop("AccessControl", "3150_checkAccess_check_course_activation");
         return true;
     }
     // #10852 - member view check
     if ($a_user_id == $ilUser->getId()) {
         // #10905 - activate parent container ONLY
         include_once './Services/Container/classes/class.ilMemberViewSettings.php';
         $memview = ilMemberViewSettings::getInstance();
         if ($memview->isActiveForRefId($a_ref_id) && $memview->getContainer() == $a_ref_id) {
             return true;
         }
     }
     include_once 'Services/Object/classes/class.ilObjectActivation.php';
     $item_data = ilObjectActivation::getItem($a_ref_id);
     // if activation isn't enabled
     if ($item_data === NULL || $item_data['timing_type'] != ilObjectActivation::TIMINGS_ACTIVATION) {
         $this->ac_cache[$cache_perm][$a_ref_id][$a_user_id] = true;
         $ilBench->stop("AccessControl", "3150_checkAccess_check_course_activation");
         return true;
     }
     // if within activation time
     if (time() >= $item_data['timing_start'] and time() <= $item_data['timing_end']) {
         $this->ac_cache[$cache_perm][$a_ref_id][$a_user_id] = true;
         $ilBench->stop("AccessControl", "3150_checkAccess_check_course_activation");
         return true;
     }
     // if user has write permission
     if ($this->checkAccessOfUser($a_user_id, "write", "", $a_ref_id)) {
         $this->ac_cache[$cache_perm][$a_ref_id][$a_user_id] = true;
         $ilBench->stop("AccessControl", "3150_checkAccess_check_course_activation");
         return true;
     }
     // if current permission is visible and visible is set in activation
     if ($a_permission == 'visible' and $item_data['visible']) {
         $this->ac_cache[$cache_perm][$a_ref_id][$a_user_id] = true;
         $ilBench->stop("AccessControl", "3150_checkAccess_check_course_activation");
         return true;
     }
     // no access
     $this->ac_cache[$cache_perm][$a_ref_id][$a_user_id] = false;
     $ilBench->stop("AccessControl", "3150_checkAccess_check_course_activation");
     return false;
 }
 private function updateReferences($a_object_data)
 {
     global $tree, $ilLog;
     if (!isset($a_object_data['references']) or !count($a_object_data['references'])) {
         return true;
     }
     foreach ($a_object_data['references'] as $ref_data) {
         if (isset($ref_data['time_target'])) {
             include_once './webservice/soap/classes/class.ilObjectXMLWriter.php';
             include_once './Services/Object/classes/class.ilObjectActivation.php';
             $old = ilObjectActivation::getItem($ref_data['ref_id']);
             $items = new ilObjectActivation();
             $items->toggleChangeable(isset($ref_data['time_target']['changeable']) ? $ref_data['time_target']['changeable'] : $old['changeable']);
             $items->setTimingStart(isset($ref_data['time_target']['starting_time']) ? $ref_data['time_target']['starting_time'] : $old['timing_start']);
             $items->setTimingEnd(isset($ref_data['time_target']['ending_time']) ? $ref_data['time_target']['ending_time'] : $old['timing_end']);
             $items->toggleVisible(isset($ref_data['time_target']['timing_visibility']) ? $ref_data['time_target']['timing_visibility'] : $old['visible']);
             $items->setSuggestionStart(isset($ref_data['time_target']['suggestion_start']) ? $ref_data['time_target']['suggestion_start'] : $old['suggestion_start']);
             $items->setSuggestionEnd(isset($ref_data['time_target']['suggestion_end']) ? $ref_data['time_target']['suggestion_end'] : $old['suggestion_end']);
             $items->setEarliestStart(isset($ref_data['time_target']['earliest_start']) ? $ref_data['time_target']['earliest_start'] : $old['earliest_start']);
             $items->setLatestEnd(isset($ref_data['time_target']['latest_end']) ? $ref_data['time_target']['latest_end'] : $old['latest_end']);
             switch ($ref_data['time_target']['timing_type']) {
                 case ilObjectXMLWriter::TIMING_DEACTIVATED:
                     $ilLog->write(__METHOD__ . ilObjectActivation::TIMINGS_DEACTIVATED . ' ' . $ref_data['time_target']['timing_type']);
                     $items->setTimingType(ilObjectActivation::TIMINGS_DEACTIVATED);
                     break;
                 case ilObjectXMLWriter::TIMING_TEMPORARILY_AVAILABLE:
                     $ilLog->write(__METHOD__ . ilObjectActivation::TIMINGS_ACTIVATION . ' ' . $ref_data['time_target']['timing_type']);
                     $items->setTimingType(ilObjectActivation::TIMINGS_ACTIVATION);
                     break;
                 case ilObjectXMLWriter::TIMING_PRESETTING:
                     $ilLog->write(__METHOD__ . ilObjectActivation::TIMINGS_PRESETTING . ' ' . $ref_data['time_target']['timing_type']);
                     $items->setTimingType(ilObjectActivation::TIMINGS_PRESETTING);
                     break;
             }
             $items->update($ref_data['ref_id']);
         }
     }
     return true;
 }
 /**
 * Loads a survey object from a database
 *
 * @access public
 */
 function loadFromDb()
 {
     global $ilDB;
     $result = $ilDB->queryF("SELECT * FROM svy_svy WHERE obj_fi = %s", array('integer'), array($this->getId()));
     if ($result->numRows() == 1) {
         $data = $ilDB->fetchAssoc($result);
         $this->setSurveyId($data["survey_id"]);
         $this->setAuthor($data["author"]);
         include_once "./Services/RTE/classes/class.ilRTE.php";
         $this->setIntroduction(ilRTE::_replaceMediaObjectImageSrc($data["introduction"], 1));
         if (strcmp($data["outro"], "survey_finished") == 0) {
             $this->setOutro($this->lng->txt("survey_finished"));
         } else {
             $this->setOutro(ilRTE::_replaceMediaObjectImageSrc($data["outro"], 1));
         }
         $this->setInvitation($data["invitation"]);
         $this->setInvitationMode($data["invitation_mode"]);
         $this->setShowQuestionTitles($data["show_question_titles"]);
         $this->setStartDate($data["startdate"]);
         $this->setEndDate($data["enddate"]);
         $this->setAnonymize($data["anonymize"]);
         $this->setEvaluationAccess($data["evaluation_access"]);
         $this->loadQuestionsFromDb();
         $this->setStatus($data["status"]);
         $this->setMailNotification($data['mailnotification']);
         $this->setMailAddresses($data['mailaddresses']);
         $this->setMailParticipantData($data['mailparticipantdata']);
         $this->setTemplate($data['template_id']);
         $this->setPoolUsage($data['pool_usage']);
     }
     // moved activation to ilObjectActivation
     if ($this->ref_id) {
         include_once "./Services/Object/classes/class.ilObjectActivation.php";
         $activation = ilObjectActivation::getItem($this->ref_id);
         switch ($activation["timing_type"]) {
             case ilObjectActivation::TIMINGS_ACTIVATION:
                 $this->setActivationLimited(true);
                 $this->setActivationStartDate($activation["timing_start"]);
                 $this->setActivationEndDate($activation["timing_end"]);
                 $this->setActivationVisibility($activation["visible"]);
                 break;
             default:
                 $this->setActivationLimited(false);
                 break;
         }
     }
 }
 protected function doRead()
 {
     global $ilDB;
     $set = $ilDB->query("SELECT * FROM il_poll" . " WHERE id = " . $ilDB->quote($this->getId(), "integer"));
     $row = $ilDB->fetchAssoc($set);
     $this->setQuestion($row["question"]);
     $this->setImage($row["image"]);
     $this->setOnline($row["online_status"]);
     $this->setViewResults($row["view_results"]);
     $this->setVotingPeriod($row["period"]);
     $this->setVotingPeriodBegin($row["period_begin"]);
     $this->setVotingPeriodEnd($row["period_end"]);
     if ($this->ref_id) {
         $activation = ilObjectActivation::getItem($this->ref_id);
         $this->setAccessType($activation["timing_type"]);
         $this->setAccessBegin($activation["timing_start"]);
         $this->setAccessEnd($activation["timing_end"]);
         $this->setAccessVisibility($activation["visible"]);
     }
 }
 function updateTimings()
 {
     include_once 'Services/Object/classes/class.ilObjectActivation.php';
     global $ilAccess, $ilErr;
     if (!$ilAccess->checkAccess('write', '', $this->container_obj->getRefId())) {
         $ilErr->raiseError($this->lng->txt('msg_no_perm_write'), $ilErr->WARNING);
     }
     $this->failed = array();
     // Validate
     $_POST['item'] = is_array($_POST['item']) ? $_POST['item'] : array();
     $all_items = array();
     foreach ($_POST['item'] as $ref_id => $data) {
         $item_obj = new ilObjectActivation();
         $old_data = ilObjectActivation::getItem($ref_id);
         $item_obj->setTimingType($_POST['item_active'][$ref_id]['active'] ? ilObjectActivation::TIMINGS_PRESETTING : ilObjectActivation::TIMINGS_DEACTIVATED);
         $item_obj->setTimingStart($old_data['timing_start']);
         $item_obj->setTimingEnd($old_data['timing_end']);
         $item_obj->setSuggestionStart($this->__toUnix($data["sug_start"]));
         // add duration
         $data['sug_start']['d'] += abs($data['duration_a']);
         $item_obj->setSuggestionEnd($this->__toUnix($data['sug_start'], array('h' => 23, 'm' => 55)));
         $item_obj->setEarliestStart(time());
         $item_obj->setLatestEnd($this->__toUnix($data['lim_end'], array('h' => 23, 'm' => 55)));
         $item_obj->toggleVisible($old_data['visible']);
         $item_obj->toggleChangeable($_POST['item_change'][$ref_id]['change']);
         if (!$item_obj->validateActivation()) {
             $this->failed[$ref_id] = $old_data['title'];
         }
         $all_items[$ref_id] =& $item_obj;
         unset($item_obj);
     }
     if (count($this->failed)) {
         $message = $this->lng->txt('crs_timings_update_error');
         $message .= "<br />" . $this->lng->txt('crs_materials') . ': ';
         $message .= implode(',', $this->failed);
         ilUtil::sendFailure($message);
         $this->editTimings();
         return false;
     }
     // No do update
     foreach ($all_items as $ref_id => $item_obj_new) {
         $item_obj_new->update($ref_id);
     }
     ilUtil::sendSuccess($this->lng->txt('settings_saved'));
     $this->editTimings();
     return false;
 }
Beispiel #16
0
 function __readSettings()
 {
     global $ilDB;
     $query = "SELECT * FROM crs_settings WHERE obj_id = " . $ilDB->quote($this->getId(), 'integer') . "";
     $res = $ilDB->query($query);
     while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) {
         $this->setSyllabus($row->syllabus);
         $this->setContactName($row->contact_name);
         $this->setContactResponsibility($row->contact_responsibility);
         $this->setContactPhone($row->contact_phone);
         $this->setContactEmail($row->contact_email);
         $this->setContactConsultation($row->contact_consultation);
         $this->setOfflineStatus(!(bool) $row->activation_type);
         // see below
         $this->setSubscriptionLimitationType($row->sub_limitation_type);
         $this->setSubscriptionStart($row->sub_start);
         $this->setSubscriptionEnd($row->sub_end);
         $this->setSubscriptionType($row->sub_type);
         $this->setSubscriptionPassword($row->sub_password);
         $this->enableSubscriptionMembershipLimitation($row->sub_mem_limit);
         $this->setSubscriptionMaxMembers($row->sub_max_members);
         $this->setSubscriptionNotify($row->sub_notify);
         $this->setViewMode($row->view_mode);
         $this->setArchiveStart($row->archive_start);
         $this->setArchiveEnd($row->archive_end);
         $this->setArchiveType($row->archive_type);
         $this->setAboStatus($row->abo);
         $this->enableWaitingList($row->waiting_list);
         $this->setImportantInformation($row->important);
         $this->setShowMembers($row->show_members);
         $this->setLatitude($row->latitude);
         $this->setLongitude($row->longitude);
         $this->setLocationZoom($row->location_zoom);
         $this->setEnableCourseMap($row->enable_course_map);
         $this->enableSessionLimit($row->session_limit);
         $this->setNumberOfPreviousSessions($row->session_prev);
         $this->setNumberOfNextSessions($row->session_next);
         $this->enableRegistrationAccessCode($row->reg_ac_enabled);
         $this->setRegistrationAccessCode($row->reg_ac);
         $this->setAutoNotification($row->auto_notification == 1 ? true : false);
         $this->setStatusDetermination((int) $row->status_dt);
         $this->setMailToMembersType($row->mail_members_type);
     }
     // moved activation to ilObjectActivation
     if ($this->ref_id) {
         include_once "./Services/Object/classes/class.ilObjectActivation.php";
         $activation = ilObjectActivation::getItem($this->ref_id);
         switch ($activation["timing_type"]) {
             case ilObjectActivation::TIMINGS_ACTIVATION:
                 $this->setActivationType(IL_CRS_ACTIVATION_LIMITED);
                 $this->setActivationStart($activation["timing_start"]);
                 $this->setActivationEnd($activation["timing_end"]);
                 $this->setActivationVisibility($activation["visible"]);
                 break;
             default:
                 $this->setActivationType(IL_CRS_ACTIVATION_UNLIMITED);
                 break;
         }
     } else {
         // #13176 - there should always be default
         $this->setActivationType(IL_CRS_ACTIVATION_UNLIMITED);
     }
     return true;
 }
Beispiel #17
0
 protected function doRead()
 {
     global $ilDB;
     $set = $ilDB->query("SELECT * FROM il_poll" . " WHERE id = " . $ilDB->quote($this->getId(), "integer"));
     $row = $ilDB->fetchAssoc($set);
     $this->setQuestion($row["question"]);
     $this->setImage($row["image"]);
     $this->setOnline($row["online_status"]);
     $this->setViewResults($row["view_results"]);
     $this->setVotingPeriod($row["period"]);
     $this->setVotingPeriodBegin($row["period_begin"]);
     $this->setVotingPeriodEnd($row["period_end"]);
     $this->setMaxNumberOfAnswers($row["max_answers"]);
     $this->setSortResultByVotes($row["result_sort"]);
     $this->setNonAnonymous($row["non_anon"]);
     $this->setShowResultsAs($row["show_results_as"]);
     // #14661
     include_once "./Services/Notes/classes/class.ilNote.php";
     $this->setShowComments(ilNote::commentsActivated($this->getId(), 0, $this->getType()));
     if ($this->ref_id) {
         $activation = ilObjectActivation::getItem($this->ref_id);
         $this->setAccessType($activation["timing_type"]);
         $this->setAccessBegin($activation["timing_start"]);
         $this->setAccessEnd($activation["timing_end"]);
         $this->setAccessVisibility($activation["visible"]);
     }
 }