function amp_badge_rating($options) { $queryd_item = isset($_GET['article_id']) && $_GET['article_id'] ? intval($_GET['article_id']) : 0; if ($queryd_item) { $article = new Article(AMP_Registry::getDbcon(), $queryd_item); $display = new Rating_Public_Display($article); return $display->execute(); } $rating = isset($_POST['rating']) && $_POST['rating'] ? intval($_POST['rating']) : 1; $posted_item = isset($_POST['article_id']) && $_POST['article_id'] ? intval($_POST['article_id']) : 0; $article = new Article(AMP_Registry::getDbcon(), $posted_item); $display = new Rating_Public_Display($article); if ($rating && $posted_item && AMP_SYSTEM_UNIQUE_VISITOR_ID && is_numeric($rating) && is_numeric($posted_item)) { //actually record the rating somewhere.... ArticleRating::create($posted_item, $rating); } return $display->execute(); }
function update($item_id, $rating_value) { if (!AMP_SYSTEM_UNIQUE_VISITOR_ID) { return false; } $session = AMP_SYSTEM_UNIQUE_VISITOR_ID; $articles_rated = AMP_lookup('article_ids_rated_by_session', $session); if (!isset($articles_rated[$item_id])) { return ArticleRating::create($item_id, $rating_value); } $rating_id = $articles_rated[$item_id]; $rating = new Rating(AMP_Registry::getDbcon(), $rating_id); if (!$rating->hasData()) { return false; } $rating->mergeData(array('rating' => $rating_value, 'updated_at' => date('Y-m-d h:i:s'))); $result = $rating->save(); AMP_lookup_clear_cached('article_ids_rated_by_session', $session); AMP_lookup_clear_cached('article_ratings_by_session', $session); AMP_lookup_clear_cached('article_ratings'); AMP_lookup_clear_cached('article_ratings_last_week'); AMP_lookup_clear_cached('article_ratings_last_month'); return $result; }