За последние 24 часа нас посетили 17423 программиста и 1601 робот. Сейчас ищет 941 программист ...

Рейтинг с обработкой ширины изображения для CSS

Тема в разделе "Решения, алгоритмы", создана пользователем ekip, 15 окт 2010.

  1. ekip

    ekip Активный пользователь

    С нами с:
    11 авг 2009
    Сообщения:
    118
    Симпатии:
    0
    Собственно, хотелось сделать красивый рейтинг для новостного сайта
    использовать что то готовое не хотелось, решил поколдовать
    и придумать что то свое, то что ниже привел это обработка
    ширины изображения в виде полоски, для отображения
    полоски рейтинга используется 3 изображения:

    rating_plus.gif - если количество положительных голосов больше

    rating_minus.gif - если количество отрицательных голосов больше

    rating_default.gif - если никто не голосовал

    PHP:
    1. <?php
    2. $vote_plus = $arr['vote_plus']; // полученное значение из базы
    3. $vote_minus = $arr['vote_minus']; // полученное значение из базы
    4. $image_width = 89; // ширина изображения
    5. $vote_result = $vote_plus - $vote_minus; // разница значений
    6. $vote_sum = $vote_plus + $vote_minus; // общее количество голосов
    7. if ($vote_sum == 0) // проверка на 0
    8. $vot_sum_fix = 1;
    9. else
    10. $vot_sum_fix = $vote_sum;
    11. $vote_one_procent = $vot_sum_fix / 100; // вычисляем 1 процент от голосов
    12. $vote_plus_procent = $vote_plus / $vote_one_procent; // вычисляем процент за положительный голос
    13. $vote_minus_procent = $vote_minus / $vote_one_procent; // вычисляем процент за отрицательный голос
    14. $image_one_procent = $image_width / 100; // вычисляем 1 процент от ширины
    15. $image_vote_plus = $image_one_procent * $vote_plus_procent; // вычисляем ширину изображения за положительный голос
    16. $image_vote_minus = $image_one_procent * $vote_minus_procent; // вычисляем ширину изображения за отрицательный голос
    17. echo $vote_result; // разница значений
    18. if ($vote_plus > $vote_minus) { // проверка
    19. $image_vote_plus_result = $image_vote_plus - $image_vote_minus; //вычисляем ширину с корректировкой и используем  изображение rating_plus.gif
    20. echo '<div id="rat" style="background: #276b9e url(/tamplier/blue/images/rating_plus.gif) top left  no-repeat; width: '.$image_vote_plus_result.'px; height: 11px; display: block;"></div>';
    21. }
    22. elseif ($vote_plus < $vote_minus) { // проверка
    23. $image_vote_minus_result = $image_vote_minus - $image_vote_plus; //вычисляем ширину с корректировкой и используем  изображение rating_minus.gif
    24. echo '<div id="rating" style="background: #276b9e url(/tamplier/blue/images/rating_minus.gif) top left  no-repeat; width: '.$image_vote_minus_result.'px; height: 11px; display: block;"></div>';
    25. }
    26. else { // проверка если у нас нет не одного голоса используем  изображение rating_minus.gif
    27. echo '
    28. <div id="rating" style="background: #276b9e url(/tamplier/blue/images/rating_default.gif) top left  no-repeat; width: '.$image_width.'px; height: 11px; display: block;"></div>';
    29. }
    30. ?>


    [​IMG]