/** * Adds a condition. */ public function add_action() { $condition = new UserFilter(); $fields = Request::getArray('field'); $compareOps = Request::getArray('compare_operator'); $values = Request::getArray('value'); $data = array(); for ($i = 0; $i < sizeof($fields); $i++) { $current = $fields[$i]; if ($this->conditionFields[$current]) { list($fieldType, $param) = explode('_', $current); $field = new $fieldType($param); $field->setCompareOperator($compareOps[$i]); $field->setValue($values[$i]); $condition->addField($field); $condition->show_user_count = true; } } $this->condition = $condition; }
function buildCourseset($course, $grouped) { $db = DBManager::get(); $cs = new CourseSet(); $rule = new ParticipantRestrictedAdmission(); // Loszeitpunkt übernehmen. $rule->setDistributionTime($course['admission_type'] == 1 ? $course['admission_endtime'] : 0); $cs->addAdmissionRule($rule); // Beschränkung 1 aus n, falls erforderlich if ($grouped) { $rule = new LimitedAdmission(); $rule->setMaxNumber(1); $cs->addAdmissionRule($rule); } // Falls Anmeldezeitraum eingestellt, diesen übernehmen. if ($course['admission_starttime'] != -1 || $course['admission_endtime_sem'] != -1) { $rule = new TimedAdmission(); if ($course['admission_starttime'] != -1) { $rule->setStartTime($course['admission_starttime']); } if ($course['admission_endtime_sem'] != -1) { $rule->setEndTime($course['admission_endtime_sem']); } $cs->addAdmissionRule($rule); } // Studiengänge eintragen $stmt = $db->prepare('SELECT studiengang_id FROM admission_seminar_studiengang WHERE seminar_id = ?'); $stmt->execute(array($course['seminar_id'])); $subjects = $stmt->fetchAll(PDO::FETCH_COLUMN); if (!in_array('all', $subjects) && $subjects) { $rule = new ConditionalAdmission(); foreach ($subjects as $subject) { $condition = new UserFilter(); $subject_field = new SubjectCondition(); $subject_field->setCompareOperator('='); $subject_field->setValue($subject); $condition->addField($subject_field); $rule->addCondition($condition); } $cs->addAdmissionRule($rule); } return $cs; }