Рейтинг 4 : оценка по пятибалльной шкале
Это рейтинг от Ingvard (ссылка на оригинал в конце статьи), который был доработан SX2. При помощи этого хака добавится к использованию 4й вид рейтинга в DLE. После правок переключиться на его использование можно будет в админ-панели.
Установка:
1. Открыть engine/modules/functions.php, найти функцию ShowRating и заменить ее на:
function ShowRating($id, $rating, $vote_num, $allow = true) {
global $lang, $config;
if( !$config['rating_type'] ) {
if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
else $rating = 0;
if ($rating < 0 ) $rating = 0;
$rating = $rating * 20;
if( !$allow ) {
$rated = <<<HTML
<div class="rating">
<ul class="unit-rating">
<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
</ul>
</div>
HTML;
return $rated;
}
$rated = <<<HTML
<div id='ratig-layer-{$id}'><div class="rating">
<ul class="unit-rating">
<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
<li><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
</ul>
</div></div>
HTML;
return $rated;
} elseif ($config['rating_type'] == "1") {
if( $rating < 0 ) $rating = 0;
if( $allow ) $rated = "<span id=\"ratig-layer-{$id}\" class=\"ignore-select\"><span class=\"ratingtypeplus ignore-select\" >{$rating}</span></span>";
else $rated = "<span class=\"ratingtypeplus ignore-select\" >{$rating}</span>";
return $rated;
} elseif ($config['rating_type'] == "2") {
$extraclass = "ratingzero";
if( $rating < 0 ) {
$extraclass = "ratingminus";
}
if( $rating > 0 ) {
$extraclass = "ratingplus";
$rating = "+".$rating;
}
if( $allow ) $rated = "<span id=\"ratig-layer-{$id}\" class=\"ignore-select\"><span class=\"ratingtypeplusminus ignore-select {$extraclass}\" >{$rating}</span></span>";
else $rated = "<span class=\"ratingtypeplusminus ignore-select {$extraclass}\" >{$rating}</span>";
return $rated;
} elseif ($config['rating_type'] == "4") {
if ($vote_num == 0)
{ $result = 0; } else
{ $result = $rating / $vote_num; }
if (strlen($result) > 3)
{ $rating = substr($result, 0, 3); }
else
{ $rating = $result; }
if( !$allow ) {
$rated = <<<HTML
<table width="100%">
<tr>
<td class="td_rate">оценка игре</td>
</tr>
<tr>
<td class="rate3"><span>{$rating}</span><span class="rate3">/5</span></td>
</tr>
<tr>
<td class="td_rate">голосов: <span>{$vote_num}</span></td>
</tr>
</table>
HTML;
return $rated;
}
$rated .= <<<HTML
<div id='ratig-layer-{$id}'>
<table width="100%">
<tr>
<td>
<table width="100%">
<tr>
<td class="td_rate">оценка игре</td>
</tr>
<tr>
<td class="rate3"><span>{$rating}</span><span>/5</span></td>
</tr>
<tr>
<td class="td_rate">голосов: <span>{$vote_num}</span></td>
</tr>
</table>
</td>
<td valign="middle">
<table width="100%">
<tr>
<td colspan="5" class="rate2" align="center"> Ваша оценка игре по пятибальной шкале </td>
</tr>
<tr class="td_bg">
<td align="center"><a href="#" title="{$lang['useless']}" class="rate1" onclick="doRate('1', '{$id}'); return false;">1</a></td>
<td align="center"><a href="#" title="{$lang['poor']}" class="rate1" onclick="doRate('2', '{$id}'); return false;">2</a></td>
<td align="center"><a href="#" title="{$lang['fair']}" class="rate1" onclick="doRate('3', '{$id}'); return false;">3</a></td>
<td align="center"><a href="#" title="{$lang['good']}" class="rate1" onclick="doRate('4', '{$id}'); return false;">4</a></td>
<td align="center"><a href="#" title="{$lang['excellent']}" class="rate1" onclick="doRate('5', '{$id}'); return false;">5</a></td>
</tr>
</td>
</tr>
</table>
</table>
</div>
HTML;
return $rated;
}
}
2. Открыть engine/inc/options.php и найти:
showRow( $lang['opt_sys_rtp'], $lang['opt_sys_rtpd'], makeDropDown( array ("0" => $lang['opt_sys_rtp_1'], "1" => $lang['opt_sys_rtp_2'], "2" => $lang['opt_sys_rtp_3']), "save_con[rating_type]", "{$config['rating_type']}" ) );
Заменить на:
showRow( $lang['opt_sys_rtp'], $lang['opt_sys_rtpd'], makeDropDown( array ("0" => $lang['opt_sys_rtp_1'], "1" => $lang['opt_sys_rtp_2'], "2" => $lang['opt_sys_rtp_3'], "4" => $lang['opt_sys_rtp_4']), "save_con[rating_type]", "{$config['rating_type']}" ) );
3. Открыть language/Russian/adminpanel.lng и найти:
'opt_sys_rtp_3' => "'Нравится' или 'Не нравится'",
Добавить ниже:
'opt_sys_rtp_4' => "'Оценка по пятибалльной шкале'",
4. Открыть engine/modules/show.full.php и найти:
if( $row['allow_rate'] ) {
Добавить выше:
if ($config['rating_type'] == "4") {
$tpl->set('[rating-type-4]', "");
$tpl->set('[/rating-type-4]', "");
$tpl->set_block("'\\[rating-type-1\\](.*?)\\[/rating-type-1\\]'si", "");
$tpl->set_block( "'\\[rating-type-2\\](.*?)\\[/rating-type-2\\]'si", "" );
$tpl->set_block( "'\\[rating-type-3\\](.*?)\\[/rating-type-3\\]'si", "" );
if ($row['vote_num'] == 0) {
$result = 0;
} else {
$result = $row['rating'] / $row['vote_num'];
}
if (strlen($result) > 3) {
$rated = "<b>" . substr($result, 0, 3) . "</b>/<b>5</b>";
} else {
$rated = $result;
}
$tpl->set('{total}', $rated);
$tpl->set('{num_rat}', $row['vote_num']);
} else {
$tpl->set_block("'\\[rating-type-4\\](.*?)\\[/rating-type-4\\]'si", "");
}
5. Открыть templates/Default/fullstory.tpl и найти:
[/rating]
Добавить выше:
[rating-type-4]{rating}<br />Средняя оценка игры посетителями: <b>{total}</b> из <b>5</b><br />Количество проголосовавших: <b>{num_rat}</b>[/rating-type-4]
6. Открыть файл стилей шаблона и в самый низ добавить:
.td_bg{background:#323840;}
.td_rate{background-color:#3394E6;color:#FFF;font-weight:700;text-align:center;}
.rate1{color:#FFF;font:bold 20pt Tahoma, Verdana, Arial, Helvetica, sans-serif;text-align:center;}
.rate2{font:bold 15pt Tahoma, Verdana, Arial, Helvetica, sans-serif;padding:9px;}
.rate3{color:#19425E;font:bold 20pt Tahoma, Verdana, Arial, Helvetica, sans-serif;text-align:center}
7. Зайти в админ панель, включить рейтинг.
Готово!
• Кодировка: win-1251 + utf-8
• Автор: Ingvard
• Модификация: SX2
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.