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

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

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

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

мне бы хотелось вернуть старый вариант, отображение рейтинга в 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
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

тогда в фулл стори показываются точки в столбик с цифрами 1 2 3 4 5, и в инфе тоже столбик, в нем маленькая черная точка , во так 46d7bcd5764b554c9fbaed84c60be487.jpg

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

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

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

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

70f0098838e9907f971ca3f5555d57ca.jpg

Изменено пользователем Lancee
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

без выше описанных действие тоже рейтинг не работал... такие же точки были...

Шаблон модульный...

Изменено пользователем Lancee
Ссылка на сообщение
Поделиться на других сайтах

Точно... 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;

}

Изменено пользователем Lancee
Ссылка на сообщение
Поделиться на других сайтах
  • 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 недели спустя...

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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