Вход Регистрация
Файл: upload/core/functions/rating.php
Строк: 124
<?php

function _render_stars($avg)
{
    if (
$avg <= 0) {
        return 
str_repeat('<span class="half-star"><i class="fas fa-star"></i></span>'5);
    }

    
$wholeStars floor($avg);
    
$hasHalfStar fmod($avg1) >= 0.5;

    
$starsHtml '';

    for (
$i 0$i 5$i++) {
        if (
$i $wholeStars) {
            
$starsHtml .= '<span class="full-star"><i class="fas fa-star"></i></span>';
        } elseif (
$i == $wholeStars && $hasHalfStar) {
            
$starsHtml .= '<span class="half-star"><i class="fas fa-star"></i></span>';
        } else {
            
$starsHtml .= '<span class="half-star"><i class="fas fa-star"></i></span>';
        }
    }

    return 
$starsHtml;
}

function 
_get_active_ratings($sql$params)
{
    
$q dbquery($sql$params);
    
$ratings = [];

    while (
$rt FetchAssoc($q)) {
        
$ratings[] = $rt['rating'] ?? 0;
    }

    return 
$ratings;
}

function 
format_rating($rating)
{
    
// 0 должен быть просто 0
    
if ($rating == 0) {
        return 
"0";
    }

    
$rating round($rating1);

    
// Если число целое — добавляем .0
    
if (floor($rating) == $rating) {
        return 
$rating '.0';
    }

    return 
$rating;
}

function 
rating_num_work($id)
{
    
$ratings _get_active_ratings(
        
"SELECT rating FROM rating WHERE k_work = ?",
        [
$id]
    );

    if (empty(
$ratings)) return "0";

    
$avg array_sum($ratings) / count($ratings);

    return 
format_rating($avg);
}

function 
rating_num_worker($id)
{
    
$ratings _get_active_ratings(
        
"SELECT rating FROM rating WHERE worker = ?",
        [
$id]
    );

    if (empty(
$ratings)) return "0";

    
$avg array_sum($ratings) / count($ratings);

    return 
format_rating($avg);
}

function 
rating_num_star_work($id)
{
    
$ratings _get_active_ratings(
        
"SELECT rating FROM rating WHERE rating = ?",
        [
$id]
    );

    if (empty(
$ratings)) {
        return 
_render_stars(0);
    }

    
$avg array_sum($ratings) / count($ratings);

    return 
_render_stars(format_rating($avg));
}

function 
render_stars_by_value($rating)
{
    return 
_render_stars($rating);
}

function 
rating_star_work($id)
{
    
$ratings _get_active_ratings(
        
"SELECT rating FROM rating WHERE k_work = ?",
        [
$id]
    );

    if (empty(
$ratings)) return _render_stars(0);

    
$avg round(array_sum($ratings) / count($ratings), 1);

    return 
_render_stars($avg);
}

function 
rating_star_worker($id)
{
    
$ratings _get_active_ratings(
        
"SELECT rating FROM rating WHERE worker = ?",
        [
$id]
    );

    if (empty(
$ratings)) return _render_stars(0);

    
$avg round(array_sum($ratings) / count($ratings), 1);

    return 
_render_stars($avg);
}
?>
Онлайн: 0
Реклама