» » Цифровой цветной рейтинг новостей для dle 9.6

2-01-2015, 16:10

Цифровой цветной рейтинг новостей для dle 9.6 

Цифровой цветной рейтинг новостей для dle 9.6

Надоел стандартный рейтинг? Тогда ставим цифровой цветной рейтинг новостей на dle 9.6!
Особенности: стрелки не пропадают после просмотра, вывод количества проголосовавших, простая установка, простой валидный по версии validator.w3.org код и никаких лишних запросов в базу данных. Этот хак не дополняет, а просто заменяет стандартный рейтинг. Итак, приступим к установке...

Шаг 1. Открываем файл: /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;


Шаг 2. Открываем файл /engine/modules/functions.php
Находим примерно следующее (если файл не редактировался, там должны быть строки от 165 до 259):

Заменить этот кусок кода на этот:


Шаг 3. Открываем файл /templates/ВАШ_ШАБЛОН/css/engine.css и удаляем стандартные стили dle рейтинга:


Вместо удаленного кода вставляем новый стиль цифрового рейтинга:
.rate_img img {border: 0px none;margin:0px 8px -1px 7px;}

Шаг 4. Прописываем в shortstory.tpl и fullstory.tpl код для вызова цифрового рейтинга:
Рейтинг:<span class="rate_img">{rating}</span>

По желанию Вы можете вывести количество проголосовавших в шаблоне:
Проголосовало: {vote-num} чел.

P.S. Если стрелочки у Вас не выровнялись наравне с цифровым значением рейтинга, ровняем их редактируя значение margin:0px 8px -1px 7px в style.css, где 0px - это отступ вверх, 8px - направо, -1px - отступ вниз и 7px - отступ налево.


Если Вы хотите, чтобы после голосования у Вас не пропадали стрелки, нужно проделать отдельно еще 2 действия:
Открываем /engine/ajax/rating.php и находим в самом конце:
if( $_REQUEST['mode'] == "short" ) {
	
	$buffer = ShortRating( $row['news_id'], $row['rating'], $row['vote_num'], false );

} else {
	
	$buffer = ShowRating( $row['news_id'], $row['rating'], $row['vote_num'], false );

}

В этом коде нужно убрать в двух местах переменную false вместе с запятой. У Вас должно получиться так:
if( $_REQUEST['mode'] == "short" ) {
	
	$buffer = ShortRating( $row['news_id'], $row['rating'], $row['vote_num'] );

} else {
	
	$buffer = ShowRating( $row['news_id'], $row['rating'], $row['vote_num'] );

}

Теперь скрипту нужно скормить правильные адреса к картинкам, потому что Тег {THEME} почему-то не обрабатывается правильно и вместо картинок выводятся теги alt изображений Нравится (+1) +3 Не нравится (-1). Чтобы это пофиксить нужно прописать правильные пути к картинкам в /engine/modules/functions.php ,а именно: находим строчку:
<img src="{THEME}/dleimages/down.gif" title="Не нравится (-1)" alt="Не нравится (-1)" onclick="dleRate('-1', '{$id}'); return false;" width="9" height="10" />&nbsp;{$rating}&nbsp;<img src="{THEME}/dleimages/up.gif" title="Нравится (+1)" alt="Нравится (+1)" onclick="dleRate('1', '{$id}'); return false;" width="9" height="10" />

Их у Вас должно быть две, первую можно оставить как есть, а вторую меняем на:
<img src="/templates/Default/dleimages/down.gif" title="Не нравится (-1)" alt="Не нравится (-1)" onclick="dleRate('-1', '{$id}'); return false;" width="9" height="10" />&nbsp;{$rating}&nbsp;<img src="/templates/Default/dleimages/up.gif" title="Нравится (+1)" alt="Нравится (+1)" onclick="dleRate('1', '{$id}'); return false;" width="9" height="10" />

Или проще говоря во втором варианте заменяем {THEME} на /templates/Default
Вместо Default пропишите правильное имя своего шаблона. Вот и все, стрелки больше не пропадают после голосования в DLE 9.6!

Шаг 5. Стрелочки бросаем в папку dleimages Вашего шаблона. Скачать: templates.rar [451 b] (cкачиваний: 127)
 Написал DataLife Пользователь offline (3 июля 2012 03:07)   Пожаловаться  
Рейтинг новостей такой же как у нас. Демо налицо...
 Написал Дмитрий (18 августа 2012 18:38)   Пожаловаться  
Можно ли сделать так чтобы можно было изменять рейтинг?
Ну вот нажал минус сначала, потом понял свою ошибку, и поменял на плюс?) Или невозможно?
 Написал DataLife Пользователь offline (13 сентября 2012 23:44)   Пожаловаться  
Дмитрий, сомневаюсь что это нужный хак... Сделать то можно конечно, но на мой взгляд оно лишнее. Нажал минус, потом передумал и плюсанул или наоборот - таких людей единицы могут быть. Для них нагружать БД не стоит.
 Написал DataLife Пользователь offline (2 ноября 2014 22:49)   Пожаловаться  
Сменили рейтинг на сайте на звездочный. smile