Хак, позволяющий изменить как внешний вид порядком поднадоевшего стандартного рейтинга DataLifeEngine, так и его структуру. Хак работает на ajax, рейтинг автообновляется. Оценка происходит по 10 — бальной шкале.
Хак, позволяющий изменить как внешний вид порядком поднадоевшего стандартного рейтинга DataLifeEngine, так и его структуру. Хак работает на ajax, рейтинг автообновляется. Оценка происходит по 10 — бальной шкале.Новый рейтинг действует в короткой, полной новостях, а также в профиле пользователя:
Инструкция по установке: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:$ratingpx;">$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:$ratingpx;">$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:$ratingpx;">$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:$ratingpx;">$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:$ratingpx;">$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». Конец.*/