Озадачился вывести рейтинг в полной новости немного иным путем, для своего шаблона. Выглядит это так
То есть если мы заметим, то с левой стороны у нас основной момент для гоосвания, а с права вывод в виде звезд по рейтингу через style="width:100%... + количество общий рейтинг.
Реализация вывода общего рейтинга с правой стороны
в шаблоне functions.php после
Добавить
в файле show.full.php после
добавить
в шаблон полной новости выводит через тег {rating-2}
Это реализация вывода общего рейтинга в виде звезд. Что бы реализовать рядом или в другом месте вывод общего итога голосования в виде цифры, то делаем следующее.
в шаблоне functions.php ищем
заменяем оба раза на
Этот момент я думаю все знают, он делает рейтинг чуть точнее. Решил добавить к теме.
Далее в файле show.full.php находим
чуть ниже вставляем
В шаблоне в полной новости, выводим тегом {rating_nums}.
На этом все. Оформляем как удобно либо не оформляем.
Благодарность byroot за модификацию кода и подсказку!
То есть если мы заметим, то с левой стороны у нас основной момент для гоосвания, а с права вывод в виде звезд по рейтингу через style="width:100%... + количество общий рейтинг.
Реализация вывода общего рейтинга с правой стороны
в шаблоне functions.php после
Код:
return $rated;
}
}
Добавить
Код:
function ShowRatingDouble($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;
$rating1 = str_replace( ",", ".", $rating );
$rating = $rating * 20;
$rated = <<<HTML
<div class='ratig-layer-{$id}'><div class="rating">
<ul class="unit-rating">
<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
<li><span title="{$lang['useless']}" class="r1-unit">1</span></li>
<li><span title="{$lang['poor']}" class="r2-unit">2</span></li>
<li><span title="{$lang['fair']}" class="r3-unit">3</span></li>
<li><span title="{$lang['good']}" class="r4-unit">4</span></li>
<li><span title="{$lang['excellent']}" class="r5-unit">5</span></li>
</ul>
<div class="rating_digits"><div class="rating_digits_1">Рейтинг: {$rating1}/5 ({$vote_num} гол.)</div></div>
</div></div>
HTML;
return $rated;
}
}
в файле show.full.php после
Код:
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
добавить
Код:
$tpl->set( '{rating-2}', ShowRatingDouble( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
в шаблон полной новости выводит через тег {rating-2}
Это реализация вывода общего рейтинга в виде звезд. Что бы реализовать рядом или в другом месте вывод общего итога голосования в виде цифры, то делаем следующее.
в шаблоне functions.php ищем
Код:
if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
else $rating = 0;
if ($rating < 0 ) $rating = 0;
$rating = $rating * 20;
заменяем оба раза на
Код:
if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 1 );
else $rating = 0;
if ($rating < 0 ) $rating = 0;
$rating = floor($rating * 20);
Этот момент я думаю все знают, он делает рейтинг чуть точнее. Решил добавить к теме.
Далее в файле show.full.php находим
Код:
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
чуть ниже вставляем
Код:
if ($row['vote_num'] == '0') $tpl->set( '{rating_nums}',"<span class=\"stareval-note no-rating\">?</span>");
else $tpl->set( '{rating_nums}', "<span class=\"stareval-note friends\">" . str_replace(",",".",round($row['rating']/max(1,$row['vote_num']),1)) . "</span>");
В шаблоне в полной новости, выводим тегом {rating_nums}.
На этом все. Оформляем как удобно либо не оформляем.
Благодарность byroot за модификацию кода и подсказку!
Последнее редактирование: