Перейти к публикации

Вернуть старый рейтинг


Рекомендованные сообщения

здраствуйте.

теперь рейтинг для новостей можно выставлять и в короткой новости.

мне бы хотелось вернуть старый вариант, отображение рейтинга в shortnews картинками и с невозможностью голосования.

rating1.gif

rating2.gif

rating3.gif

rating4.gif

rating5.gif

как реализовать это на 6.0?

спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Вернее сказать что эта функция отключена во всех версиях после 5.5

Исправляем эту ошибку...

Заходим в engine\modules\functions.php

Находим:

function ShortRating ($id, $rating, $vote_num, $allow = true){

	global $config, $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><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="dleRate('1', '{$id}'); return false;">1</a></li>

		<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="dleRate('2', '{$id}'); return false;">2</a></li>

		<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="dleRate('3', '{$id}'); return false;">3</a></li>

		<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="dleRate('4', '{$id}'); return false;">4</a></li>

		<li><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="dleRate('5', '{$id}'); return false;">5</a></li>

		</ul>

</div>

HTML;



$rated  .= "</span>";



return $rated;

}
И заменяем к ебням собачим эту ошибку программера вот этим:
function ShortRating ($id, $rating, $vote_num){

	global $config, $lang;


if ($rating) $rating = round(($rating /  $vote_num), 0); else $rating = 0;

$rating = $rating * 17;


$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;

}

Всё :D . Этого достаточно для корректной работы скрипта. Пользуйтесь. Не знаю почему целсофт сразу не сказал об этом. Мля, все мозги выеб, писец!

Ссылка на сообщение
Поделиться на других сайтах

Ilya красавец B)

а модуль тегов осилишь? :rolleyes:

нужна система тегов потипа как на news2.ru

тут где-то рядом был топик, посмотри если не влом.

зарплатой не обидем ;)

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

а по-моему что-то намудрили...

вроде же не тяжело посмотреть старый код...

в engine/modules/functions.php вот это

function ShortRating ($id, $rating, $vote_num, $allow = true){

	global $config, $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><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="dleRate('1', '{$id}'); return false;">1</a></li>

		<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="dleRate('2', '{$id}'); return false;">2</a></li>

		<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="dleRate('3', '{$id}'); return false;">3</a></li>

		<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="dleRate('4', '{$id}'); return false;">4</a></li>

		<li><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="dleRate('5', '{$id}'); return false;">5</a></li>

		</ul>

</div>

HTML;



$rated  .= "</span>";



return $rated;

}
меняем на
function ShortRating ($rating, $vote_num){

global $config, $lang;


$rated = "";


$excellent = $lang['excellent'];

$good = $lang['good'];

$fair = $lang['fair'];

$poor = $lang['poor'];

$useless = $lang['useless'];


if ($rating < 1){

	$rated  .= "<img src=\"".$config['http_home_url']."templates/{$config['skin']}/dleimages/rating0.gif\" border=\"0\"  align=\"absmiddle\">\n";


} else {

$rating = round(($rating /  $vote_num), 0);


if ($rating == 1) {

	$rated  .= "<img src=\"".$config['http_home_url']."templates/{$config['skin']}/dleimages/rating1.gif\" border=\"0\"  align=\"absmiddle\" alt=\"$lang[rated] $useless\">\n";

}elseif ($rating == 2) {

	$rated  .= "<img src=\"".$config['http_home_url']."templates/{$config['skin']}/dleimages/rating2.gif\" border=\"0\" align=\"absmiddle\" alt=\"$lang[rated] $poor\">\n";

}elseif ($rating == 3) {

	$rated  .= "<img src=\"".$config['http_home_url']."templates/{$config['skin']}/dleimages/rating3.gif\" border=\"0\" align=\"absmiddle\" alt=\"$lang[rated] $fair\">\n";

}elseif ($rating == 4) {

	$rated  .= "<img src=\"".$config['http_home_url']."templates/{$config['skin']}/dleimages/rating4.gif\" border=\"0\" align=\"absmiddle\" alt=\"$lang[rated] $good\">\n";

}elseif ($rating == 5) {

	$rated  .= "<img src=\"".$config['http_home_url']."templates/{$config['skin']}/dleimages/rating5.gif\" border=\"0\" align=\"absmiddle\" alt=\"$lang[rated] $excellent\">\n";

}

}


return $rated;

}
ну и в engine/modules/show.short.php & engine/modules/show.custom.php строчку
$tpl->set('{rating}',ShortRating ($row['id'],$row['rating'], $row['vote_num']));
заменяем на
$tpl->set('{rating}',ShortRating ($row['rating'], $row['vote_num']));

Ссылка на сообщение
Поделиться на других сайтах

kenpark пять баллов!

Только ещё тоже самое в show.full.php надо проделать....

Один вопрос, в userinfo.tpl не отображается.... Что нужно подправить, что бы в инфо пользователя заработало??

Ссылка на сообщение
Поделиться на других сайтах

в фулл_стори нужно же как-то голосовать, потому и не нужно менять:)

а вот в профиле вроде отображается...

Ссылка на сообщение
Поделиться на других сайтах

в том то и дело, что ту... а голосовать вообще нельзя в полной новости, хотя как вы сказали, поставил show.full.php прежнее значение.

Заново поставил исходные файлы functions.php , и show.full.php

Наблюдается такая картина при голосование в полной новости

70f0098838e9907f971ca3f5555d57ca.jpg

Ссылка на сообщение
Поделиться на других сайтах

эээ...шаблон случайно не для старых версий?

без вишеназваных изменений вообще рейтинг работает?

попробуй на чистом двиге такое проделать, у меня все работает!

Ссылка на сообщение
Поделиться на других сайтах

Точно... kenpark который раз ты меня выручаешь!

достаточно вспомнить об engine.css и заменить в нем рейтинг с такого


.rating {

background: #FFF;

border: 1px solid #E0E0E0;

color: #666666;

font-family: Tahoma, helvetica, sans-serif;

vertical-align: middle;

font-size: 11px; 

vertical-align: middle;

height:18px;

}

На такой

.rating {

		color: #666666;

		font-family: Tahoma, helvetica, sans-serif;

		font-size: 11px; 

		width: 85px;

		height: 16px;

	}

	.unit-rating{

		list-style:none;

		margin: 0px;

		padding:0px;

		width: 85px;

		height: 16px;

		position: relative;

		background: url('../dleimages/rating.gif') top left 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: url('../dleimages/rating.gif') 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: url('../dleimages/rating.gif') left bottom;

		position: absolute;

		height: 16px;

		display: block;

		text-indent: -9000px;

		z-index: 1;

}

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

помогите. стоит версия 6.7, делал, как прописал kenpark

в engine/modules/functions.php заменил всё в точности.

в engine/modules/show.short.php и engine/modules/show.custom.php

не было таких строчек:

$tpl->set('{rating}',ShortRating ($row['id'],$row['rating'], $row['vote_num']));

поэтому из похожих строчек:

$tpl->set('{rating}',ShowRating ($$row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating']));

и

$tpl->set('{rating}',ShortRating ($row['id'],$row['rating'], $row['vote_num'], 1));

else

$tpl->set('{rating}',ShortRating ($row['id'],$row['rating'], $row['vote_num'], 0));

убрал вот это:

$row['id'],

звёздочки появились! голосую.. голос засчитывается.. обновляю страницу и.. 0 голосов! все голоса пропали! как это исправить? помогите

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

×
×
  • Создать...