Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 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;
 }