function rating($rating_type, $type_id, $scale = 5)
{
    require_once 'api/Rating/Rating.php';
    require_once 'api/PA_Rating/PA_Rating.php';
    $return = array('overall' => null, 'new' => null);
    $Rating = new Rating();
    $Rating->set_rating_type($rating_type);
    $Rating->set_type_id((int) $type_id);
    $details = $Rating->get_rating();
    if (!empty($details)) {
        foreach ($details as $entity) {
            $stars_count = round($entity->total_rating / $entity->total_max_rating * $scale);
            $faded_stars_count = $scale - $stars_count;
            $existing_rating = null;
            for ($cnt = 0; $cnt < $stars_count; ++$cnt) {
                $return['overall'] .= '<img src="' . PA::$theme_url . '/images/star.gif" alt="star" />';
            }
            for ($cnt = 0; $cnt < $faded_stars_count; ++$cnt) {
                $return['overall'] .= '<img src="' . PA::$theme_url . '/images/starfaded.gif" alt="star" />';
            }
        }
    } else {
        for ($cnt = 0; $cnt < $scale; ++$cnt) {
            $return['overall'] .= '<img src="' . PA::$theme_url . '/images/starfaded.gif" alt="star" />';
        }
    }
    $user_rating = 0;
    if (!empty(PA::$login_uid)) {
        $params = array('rating_type' => $rating_type, 'user_id' => PA::$login_uid, 'type_id' => $type_id);
        $user_rating_details = PA_Rating::get(null, $params);
        // FIXME: this might not be set
        $user_rating = @$user_rating_details[0]->rating;
    }
    for ($counter = 1; $counter <= $user_rating; ++$counter) {
        $return['new'] .= '<img class="user_star';
        if ($counter == $user_rating) {
            $return['new'] .= ' current_rating';
        }
        $return['new'] .= '" src="' . PA::$theme_url . '/images/star.gif" alt="star" id="star_' . $type_id . '_' . $counter . '" onmouseover="javascript:toggle_stars.mouseover(' . $counter . ', ' . $type_id . ')" onmouseout="javascript:toggle_stars.mouseout(' . $counter . ', ' . $type_id . ')" onclick="javascript:toggle_stars.click(' . $counter . ', ' . $type_id . ', \'' . $rating_type . '\', ' . $scale . ')" />';
    }
    for (; $counter <= $scale; ++$counter) {
        $return['new'] .= '<img class="user_star" src="' . PA::$theme_url . '/images/starfaded.gif" alt="star" id="star_' . $type_id . '_' . $counter . '" onmouseover="javascript:toggle_stars.mouseover(' . $counter . ', ' . $type_id . ')" onmouseout="javascript:toggle_stars.mouseout(' . $counter . ', ' . $type_id . ')" onclick="javascript:toggle_stars.click(' . $counter . ', ' . $type_id . ', \'' . $rating_type . '\', ' . $scale . ')" />';
    }
    return $return;
}
示例#2
0
 function get_ratings($rating_type, $type_id)
 {
     $scale = 5;
     $return = array('overall' => null, 'new' => null);
     $this->rating_cnt = 0;
     $this->avg_rating = 0;
     $Rating = new Rating();
     $Rating->set_rating_type($rating_type);
     $Rating->set_type_id($type_id);
     $this->details = $details = $Rating->get_rating();
     if (!empty($details)) {
         foreach ($details as $entity) {
             $avg_rating = $entity->total_rating / $entity->total_max_rating * $scale;
             $stars_count = round($avg_rating);
             $this->rating_cnt = $entity->ratings;
             $this->avg_rating = round($avg_rating, 1);
             $faded_stars_count = $scale - $stars_count;
             for ($cnt = 0; $cnt < $stars_count; ++$cnt) {
                 $return['overall'] .= '<div class="star"></div>';
             }
             for ($cnt = 0; $cnt < $faded_stars_count; ++$cnt) {
                 $return['overall'] .= '<div class="starfaded"></div>';
             }
         }
     } else {
         for ($cnt = 0; $cnt < $scale; ++$cnt) {
             $return['overall'] .= '<div class="starfaded"></div>';
         }
     }
     if (!empty(PA::$login_user->user_id)) {
         $params = array('rating_type' => $rating_type, 'user_id' => PA::$login_user->user_id, 'type_id' => $type_id);
         $user_rating_details = PA_Rating::get($params);
     }
     $user_rating = @$user_rating_details[0]->rating ? $user_rating_details[0]->rating : 0;
     for ($counter = 1; $counter <= $user_rating; ++$counter) {
         $return['new'] .= '<div class="user_star';
         if ($counter == $user_rating) {
             $return['new'] .= ' current_rating';
         }
         $return['new'] .= ' star" id="star_' . $type_id . '_' . $counter . '" onmouseover="javascript:toggle_stars.mouseover(' . $counter . ', \'' . $type_id . '\')" onmouseout="javascript:toggle_stars.mouseout(' . $counter . ', \'' . $type_id . '\')" onclick="javascript:toggle_stars.click(' . $counter . ', \'' . $type_id . '\', \'' . $rating_type . '\', ' . $scale . ')" ></div>';
     }
     for (; $counter <= $scale; ++$counter) {
         $return['new'] .= '<div class="user_star starfaded" id="star_' . $type_id . '_' . $counter . '" onmouseover="javascript:toggle_stars.mouseover(' . $counter . ', \'' . $type_id . '\')" onmouseout="javascript:toggle_stars.mouseout(' . $counter . ', \'' . $type_id . '\')" onclick="javascript:toggle_stars.click(' . $counter . ', \'' . $type_id . '\', \'' . $rating_type . '\', ' . $scale . ')" ></div>';
     }
     return $return;
 }