/** * 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); } }
/** * 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; }
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; }
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"]); } }