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

Рейтинг DLE, как на youtube без правок движка (раздельные лайки, шкала)


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

  • 2 недели спустя...

Не работает рейтинг на dle 13.2 то вносим следующую правку:

Ищем в js ;

 

       $.get(dle_root + "engine/ajax/rating.php", { go_rate: rate, news_id: id, skin: dle_skin, user_hash: dle_login_hash }

 

Меняем на ; 

$.get(dle_root + "engine/ajax/controller.php?mod=rating", { go_rate: rate, news_id: id, skin: dle_skin, user_hash: dle_login_hash }

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

Не работает рейтинг на dle 13.2 то вносим следующую правку:

Ищем в js ;

 

       $.get(dle_root + "engine/ajax/rating.php", { go_rate: rate, news_id: id, skin: dle_skin, user_hash: dle_login_hash }

 

Меняем на ; 

$.get(dle_root + "engine/ajax/controller.php?mod=rating", { go_rate: rate, news_id: id, skin: dle_skin, user_hash: dle_login_hash }

Я сам столкнулся с этой проблемой в шаблоне stormkino. 

Просто прочитав инфу тут заменил часть кода как написано было не помогло, а в итоге оказалось что в шаблоне прописано вот так ;

 

   $.get(dle_root + "engine/ajax/rating.php", { go_rate: rate, news_id: id, skin: dle_skin} 

 

этот код отсутствовал, user_hash: dle_login_hash. 

Поэтому меняем как выше написано и будет работать рейтинг 

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

Как в коментах сделать а то в полной новости работает а вот в  комментах там просто лайк и он не работает.

Появляется эта загрузка и всё это бесконечно.

Tqf6QSL.png

Изменено пользователем vip34rus
Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, redissx сказал:

Никак. Это для новости.

Пусть не такой, но для комментов можно же так же думаю сделать вариант рейтинга-3

Не пойму почему зависает

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, vip34rus сказал:

Пусть не такой, но для комментов можно же так же думаю сделать вариант рейтинга-3

Не пойму почему зависает

В версии 13.2 и так есть раздельные лайки и дизлайки, нужно просто включить в настройках в админке.

В версиях 10.3-13.1 есть просто лайк и дизлайк, тоже включается в настройках.

Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, redissx сказал:

В версии 13.2 и так есть раздельные лайки и дизлайки, нужно просто включить в настройках в админке.

В версиях 10.3-13.1 есть просто лайк и дизлайк, тоже включается в настройках.

i6lJW7U.png

Тут включил так как и было, может не там смотрю?

А понял, в кладке комментов там включил тоже самое но сейчас вовсе исчезла кнопка

Ссылка на сообщение
Поделиться на других сайтах
22 минуты назад, vip34rus сказал:

i6lJW7U.png

Тут включил так как и было, может не там смотрю?

А понял, в кладке комментов там включил тоже самое но сейчас вовсе исчезла кнопка

Значит в вашем шаблоне этого просто не сделано.

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

Есть полноценная реализация для 4-го типа рейтинга?
Вообще, я изменил тег [rating-type-3] на [rating-type-4] и все вроде как работает. Но вот эти новые теги [rating-plus]/[rating-minus], {likes}/{dislikes} ведь надо использовать, или необязательно?
Если в будущем я откажусь от использования этого рейтинга, пропишу все на стандартных тегах DLE, выведется ли мне тот рейтинг (разлеленные лайки/дизлайки), который был подсчитан твоим скриптом, 
redissx?

Ссылка на сообщение
Поделиться на других сайтах
12 часов назад, sunx сказал:

Есть полноценная реализация для 4-го типа рейтинга?
Вообще, я изменил тег [rating-type-3] на [rating-type-4] и все вроде как работает. Но вот эти новые теги [rating-plus]/[rating-minus], {likes}/{dislikes} ведь надо использовать, или необязательно?
Если в будущем я откажусь от использования этого рейтинга, пропишу все на стандартных тегах DLE, выведется ли мне тот рейтинг (разлеленные лайки/дизлайки), который был подсчитан твоим скриптом, 
redissx?

Рейтинг 3 и 4 обратно совместимы.

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

Привет всем форумчанам и redissx, версия дле 11.1 установил рейтинг, все получилось, только у меня значения по нулям, при нажатии появляются цифры, при обновлении страницы опять все по нулям. У меня всегда стоял рейтинг 3 типа (нравится / не нравится), в чем может быть проблема?

 

 

Bezymeny_5.jpgBezymeny_2.jpg

 

 

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, sergey14 сказал:

Привет всем форумчанам и redissx, версия дле 11.1 установил рейтинг, все получилось, только у меня значения по нулям, при нажатии появляются цифры, при обновлении страницы опять все по нулям. У меня всегда стоял рейтинг 3 типа (нравится / не нравится), в чем может быть проблема?

 

Некорректные значения для расчета. Как если бы изначально стоял не рейтинг 3. Чтобы убедиться в этом, смотрите исходный код страницы, там вы увидите цифры количества голосов и общего рейтинга.

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

В исходном коде главной наблюдаю такие строки, но ничего не понимаю

<a href="#" title="Нравится(+)" onclick="doRate('1', '19240'); return false;">
<a href="#" title="Не нравится(-)" onclick="doRate('-1', '19240'); return false;">

 

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

В исходном коде главной наблюдаю такие строки, но ничего не понимаю


<a href="#" title="Нравится(+)" onclick="doRate('1', '19240'); return false;">

<a href="#" title="Не нравится(-)" onclick="doRate('-1', '19240'); return false;">

 

Надо смотреть то, что в

<div class="rate-data">{rating}{vote-num}</div>

 

И то только для того, чтобы удостовериться, так как проблема не в шаблоне, а в самих значениях рейтинга, которые хранятся в базе данных.

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

Наверное у меня шаблон очень древний. На примере одно сериала значения в исходном коде есть +268 и -294 но рейтинг их не видит

 

<div class="frate ignore-select" id="frate-11840">
                <div class="rate-plus" id="pluss-11840" onclick="doRateLD('plus', '11840');"><span class="fa fa-thumbs-up"></span><span class="rcount">33 935</span></div>
                <div class="rate-minus" id="minuss-11840" onclick="doRateLD('minus', '11840');"><span class="fa fa-thumbs-down"></span><span class="rcount">15</span></div>
                <div class="rate-data"><div id="ratig-layer-11840"><div class="main-sliders-rate ignore-select">
    <a href="#" title="Нравится(+)" onclick="doRate('1', '11840'); return false;">
        <span>
            <svg viewBox="61.9 84.9 200.8 194.4">
                <path d="M237,146c-4-0.8-8.8-0.8-11.2-0.8h-41V98.6c0-8-6.4-13.7-13.7-13.7h-19.3c-7.2,0-12.9,4.8-15.3,11.2l-11.2,47.4c0,0.8-1.6,3.2-1.6,3.2l-19.3,20.1c0,0-0.8,0.8-0.8,1.6c-0.8,0-1.6,0.8-1.6,0.8H78.8c-8.8,0-16.9,5.6-16.9,14.5v61c0,8.8,8,16.1,16.9,16.1h23.3c1.6,0,3.2-0.8,4.8-0.8l16.1,13.7c4,3.2,9.6,5.6,14.5,5.6h72.3c39.4,0,53-31.3,53-57v-41.8C261.1,158,245.8,148.4,237,146z M81.2,186.9h18.5v56.2H81.2L81.2,186.9L81.2,186.9z M243.4,222.3c0,11.2-3.2,36.9-34.5,36.9h-72.3c-0.8,0-2.4-0.8-2.4-0.8l-16.1-12.9v-0.8v-61v-1.6c0-0.8,0-1.6,0.8-1.6l19.3-20.1c3.2-3.2,5.6-7.2,6.4-11.2l10.4-44.2h9.6v43.4c0,8,7.2,14.5,15.3,14.5h45c2.4,0,5.6,0,6.4,0.8c1.6,0.8,10.4,4,10.4,16.1C243.4,180.5,243.4,222.3,243.4,222.3z"></path>
            </svg>
            268
        </span>
    </a>
    <a href="#" title="Не нравится(-)" onclick="doRate('-1', '11840'); return false;">
        <span>
            <svg viewBox="97.6 84.8 200.8 194.4">
                <path d="M298.4,183.6v-41.8c0-25.7-12.9-57-53-57h-72.3c-4.8,0-10.4,2.4-14.5,5.6l-16.1,13.7c-1.6-0.8-3.2-0.8-4.8-0.8h-23.3c-8.8,0-16.9,7.2-16.9,16.1v61c0,8.8,8,14.5,16.9,14.5h23.3c0.8,0,1.6,0.8,1.6,0.8s0,0.8,0.8,1.6l19.3,20.1c0.8,0.8,1.6,2.4,1.6,3.2l11.2,47.4c1.6,6.4,8,11.2,15.3,11.2h19.3c7.2,0,13.7-5.6,13.7-13.7v-45.8h41c2.4,0,7.2,0,11.2-0.8C283.1,215.7,298.4,206.1,298.4,183.6z M118.5,120.2H137v56.2h-18.5V120.2z M279.9,183.6c0,12.9-8.8,16.1-10.4,16.1c-1.6,0-4,0.8-6.4,0.8h-45c-8,0-15.3,6.4-15.3,14.5v43.4h-11.2l-10.4-44.2c-0.8-4-4-8-6.4-11.2l-19.3-20.1l-0.8-1.6v-1.6v-61v-0.8l16.1-12.9c0.8,0,1.6-0.8,2.4-0.8h72.3c31.3,0,34.5,25.7,34.5,36.9V183.6z"></path>
            </svg>
            294
        </span>

 

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, sergey14 сказал:

Наверное у меня шаблон очень древний. На примере одно сериала значения в исходном коде есть +268 и -294 но рейтинг их не видит

 


<div class="frate ignore-select" id="frate-11840">
                <div class="rate-plus" id="pluss-11840" onclick="doRateLD('plus', '11840');"><span class="fa fa-thumbs-up"></span><span class="rcount">33 935</span></div>
                <div class="rate-minus" id="minuss-11840" onclick="doRateLD('minus', '11840');"><span class="fa fa-thumbs-down"></span><span class="rcount">15</span></div>
                <div class="rate-data"><div id="ratig-layer-11840"><div class="main-sliders-rate ignore-select">
    <a href="#" title="Нравится(+)" onclick="doRate('1', '11840'); return false;">
        <span>
            <svg viewBox="61.9 84.9 200.8 194.4">
                <path d="M237,146c-4-0.8-8.8-0.8-11.2-0.8h-41V98.6c0-8-6.4-13.7-13.7-13.7h-19.3c-7.2,0-12.9,4.8-15.3,11.2l-11.2,47.4c0,0.8-1.6,3.2-1.6,3.2l-19.3,20.1c0,0-0.8,0.8-0.8,1.6c-0.8,0-1.6,0.8-1.6,0.8H78.8c-8.8,0-16.9,5.6-16.9,14.5v61c0,8.8,8,16.1,16.9,16.1h23.3c1.6,0,3.2-0.8,4.8-0.8l16.1,13.7c4,3.2,9.6,5.6,14.5,5.6h72.3c39.4,0,53-31.3,53-57v-41.8C261.1,158,245.8,148.4,237,146z M81.2,186.9h18.5v56.2H81.2L81.2,186.9L81.2,186.9z M243.4,222.3c0,11.2-3.2,36.9-34.5,36.9h-72.3c-0.8,0-2.4-0.8-2.4-0.8l-16.1-12.9v-0.8v-61v-1.6c0-0.8,0-1.6,0.8-1.6l19.3-20.1c3.2-3.2,5.6-7.2,6.4-11.2l10.4-44.2h9.6v43.4c0,8,7.2,14.5,15.3,14.5h45c2.4,0,5.6,0,6.4,0.8c1.6,0.8,10.4,4,10.4,16.1C243.4,180.5,243.4,222.3,243.4,222.3z"></path>
            </svg>
            268
        </span>
    </a>
    <a href="#" title="Не нравится(-)" onclick="doRate('-1', '11840'); return false;">
        <span>
            <svg viewBox="97.6 84.8 200.8 194.4">
                <path d="M298.4,183.6v-41.8c0-25.7-12.9-57-53-57h-72.3c-4.8,0-10.4,2.4-14.5,5.6l-16.1,13.7c-1.6-0.8-3.2-0.8-4.8-0.8h-23.3c-8.8,0-16.9,7.2-16.9,16.1v61c0,8.8,8,14.5,16.9,14.5h23.3c0.8,0,1.6,0.8,1.6,0.8s0,0.8,0.8,1.6l19.3,20.1c0.8,0.8,1.6,2.4,1.6,3.2l11.2,47.4c1.6,6.4,8,11.2,15.3,11.2h19.3c7.2,0,13.7-5.6,13.7-13.7v-45.8h41c2.4,0,7.2,0,11.2-0.8C283.1,215.7,298.4,206.1,298.4,183.6z M118.5,120.2H137v56.2h-18.5V120.2z M279.9,183.6c0,12.9-8.8,16.1-10.4,16.1c-1.6,0-4,0.8-6.4,0.8h-45c-8,0-15.3,6.4-15.3,14.5v43.4h-11.2l-10.4-44.2c-0.8-4-4-8-6.4-11.2l-19.3-20.1l-0.8-1.6v-1.6v-61v-0.8l16.1-12.9c0.8,0,1.6-0.8,2.4-0.8h72.3c31.3,0,34.5,25.7,34.5,36.9V183.6z"></path>
            </svg>
            294
        </span>

 

У вас модифицированы файлы ДЛЕ. Там должно быть подобное

<div class="rate-data"><span id="ratig-layer-1643" class="ignore-select"><span class="ratingtypeplusminus ignore-select ratingplus" >+8</span></span><span id="vote-num-id-1643" class="ignore-select">10</span></div>
			

Сравните с своим,  совсем другое же.

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

Заработало, может кому понадобится, версия ДЛЕ 11.1 у меня там фал functions.php нужно подправить, вот кусок кода который нужно вставить вместо старого

 

	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;

 

Изменено пользователем sergey14
Ссылка на сообщение
Поделиться на других сайтах
  • 4 месяца спустя...
В 13.11.2017 в 14:28, redissx сказал:


Еще интересный красочный вариант. Здесь добавлен вывод процента, который окрашивается в зеленый-красный в зависимости от высокий-низкий.

1510578555_cool-rating.png

1. в fullstory.tpl в нужное место ставим


            [rating-type-3]
            <div class="frate ignore-select" id="frate-{news-id}">
                <div class="rate-plus" id="pluss-{news-id}" onclick="doRateLD('plus', '{news-id}');"><span class="fa fa-thumbs-up"></span><span class="rcount">{views}</span></div>
                <div class="rate-minus" id="minuss-{news-id}" onclick="doRateLD('minus', '{news-id}');"><span class="fa fa-thumbs-down"></span><span class="rcount">{comments-num}</span></div>
                <div class="rate-data">{rating}{vote-num}</div>
            </div>
            [/rating-type-3]


2. в ваш css файл в конец

 


.frate {height:40px; line-height:24px; width:200px; position:relative; opacity:0;
display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;
-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}
.frate.done {opacity:1;}
.rate-data {display:none;}
.rate-plus, .rate-minus {cursor:pointer;}
.frate .fa {color:#3c0; display:inline-block; vertical-align:top; font-size: 24px; margin-right:10px;}
.rate-minus .fa {color:#f20404; position: relative;}
.frate div:hover .fa {animation: bounceRate  0.3s infinite linear; animation-direction: alternate;}
.rbar {height:6px; overflow:hidden; background-color:#f20404; border-radius:3px; position:absolute; left:0; bottom:0; width:100%;}
.rfill {width:50%; height:100%; position:absolute; left:0; top:0; background-color:#3c0; transition:width 1s linear;}
.rate-perc {font-size: 18px; font-weight: 700;}
.rate-perc.high {color:#3c0;}
.rate-perc.low {color:#f20404;}
	@keyframes bounceRate {
  from {transform: translate(0,0%);}
  to {transform: translate(0,-50%);}
}


3. в ваш js файл в конец


$(document).ready(function(){
    
    $('.frate').each(function(){
        var rate = $(this),
            rdata = rate.find('.rate-data'),
            rrate = parseInt(rdata.find('.ratingtypeplusminus').text(), 10),
            rvote = parseInt(rdata.find('span[id*=vote]').text(), 10);
            rate.append('<div class="rbar"><div class="rfill"></div></div>');
            rate.find('.rate-plus').after('<div class="rate-perc">0%</div>');
        if ( rvote >= rrate && rvote > 0 ) {
            var m = (rvote - rrate)/2,
                p = rvote - m,
                perc = Math.round(p/rvote*100);
            rate.find('.rate-plus span.rcount').html(p);
            rate.find('.rate-minus span.rcount').html(m);
            rate.find('.rfill').css({'width':''+perc+'%'});
            rate.find('.rate-perc').html(''+perc+'%');
            perc < 49 ? rate.find('.rate-perc').addClass('low') : rate.find('.rate-perc').addClass('high');
        } else {
            rate.find('.rate-plus span.rcount').html('0');
            rate.find('.rate-minus span.rcount').html('0');
            
        };
        rate.addClass('done');
    });
    
});
	function doRateLD( rate, id ) {
        ShowLoading('');
        $.get(dle_root + "engine/ajax/rating.php", { go_rate: rate, news_id: id, skin: dle_skin, user_hash: dle_login_hash }, function(data){
            HideLoading('');
            if ( data.success ) {
                var rating = data.rating;
                rating = rating.replace(/&lt;/g, "<");
                rating = rating.replace(/&gt;/g, ">");
                rating = rating.replace(/&amp;/g, "&");
                $("#ratig-layer-" + id).html(rating);
                $("#vote-num-id-" + id).html(data.votenum);
                var rt = parseInt($(rating).text()),
                    m = (data.votenum - rt)/2,
                    p = data.votenum - m,
                    perc = Math.round(p/data.votenum*100),
                    fRate = $("#frate-" + id);
                fRate.find('.rate-plus span.rcount').html(p);
                fRate.find('.rate-minus span.rcount').html(m);
                fRate.find('.rfill').css({'width':''+perc+'%'});
                fRate.find('.rate-perc').html(''+perc+'%');
            } else if (data.error) {DLEalert ( data.errorinfo, dle_info );}
        }, "json");
    };
    


4. подключаем иконки http://fontawesome.io/icons/ любым способом. Например, с cdn.
в main.tpl в секцию head добавляем


<script src="https://use.fontawesome.com/fe271d92aa.js"></script>

 

Как вывести количество лайков дизлайков в краткую новость ?

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, Koren616 сказал:

Как вывести количество лайков дизлайков в краткую новость ?

Включить рейтинг нравится и не нравится в свежей версии ДЛЕ и вывести по документации https://dle-news.ru/extras/online/all16.html

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

Всем привет!

Подскажите пожалуйста, возможно ли реализовать следующее:

Стоит рейтинг новостей 'Нравится' или 'Не нравится', он хорошо работает, но мне нужно вывести целое число, например 7.4

Когда ставлю {ratingscore} он выводит 0.8

А когда ставлю {rating} то выводит +331

DLE 14.1

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

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

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

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

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

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

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

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

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

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