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

Новый вариант рейтинга 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". Конец.
*/
Другие новости по теме:

Категория: Хаки ----- Просмотров: 1858 ----- Комментариев: 11

Вернуться

  • bot

  • 22 декабря 2008 22:44
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Лучше б звёздочки прикрутить.
  • aL13n

  • 23 декабря 2008 00:01
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
И как не странно идея взята с games.triolan.com.ua :)
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
aL13n,
Автор модуля сразу писал для games.triolan.com.ua, потом заказчик пропал, потому автор и кинул в паблик но оказалось заказчик заболел.
Ет на 4Дле автора писал
  • aL13n

  • 23 декабря 2008 00:26
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
gLyk_aKa_Yure©, он идею брал именно с games.triolan.com.ua.
Для games.triolan.com.ua модуль я писал.
  • Dax

  • 23 декабря 2008 09:23
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Ооооо, спасибо огромное!!!! Так давно этого ждал! am
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
сколько пиара games.triolan.com.ua 0_о
  • Группа: User
  • ICQ: 467815056
  • Регистрация: 4.11.2008
  • Комментариев: 40
  • Публикаций: 3
^
Цитата: XanderMaximov
сколько пиара games.triolan.com.ua

и не говори
  • LeKs

  • 23 декабря 2008 17:00
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Как же все таки неудобно читать комменты :( блин, да ещё и когда добовляешь, то вначале в конец вставляется, а потом ищи его в начале... поменяйте или сделайте что нибудь...
  • GRIMWEB

  • 26 декабря 2008 21:12
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Так! Кокос, спасибо, конечно, что опубликовал тут мой хак, но:
Слешей нет, лучше было бы присоединить файл, а в новости, не смотря на то, что в установке коментов достаточно, всегда указывают автора...

gLyk_aKa_Yure©, хак писал по образу и подобию games.triolan.com.ua.
Это действительно так. Так что ты неправ.
  • GRIMWEB

  • 27 декабря 2008 13:58
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
bot,
Ну и прикрути:


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


Себе так и сделал бы!
  • Группа: User
  • ICQ: --
  • Регистрация: 30.08.2008
  • Комментариев: 52
  • Публикаций: 3
^
Движок покоцал структуру кода и этот код не работает ! проверено!