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