$id = request_var('id', 0); $value = request_var('value', -1.0); switch ($type) { case 'author': $object = new titania_author(); $object->load($id); $object->get_rating(); $redirect = $object->get_url(); if (!$object || !$object->author_id) { trigger_error('AUTHOR_NOT_FOUND'); } break; case 'contrib': $object = new titania_contribution(); $object->load($id); $object->get_rating(); $redirect = $object->get_url(); if (!$object) { trigger_error('CONTRIB_NOT_FOUND'); } break; default: trigger_error('BAD_RATING'); break; } $result = $value == -1 ? $object->rating->delete_rating() : $object->rating->add_rating($value); if ($result) { redirect($redirect); } else { trigger_error('BAD_RATING'); }