/**
  * Helper function for storing data to DB.
  */
 public function store()
 {
     // Store rule data.
     $stmt = DBManager::get()->prepare("INSERT INTO `conditionaladmissions`\n            (`rule_id`, `message`, `start_time`, `end_time`, `mkdate`, `chdate`)\n            VALUES (?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE\n            `message`=VALUES(`message`),\n            `start_time`=VALUES(`start_time`),\n            `end_time`=VALUES(`end_time`),\n            `chdate`=VALUES(`chdate`)");
     $stmt->execute(array($this->id, $this->message, (int) $this->startTime, (int) $this->endTime, time(), time()));
     // Delete removed conditions from DB.
     $stmt = DBManager::get()->prepare("SELECT `filter_id` FROM\n            `admission_condition` WHERE `rule_id`=? AND `filter_id` NOT IN ('" . implode("', '", array_keys($this->conditions)) . "')");
     $stmt->execute(array($this->id));
     foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $entry) {
         $current = new UserFilter($entry['filter_id']);
         $current->delete();
     }
     DBManager::get()->exec("DELETE FROM `admission_condition`\n            WHERE `rule_id`='" . $this->id . "' AND `filter_id` NOT IN ('" . implode("', '", array_keys($this->conditions)) . "')");
     // Store all conditions.
     $queries = array();
     $parameters = array();
     foreach ($this->conditions as $condition) {
         // Store each condition...
         $condition->store();
         $queries[] = "(?, ?, ?)";
         $parameters[] = $this->id;
         $parameters[] = $condition->getId();
         $parameters[] = time();
     }
     // Store all assignments between rule and condition.
     $stmt = DBManager::get()->prepare("INSERT INTO `admission_condition`\n            (`rule_id`, `filter_id`, `mkdate`)\n            VALUES " . implode(",", $queries) . " ON DUPLICATE KEY UPDATE\n            `filter_id`=VALUES(`filter_id`)");
     $stmt->execute($parameters);
     return $this;
 }
Example #2
0
 /**
  * Deletes the given UserFilter object.
  *
  * @param String $conditionId the UserFilter to delete.
  */
 public function delete_action($conditionId)
 {
     $condition = new UserFilter($conditionId);
     $condition->delete();
     $this->render_nothing();
 }