Повышаем точность стандартного рейтинга для DLE

Повышаем точность стандартного рейтинга

По умолчанию в DLE рейтинг выводит только целое число рейтинга от 1 до 5.
Повышаем точность стандартного рейтинга

Данный хак позволяет вывести рейтинг с точностью до 95%
Повышаем точность стандартного рейтинга

Открыть файл /engine/modules/functions.php
Найти 2 совпадения:
    if( $rating ) $rating = round( ($rating / $vote_num), 0 );
    else $rating = 0;
    $rating = $rating * 17;

Заменить на:
    if( $rating ) $rating = round( ($rating / $vote_num), 2 );
    else $rating = 0;
    $rating = floor($rating * 17);
Комментарии: (9)
  1. foto
    Клиент 20 августа 2016 21:17 #
    Подскажите, пожалуйста, как подобное реализовать в dle 10.6? Там код в functions.php отличается от представленного здесь.
    0
    1. foto
      Администратор 21 августа 2016 11:18 #
      Строку
      if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );

      Заменить на
      if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 2 );


      И строку
      $rating = $rating * 20;

      Заменить на
      $rating = floor( $rating * 20 );


      Не проверял, но по идее должно работать.
      +1
      1. foto
        Клиент 21 августа 2016 12:22 #
        Заменил, попробовал выставить 2 оценки (4 и 5), но 4,5 так и не показывает. По-прежнему округляет до целых.
        0
        1. foto
          Администратор 21 августа 2016 12:43 #
          Проверил у себя. Все нормально
          +1
          1. foto
            Клиент 21 августа 2016 13:45 #
            Большое спасибо! Действительно всё работает) Попробовал выставить рейтинг от 2-ух разных зарегистрированных пользователей и всё получилось blush
            0
  2. foto
    Гость 29 января 2020 16:48 #
    как сделать на версии 13.3 ?
    0
    1. foto
      Администратор 31 января 2020 17:34 #
      Так же. Строку:
      if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );

      Заменить на
      if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 1 );


      Замену выполнять не вручную, а через утилиту управления плагинами.
      0
  3. foto
    VIP 2 февраля 2020 17:25 #
    А что означает строка - $rating = floor($rating * 17); ?

    Видел на одном из сайтов вот такую строку - $rating = floor($rating * 20);
    0
    1. foto
      Администратор 3 февраля 2020 00:41 #
      Это говнокод.
      Когда ширина элемента шаблона строго прописана в php файле. В данном случае - это ширина звездочки рейтинга.
      0
Добавить комментарий

Внимание! Все сообщения касающиеся техподдержки будут удалены или проигнорированы

Attention! All messages asking for technical support will be removed or ignored

  • Логин
  • E-mail (не обязательно)
Повторите рисунок:
antibot
© Sander-Development. 2009-2024.
При копировании, ссылка на источник обязательна.