private static function register_notation(Notation $notation) { if (self::$user->check_level(User::MEMBER_LEVEL)) { $note_is_valid = $notation->get_note() >= 0 && $notation->get_note() <= $notation->get_notation_scale() ? true : false; $member_already_notation = self::$db_querier->count(DB_TABLE_NOTE, 'WHERE user_id=:user_id AND module_name=:module_name AND id_in_module=:id_in_module', array('module_name' => $notation->get_module_name(), 'id_in_module' => $notation->get_id_in_module(), 'user_id' => $notation->get_user_id())); if (!$member_already_notation && $note_is_valid) { self::$db_querier->insert(DB_TABLE_NOTE, array('module_name' => $notation->get_module_name(), 'id_in_module' => $notation->get_id_in_module(), 'user_id' => $notation->get_user_id(), 'note' => $notation->get_note())); $condition = 'WHERE module_name=:module_name AND id_in_module=:id_in_module'; $parameters = array('module_name' => $notation->get_module_name(), 'id_in_module' => $notation->get_id_in_module()); $nbr_notes = self::$db_querier->count(DB_TABLE_AVERAGE_NOTES, $condition, $parameters); if ($nbr_notes == 0) { self::$db_querier->insert(DB_TABLE_AVERAGE_NOTES, array('module_name' => $notation->get_module_name(), 'id_in_module' => $notation->get_id_in_module(), 'average_notes' => self::calculates_average_notes($notation), 'number_notes' => 1)); } else { self::$db_querier->update(DB_TABLE_AVERAGE_NOTES, array('average_notes' => self::calculates_average_notes($notation), 'number_notes' => self::get_number_notes($notation) + 1), $condition, $parameters); } } } else { DispatchManager::redirect(PHPBoostErrors::user_not_authorized()); } }