dle.in.ua » Хаки » Новый вариант рейтинга v.1.0

Новый вариант рейтинга v.1.0

Автор: Кокос от 22-12-2008, 22:30
Новый вариант рейтинга v.1.0


Хак, позволяющий изменить как внешний вид порядком поднадоевшего стандартного рейтинга DataLifeEngine, так и его структуру. Хак работает на ajax, рейтинг автообновляется. Оценка происходит по 10 - бальной шкале.
Новый вариант рейтинга v.1.0


Хак, позволяющий изменить как внешний вид порядком поднадоевшего стандартного рейтинга DataLifeEngine, так и его структуру. Хак работает на ajax, рейтинг автообновляется. Оценка происходит по 10 - бальной шкале.

Новый рейтинг действует в короткой, полной новостях, а также в профиле пользователя:

Новый вариант рейтинга v.1.0


Инструкция по установке:

1. Открываем languageRussianwebsite.lng
После

+----------------------------------------------------------------+
$lang = array (
+----------------------------------------------------------------+
вставляем
+----------------------------------------------------------------+
'rat_10'           => "Идеально",
'rat_9'             => "Великолепно",
'rat_8'             => "Отлично",
'rat_7'             => "Хорошо",
'rat_6'             => "Выше среднего",
'rat_5'             => "Средне",
'rat_4'             => "Удовлетворительно",
'rat_3'             => "Плохо",
'rat_2'             => "Очень плохо",
'rat_1'             => "Хуже не бывает",
+----------------------------------------------------------------+

2. Открываем enginemodulesfunctions.php
Вместо

+----------------------------------------------------------------+
function ShowRating ($id, $rating, $vote_num, $allow = true){
global $lang;


if ($rating) $rating = round(($rating /  $vote_num), 0); else $rating = 0;
$rating = $rating * 17;

    if (!$allow) {

$rated = <<<HTML
<div class="rating" style="float:left;">
        <ul class="unit-rating">
        <li class="current-rating" style="width:{$rating}px;">{$rating}</li>
        </ul>
</div><div class="rating" style="float:left; padding-top:2px;"> ({$lang['voten']} {$vote_num})</div>
HTML;

        return $rated;
    }


$rated .= <<<HTML
<div id="ratig-layer"><div class="rating" style="float:left;">
        <ul class="unit-rating">
        <li class="current-rating" style="width:{$rating}px;">{$rating}</li>
        <li>[url=#" title=]1[/url]</li>
        <li>[url=#" title=]2[/url]</li>
        <li>[url=#" title=]3[/url]</li>
        <li>[url=#" title=]4[/url]</li>
        <li>[url=#" title=]5[/url]</li>
        </ul>
</div><div class="rating" style="float:left; padding-top:2px;"> ({$lang['voten']} {$vote_num})</div></div>
HTML;
        

return $rated;
}


function ShortRating ($id, $rating, $vote_num, $allow = true){
    global $lang;

if ($rating) $rating = round(($rating /  $vote_num), 0); else $rating = 0;
$rating = $rating * 17;

    if (!$allow) {

        $rated = <<<HTML
<div class="rating" style="float:left;">
        <ul class="unit-rating">
        <li class="current-rating" style="width:{$rating}px;">{$rating}</li>
        </ul>
</div>
HTML;

        return $rated;
    }

$rated = "<span id="'ratig-layer-.$id.">";

$rated .= <<<HTML
<div class="rating" style="float:left;">
        <ul class="unit-rating">
        <li class="current-rating" style="width:{$rating}px;">{$rating}</li>
        <li>[url=#" title=]1[/url]</li>
        <li>[url=#" title=]2[/url]</li>
        <li>[url=#" title=]3[/url]</li>
        <li>[url=#" title=]4[/url]</li>
        <li>[url=#" title=]5[/url]</li>
        </ul>
</div>
HTML;
        

$rated  .= "</span>";


return $rated;
}


function userrating ($name){
global $db;

$row = $db->super_query("SELECT SUM(rating) as rating, SUM(vote_num) as num FROM " . PREFIX . "_post where autor ='$name'");

if ($row['num']) $rating = round(($row['rating'] /  $row['num']), 0); else $rating = 0;
$rating = $rating * 17;

$rated = <<<HTML
<div class="rating" style="display:inline;">
        <ul class="unit-rating">
        <li class="current-rating" style="width:{$rating}px;">{$rating}</li>
        </ul>
        </div>
HTML;

return $rated;
}

+----------------------------------------------------------------+
вставляем
+----------------------------------------------------------------+
/*
Хак "Измененный рейтинг for DLE by GRIMWEB". Начало.
*/

function ShowRating ($id, $rating, $vote_num, $allow = true)
{
global $lang;

  if ($rating) // если рейтинг указан в параметре функции
  {
  $rating = round(($rating / $vote_num), 1); // вычисляем его с точностью до сотых
  }
  else // если нет
  {
  $rating = 0;    // обнуляем
  }
  
  if (!$allow) // если пользователь не может влиять на рейтинг
  {
  /* Фомируем html - код неизменяемого рейтинга. */
  $rated = <<<HTML
<div id="ratig-layer">
  {$rating}
  <sup>
    {$vote_num}
  </sup>
</div>
HTML;

    return $rated; // и возвращаем его
  }
  else // если нет
  {
      
  /* Фомируем html - код изменяемого рейтинга. */
  $rated .= <<<HTML
<span id="ratig-layer-{$id}">
  <div id="ratig-layer">
    <select>
      <option value="{$lang['rat_10']}">{$lang['rat_10']}</option>
      <option value="{$lang['rat_9']}">{$lang['rat_9']}</option>
      <option value="{$lang['rat_8']}">{$lang['rat_8']}</option>
      <option value="{$lang['rat_7']}">{$lang['rat_7']}</option>
      <option value="{$lang['rat_6']}">{$lang['rat_6']}</option>
      <option value="{$lang['rat_5']}">{$lang['rat_5']}</option>
      <option value="{$lang['rat_4']}">{$lang['rat_4']}</option>
      <option value="{$lang['rat_3']}">{$lang['rat_3']}</option>
      <option value="{$lang['rat_2']}">{$lang['rat_2']}</option>
      <option value="{$lang['rat_1']}">{$lang['rat_1']}</option>
    </select>
    {$rating}
    <sup>
      {$vote_num}
    </sup>
  </div>
</span>
HTML;

    return $rated;  // и возвращаем его    
  }
}

function ShortRating ($id, $rating, $vote_num, $allow = true)
{
global $lang;

  if ($rating) // если рейтинг указан в параметре функции
  {
  $rating = round(($rating / $vote_num), 1); // вычисляем его с точностью до сотых
  }
  else // если нет
  {
  $rating = 0;    // обнуляем
  }
  
  if (!$allow) // если пользователь не может влиять на рейтинг
  {
  /* Фомируем html - код неизменяемого рейтинга. */
  $rated = <<<HTML
<div id="ratig-layer">
  {$rating}
  <sup>
    {$vote_num}
  </sup>
</div>
HTML;

    return $rated; // и возвращаем его
  }
  else // если нет
  {
      
  /* Фомируем html - код изменяемого рейтинга. */
  $rated .= <<<HTML
<span id="ratig-layer-{$id}">
  <div id="ratig-layer">
    <select>
      <option value="{$lang['rat_10']}">{$lang['rat_10']}</option>
      <option value="{$lang['rat_9']}">{$lang['rat_9']}</option>
      <option value="{$lang['rat_8']}">{$lang['rat_8']}</option>
      <option value="{$lang['rat_7']}">{$lang['rat_7']}</option>
      <option value="{$lang['rat_6']}">{$lang['rat_6']}</option>
      <option value="{$lang['rat_5']}">{$lang['rat_5']}</option>
      <option value="{$lang['rat_4']}">{$lang['rat_4']}</option>
      <option value="{$lang['rat_3']}">{$lang['rat_3']}</option>
      <option value="{$lang['rat_2']}">{$lang['rat_2']}</option>
      <option value="{$lang['rat_1']}">{$lang['rat_1']}</option>
    </select>
    {$rating}
    <sup>
      {$vote_num}
    </sup>
  </div>
</span>
HTML;

    return $rated;  // и возвращаем его    
  }
}

function userrating ($name) // рейтинг пользователя
{
global $db;
/* запрашиваем необходимую информацию из БД */
$row = $db->super_query("SELECT SUM(rating) as rating, SUM(vote_num) as num FROM " . PREFIX . "_post where autor ='$name'");
  if($row['num']) // если кол - во голосовавших положительно
  {
  $rating = round(($row['rating'] / $row['num']), 1); // вычисляем рейтинг
  }  
  else // иначе
  {
  $rating = 0;    // обнуляем рейтинг
  }
/* Формируем переменную html кода рейтинга */
$rated = <<<HTML
<div>
{$rating}
    <sup>
      {$row['num']}
    </sup>
</div>
HTML;

return $rated; // возвращаем ее
}

/*
Хак "Измененный рейтинг for DLE by GRIMWEB". Конец.
*/

+----------------------------------------------------------------+
3. Открываем engineajaxrating.php
Вместо
+----------------------------------------------------------------+
if ($go_rate > 5 OR $go_rate  10 OR $go_rate <  1)
{
$go_rate = 0;    
}

/*
Хак "Измененный рейтинг for DLE by GRIMWEB". Конец.
*/
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Лучше б звёздочки прикрутить.
    • bot
    • Регистрация: --
    • Репутация: (||)
    • 22 декабря 2008 22:44
    • 1
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • И как не странно идея взята с games.triolan.com.ua :)
    • aL13n
    • Регистрация: --
    • Репутация: (||)
    • 23 декабря 2008 00:01
    • 2
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • aL13n,
    Автор модуля сразу писал для games.triolan.com.ua, потом заказчик пропал, потому автор и кинул в паблик но оказалось заказчик заболел.
    Ет на 4Дле автора писал
    • gLyk_aKa_Yure©
    • Регистрация: --
    • Репутация: (||)
    • 23 декабря 2008 00:15
    • 3
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • gLyk_aKa_Yure©, он идею брал именно с games.triolan.com.ua.
    Для games.triolan.com.ua модуль я писал.
    • aL13n
    • Регистрация: --
    • Репутация: (||)
    • 23 декабря 2008 00:26
    • 4
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Ооооо, спасибо огромное!!!! Так давно этого ждал! am
    • Dax
    • Регистрация: --
    • Репутация: (||)
    • 23 декабря 2008 09:23
    • 5
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • сколько пиара games.triolan.com.ua 0_о
    • XanderMaximov
    • Регистрация: --
    • Репутация: (||)
    • 23 декабря 2008 11:10
    • 6
    ^
  • Группа: User
  • Icq: 467815056
  • Комментариев: 40
  • Публикаций: 3
  • Цитата: XanderMaximov
    сколько пиара games.triolan.com.ua

    и не говори
    • Кокос
    • Регистрация: 4.11.2008
    • Репутация: (0|0|0)
    • 23 декабря 2008 14:42
    • 7
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Как же все таки неудобно читать комменты :( блин, да ещё и когда добовляешь, то вначале в конец вставляется, а потом ищи его в начале... поменяйте или сделайте что нибудь...
    • LeKs
    • Регистрация: --
    • Репутация: (||)
    • 23 декабря 2008 17:00
    • 8
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Так! Кокос, спасибо, конечно, что опубликовал тут мой хак, но:
    Слешей нет, лучше было бы присоединить файл, а в новости, не смотря на то, что в установке коментов достаточно, всегда указывают автора...

    gLyk_aKa_Yure©, хак писал по образу и подобию games.triolan.com.ua.
    Это действительно так. Так что ты неправ.
    • GRIMWEB
    • Регистрация: --
    • Репутация: (||)
    • 26 декабря 2008 21:12
    • 9
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • bot,
    Ну и прикрути:


    'rat_10' => "**********",
    'rat_9' => "*********",
    'rat_8' => "********",
    'rat_7' => "*******",
    'rat_6' => "******",
    'rat_5' => "*****",
    'rat_4' => "****",
    'rat_3' => "***",
    'rat_2' => "**",
    'rat_1' => "*",


    Себе так и сделал бы!
    • GRIMWEB
    • Регистрация: --
    • Репутация: (||)
    • 27 декабря 2008 13:58
    • 10
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 52
  • Публикаций: 3
  • Движок покоцал структуру кода и этот код не работает ! проверено!
    • oleksdanderm
    • Регистрация: 30.08.2008
    • Репутация: (0|0|0)
    • 21 января 2009 21:14
    • 11
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.