» » Фикс хак цветного рейтинга для DLE 8.2

Фикс хак цветного рейтинга для DLE 8.2

Фикс Хак цветного рейтинга для DataLife Engine 8.2



Фикc Хак для установки цветного рейтинга для DataLife Engine 8.2.Сталкyлся я с тем что устанавливая на движок DataLife Engine 8.2 у меня вылетала ошибка и Хак не корректно работал и не мог понять в чем проблема перезаписывал я коды по несколько раз заново и результат один и тот же. Потом для проверки решил я поставить на движок DataLife Engine 7.5 и вот оно чудо заработало. Затем дело техники перелопатил я все коды файлов что менялось и сравнивал с файлами от движка DataLife Engine 8.2.И нашел разницу между движками в коде для DataLife Engine 7.5
$rated .= </span>

и DataLife Engine 8.2
$rated .= "</div>";
и последнее я не стал менять и оставил как оно есть.

Дополнено by TipTop

Открыть файл: /engine/ajax/rating.php

Найти:

if ($go_rate > 5 OR $go_rate <  1) $go_rate = 0;



Заменить на:

if ($go_rate > 1 OR $go_rate < -1) $go_rate = 0;


Открыть файл /engine/modules/functions.php


---Найти примерно следующее:

function ShowRating ($id, $rating, $vote_num, $allow = true){
if ($rating) $rating = round(($rating /  $vote_num), 0); else $rating = 0;
$rating = $rating * 17;

...пропущен код...

return $rated;
}


$rated .= <<<HTML

...пропущен код...

return $rated;
}

Заменить на:

function ShowRating($id, $rating, $vote_num, $allow = true) {
global $is_logged, $member_id, $config, $lang, $db;
if ($rating=='null'){$rating="Уже Голосовали!";}else{
if ($rating) $rating = round($rating, 0); else $rating = 0;
if ($rating > 0) $rating = "<font color=green><b>+".$rating."</font></b>"; elseif ($rating == 0) $rating="<b>".$rating."</font></b>"; else $rating = "<font color=red><b>".$rating."</font></b>";
}
if (!$allow) {
  $rated = <<<HTML
<div id="ratig-layer">{$rating}</div>
HTML;

return $rated;
}

$rated .= <<<HTML
<span id="ratig-layer-{$id}">
<div id="ratig-layer">

   <img src="{THEME}/dleimages/up.gif" title="Нравится(+)" alt="Нравится(+)" class="r2-unit" onclick="doRate('1', '{$id}'); return false;" width="16" height="16" align="middle" />
  </a>
  {$rating}
   <img src="{THEME}/dleimages/down.gif" title="Не нравится(-)" alt="Не нравится(-)" class="r2-unit" onclick="doRate('-1', '{$id}'); return false;" width="16" height="16" align="middle" />
</div>
</span>
HTML;

return $rated;
}


Найти примерно следующее:

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

...пропущен код...

$rated .= <<<HTML

...пропущен код...

$rated  .= "</span>";

return $rated;
}


Заменить на:

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

if ($rating) $rating = round($rating, 0); else $rating = 0;
if ($rating > 0) $rating = "<font color=green><b>+".$rating."</font></b>"; elseif ($rating == 0) $rating="<b>".$rating."</font></b>"; else $rating = "<font color=red><b>".$rating."</font></b>";

if (!$allow) {
  $rated = <<<HTML
<div id="ratig-layer">{$rating}</div>
HTML;

return $rated;
}

$rated = "<span id=\"ratig-layer-" . $id . "\">";
$rated .= <<<HTML
<div id="ratig-layer">
   <img src="{THEME}/dleimages/up.gif" title="Нравится(+)" alt="Нравится(+)" class="r2-unit" onclick="doRate('1', '{$id}'); return false;" width="16" height="16" align="middle" />{$rating}
   <img src="{THEME}/dleimages/down.gif" title="Не нравится(-)" alt="Не нравится(-)" class="r2-unit" onclick="doRate('-1', '{$id}'); return false;" width="16" height="16" align="middle" />
</div>
HTML;
        
$rated .= "</div>";

return $rated;
}
Найти функцию (должна быть сразу после вышеописанных кодов):
[code]function userrating($name)
.
..пропущен код...

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;

$rated = <<<HTML
{$rating}
HTML;

return $rated;
}


Открыть файл /templates/ваш_шаблон/css/engine.css


Найти:

.rating {
    color: #757575;
    font-size: 11px;        /* ! */
    font-family: tahoma;    /* ! */
    width: 85px;
    height: 16px;
}
.unit-rating {
    list-style: none;
    margin: 0px;
    padding: 0px;
    width: 85px;
    height: 16px;
    position: relative;
    background-image: url(../dleimages/rating.gif);
    background-position: top left;
    background-repeat: repeat-x;
}
.unit-rating li {
    text-indent: -90000px;
    padding: 0px;
    margin: 0px;
    float: left;
}
.unit-rating li a {
    display: block;
    width: 17px;
    height: 16px;
    text-decoration: none;
    text-indent: -9000px;
    z-index: 17;
    position: absolute;
    padding: 0px;
}
.unit-rating li a:hover {
    background-image: url(../dleimages/rating.gif);
    background-position: left center;
    z-index: 2;
    left: 0px;
}
.unit-rating a.r1-unit { left: 0px; }
.unit-rating a.r1-unit:hover { width: 17px; }
.unit-rating a.r2-unit { left: 17px; }
.unit-rating a.r2-unit:hover { width: 34px; }
.unit-rating a.r3-unit { left: 34px; }
.unit-rating a.r3-unit:hover { width: 51px; }
.unit-rating a.r4-unit { left: 51px; }    
.unit-rating a.r4-unit:hover { width: 68px; }
.unit-rating a.r5-unit { left: 68px; }
.unit-rating a.r5-unit:hover { width: 85px; }
.unit-rating li.current-rating {
    background-image: url(../dleimages/rating.gif);
    background-position: left bottom;
    position: absolute;
    height: 16px;
    display: block;
    text-indent: -9000px;
    z-index: 1;
}

Заменить на:

.r2-unit{
cursor: pointer;
}
.rating-text {float: left;}

#ratig-layer {
font-weight: bold;
float: left;
padding-right: 5px;
}

#ratig-layer a, #ratig-layer a:hover {text-decoration: none;}




Открыть файл /templates/ваш_шаблон/shortstory.tpl


Найти:

{rating}


Заменить на:

<div class="rating-text">Рейтинг:&nbsp;</div>{rating}


Тоже самое проделайте и с файлом fullstory.tpl

Вот и все! Внимательно копируйте и всавляйте и все заработает.

Комментарии

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Личные сообщения

Ваши переписки