Редактор темы

Реклама
Реклама

[seo модуль] multi rating by sander + aggregaterating by schema = ♥

DLEPlugins

Кодер
Регистрация
29 Ноя 2015
Сообщения
1.601
Рейтинг реакций
968
Баллы
113
1/3
Автор темы
Об этой разработке Sander'a слышал наверное каждый. И предназначен он для тех, кто хочет внедрить AggregateRating на свой сайт, при этом по разным причинам не хочет использовать первый тип рейтинга DLE - звездочки, как например я, использующий нравиться-не нравиться. Для тех же у кого первый тип рейтинга - ставьте это.
В модуле я выставил для новостей без оценок и голосов людей оценку 10.0 и 1 голос, для того чтоб гугл не матюкался при проверке в валидаторе. Также в код вывода блока рейтинга и итоговой оценки внедрил микроразметку рейтинга AggregateRating, сделал utf8 версию мода и дополнительный стиль.

Вот скрин с валидатора
bd53c8f9e6049445b9c15a1d74a99192.jpg


Установка:

1. Выполнить запрос в бд
Код:
ALTER TABLE `dle_post` ADD `m_rating` VARCHAR( 255 ) NOT NULL ;
CREATE TABLE `m_rating` (`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`news_id` INT( 6 ) NOT NULL ,`ip` VARCHAR( 15 ) NOT NULL ,`member` VARCHAR( 70 ) NOT NULL ,`area` VARCHAR( 255 ) NOT NULL ,INDEX ( `news_id` ) );

2. Залить папку engine к себе на сервер. Подключить к шаблону файл m_rating.js. Залить файл m_load.gif в папку images в папке с вашим шаблоном. В styles.css или другой подключенный к стилю шаб в самый низ вставить один из предложенных стилей

Стандартный
c9d6e0ccf5bfc572cdf539b14109cb94.jpg


Код:
/* Весь блок*/
.m-rating-area{height:80px;display:inline-block;margin:15px 0;padding-left:90px;border:1px solid #ddd;position:relative;}
.m-error{position:absolute;top:5px;right:5px;padding:0 15px;display:none;border:1px solid #db4a39;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;font:normal 12px/28px Arial;color:#444;}
.m-load{background:#f0f0f0 url('{THEME}/images/m_load.gif') 50% 50% no-repeat !important;}

    /* Суммарный рейтинг */
    .m-rating-rate{float:left;margin-left:-90px;width:80px;border-right:1px solid #ddd;font:bold 27px/60px Arial;text-align:center;color:#777;height:80px;text-shadow:0 1px #fff;-moz-box-shadow:inset 0 1px 1px #fcfcfc;-webkit-box-shadow:inset 0 1px 1px #fcfcfc;box-shadow:inset 0 1px 1px #fcfcfc;}
        /* Количество голосов в суммарном рейтинге */
        .m-rating-rate-votes{font:normal 11px/20px Arial;margin-top:-15px;text-shadow:none;}

    /* Разбивкав 2 колонки */
    .m-rating-column{width:180px;float:left;height:80px;}
        /* Область одного рейтинга */
        .m-rating-field{padding:5px 0 5px 40px;height:30px;}
            /* Оценка */
            .m-rating-value{float:left;cursor:pointer;margin-left:-40px;width:30px;height:30px;color:#fff;font:bold 15px/30px Arial;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 #fff;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}
            .m-rating-field:hover .m-rating-value{background:#ef622a;}

            /* Сам рейтинг */
            .m-rating{margin:0;padding:0;list-style:none;}
            .m-rating:after{content:"";display:table;clear:both;}
                .m-rating li{float:left;padding:0 1px;}
                    .m-rating li span{display:block;width:10px;height:10px;border-radius:5px;background:#ccc;text-indent:-10000px;cursor:pointer;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.25), 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.25), 0 1px 0 #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.25), 0 1px 0 #fff;}
                .m-rating li.m-current span{background:#44a0de;}
                .m-rating li.m-hover span{background:#ef622a}

/* CSS3 gradients & backgrounds */
.m-rating-area{
    background:#fcfcfc;
    background: -moz-linear-gradient(top,  rgba(253,253,253,1) 0%, rgba(250,250,250,1) 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(253,253,253,1)), color-stop(100%,rgba(250,250,250,1)));
    background: -webkit-linear-gradient(top,  rgba(253,253,253,1) 0%,rgba(250,250,250,1) 100%);
    background: -o-linear-gradient(top,  rgba(253,253,253,1) 0%,rgba(250,250,250,1) 100%);
    background: -ms-linear-gradient(top,  rgba(253,253,253,1) 0%,rgba(250,250,250,1) 100%);
    background: linear-gradient(to bottom,  rgba(253,253,253,1) 0%,rgba(250,250,250,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#fafafa',GradientType=0 );
}
.m-rating-rate{
    background:#f0f0f0;
    background: -moz-linear-gradient(top,  rgba(245,245,245,1) 0%, rgba(234,234,234,1) 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(245,245,245,1)), color-stop(100%,rgba(234,234,234,1)));
    background: -webkit-linear-gradient(top,  rgba(245,245,245,1) 0%,rgba(234,234,234,1) 100%);
    background: -o-linear-gradient(top,  rgba(245,245,245,1) 0%,rgba(234,234,234,1) 100%);
    background: -ms-linear-gradient(top,  rgba(245,245,245,1) 0%,rgba(234,234,234,1) 100%);
    background: linear-gradient(to bottom,  rgba(245,245,245,1) 0%,rgba(234,234,234,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eaeaea',GradientType=0 );
}
.m-rating-value{
    background:#44a0de;
    background: -moz-linear-gradient(top,  rgba(72,169,234,1) 0%, rgba(64,151,209,1) 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(72,169,234,1)), color-stop(100%,rgba(64,151,209,1)));
    background: -webkit-linear-gradient(top,  rgba(72,169,234,1) 0%,rgba(64,151,209,1) 100%);
    background: -o-linear-gradient(top,  rgba(72,169,234,1) 0%,rgba(64,151,209,1) 100%);
    background: -ms-linear-gradient(top,  rgba(72,169,234,1) 0%,rgba(64,151,209,1) 100%);
    background: linear-gradient(to bottom,  rgba(72,169,234,1) 0%,rgba(64,151,209,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#48a9ea', endColorstr='#4097d1',GradientType=0 );
}

.m-error{
    background:#fafafa;

    background: -moz-linear-gradient(top,  rgba(255,255,255,1) 0%, rgba(245,245,245,1) 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(245,245,245,1)));
    background: -webkit-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(245,245,245,1) 100%);
    background: -o-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(245,245,245,1) 100%);
    background: -ms-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(245,245,245,1) 100%);
    background: linear-gradient(to bottom,  rgba(255,255,255,1) 0%,rgba(245,245,245,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f5f5f5',GradientType=0 );
}

Для узких блоков как у меня
d41564cd1dedaf24217e6374c24dfe1c.jpg


Код:
/* Весь блок*/
.m-rating-area{display:inline-block;margin:15px 0;padding-left:90px;border:1px solid #ddd;position:relative;}
.m-error{position:absolute;top:5px;right:5px;padding:0 15px;display:none;border:1px solid #db4a39;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;font:normal 12px/28px Arial;color:#444;}
.m-load{background:#f0f0f0 url('{THEME}/images/m_load.gif') 50% 50% no-repeat !important;}

    /* Суммарный рейтинг */
    .m-rating-rate{float:left;margin-left:-90px;width:80px;border-right:1px solid #ddd;font:bold 27px/60px Arial;text-align:center;color:#777;height:80px;text-shadow:0 1px #fff;-moz-box-shadow:inset 0 1px 1px #fcfcfc;-webkit-box-shadow:inset 0 1px 1px #fcfcfc;box-shadow:inset 0 1px 1px #fcfcfc;}
        /* Количество голосов в суммарном рейтинге */
        .m-rating-rate-votes{font:normal 11px/20px Arial;margin-top:-15px;text-shadow:none;}

    /* Разбивкав 2 колонки */
    .m-rating-column{width:180px;float:left;height:80px;}
        /* Область одного рейтинга */
        .m-rating-field{padding:5px 0 5px 40px;}
            /* Оценка */
            .m-rating-value{float:left;cursor:pointer;margin-left:-40px;width:30px;height:30px;color:#fff;font:bold 15px/30px Arial;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 #fff;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}
            .m-rating-field:hover .m-rating-value{background:#ef622a;}

            /* Сам рейтинг */
            .m-rating{margin:0;padding:0;list-style:none;}
            .m-rating:after{content:"";display:table;clear:both;}
                .m-rating li{float:left;padding:0 1px;}
                    .m-rating li span{display:block;width:10px;height:10px;border-radius:5px;background:#ccc;text-indent:-10000px;cursor:pointer;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.25), 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.25), 0 1px 0 #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.25), 0 1px 0 #fff;}
                .m-rating li.m-current span{background:#44a0de;}
                .m-rating li.m-hover span{background:#ef622a}

/* CSS3 gradients & backgrounds */
.m-rating-area{
    background:#fcfcfc;
    background: -moz-linear-gradient(top,  rgba(253,253,253,1) 0%, rgba(250,250,250,1) 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(253,253,253,1)), color-stop(100%,rgba(250,250,250,1)));
    background: -webkit-linear-gradient(top,  rgba(253,253,253,1) 0%,rgba(250,250,250,1) 100%);
    background: -o-linear-gradient(top,  rgba(253,253,253,1) 0%,rgba(250,250,250,1) 100%);
    background: -ms-linear-gradient(top,  rgba(253,253,253,1) 0%,rgba(250,250,250,1) 100%);
    background: linear-gradient(to bottom,  rgba(253,253,253,1) 0%,rgba(250,250,250,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#fafafa',GradientType=0 );
}
.m-rating-rate{
    background:#f0f0f0;
    background: -moz-linear-gradient(top,  rgba(245,245,245,1) 0%, rgba(234,234,234,1) 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(245,245,245,1)), color-stop(100%,rgba(234,234,234,1)));
    background: -webkit-linear-gradient(top,  rgba(245,245,245,1) 0%,rgba(234,234,234,1) 100%);
    background: -o-linear-gradient(top,  rgba(245,245,245,1) 0%,rgba(234,234,234,1) 100%);
    background: -ms-linear-gradient(top,  rgba(245,245,245,1) 0%,rgba(234,234,234,1) 100%);
    background: linear-gradient(to bottom,  rgba(245,245,245,1) 0%,rgba(234,234,234,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eaeaea',GradientType=0 );
}
.m-rating-value{
    background:#44a0de;
    background: -moz-linear-gradient(top,  rgba(72,169,234,1) 0%, rgba(64,151,209,1) 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(72,169,234,1)), color-stop(100%,rgba(64,151,209,1)));
    background: -webkit-linear-gradient(top,  rgba(72,169,234,1) 0%,rgba(64,151,209,1) 100%);
    background: -o-linear-gradient(top,  rgba(72,169,234,1) 0%,rgba(64,151,209,1) 100%);
    background: -ms-linear-gradient(top,  rgba(72,169,234,1) 0%,rgba(64,151,209,1) 100%);
    background: linear-gradient(to bottom,  rgba(72,169,234,1) 0%,rgba(64,151,209,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#48a9ea', endColorstr='#4097d1',GradientType=0 );
}

.m-error{
    background:#fafafa;

    background: -moz-linear-gradient(top,  rgba(255,255,255,1) 0%, rgba(245,245,245,1) 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(245,245,245,1)));
    background: -webkit-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(245,245,245,1) 100%);
    background: -o-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(245,245,245,1) 100%);
    background: -ms-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(245,245,245,1) 100%);
    background: linear-gradient(to bottom,  rgba(255,255,255,1) 0%,rgba(245,245,245,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f5f5f5',GradientType=0 );
}

3. В файле шаблона fullstory.tpl выводить тегом:
Код:
{include file="/engine/modules/m_rating.php"}

Шаблон вывода рейтинга в файле engine/modules/m_rating.php
В файле engine/ajax/m_rating.php в самом верху ввести свои имена рейтингов. Это защита от вредителей.
 

Вложения

Если у кого рейтинг от @Gameer :
<div style="height:50px;line-height:35px;font-size:22pt;text-align:center;margin-top:20px;">
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" style="display:none">
<span itemprop="ratingValue">{ratingValue}</span>
<meta itemprop="bestRating" content="10.0">
<meta itemprop="worstRating" content="1.0">
<meta itemprop="ratingCount" content="{ratingCount}">
</div>
[rating-plus]{rating} <i class="glyphicon glyphicon-thumbs-up" style="color:#81b280;font-size:20pt;"> </i>[/rating-plus]&nbsp;
[rating-minus]<i class="glyphicon glyphicon-thumbs-down" style="color:#b75f64;font-size:20pt;"> </i> {bad_rating}[/rating-minus]
</div>

/engine/modules/show.full.php найти:
PHP:
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );

Выше:
PHP:
// Schema.org Rating
if ( $row['rating'] < 200 OR $row['rating'] >= 200 ) $ratingVal = 3; $row['rating']++;
if ( $row['rating'] >= 300 ) $ratingVal = 5;
if ( $row['rating'] >= 400 ) $ratingVal = 7;
if ( $row['rating'] >= 500 ) $ratingVal = 9;
if ( $row['rating'] >= 600 ) $ratingVal = 10;

Найти:
PHP:
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );

Ниже:
PHP:
$tpl->set( '{ratingValue}', $ratingVal );
$tpl->set( '{ratingCount}', $row['rating'] );

Найти:
PHP:
$tpl->set( '{rating}', "" );

Ниже:
PHP:
$tpl->set( '{ratingValue}', "");
$tpl->set( '{ratingCount}', "");

upload_2016-5-15_14-9-14.png

upload_2016-5-15_14-10-42.png
 
@DomiTori,
вставлю свои 5 копеек. для себя давно сделал этот рейтинг под схему.

а это, для полноты
для полной красоты, вот что нужно сделать
меняем
Код:
    <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" class="m-rating-rate">
        <span itemprop="ratingValue">{$rating->total['rate']}</span>
        <meta itemprop="bestRating" content="10.0"/>
        <meta itemprop="worstRating" content="1.0"/>
        <div class="m-rating-rate-votes"><span itemprop="ratingCount">{$rating->total['votes']}</span> оценок</div>
    </div>
на
Код:
    <div class="m-rating-rate"">
        <span itemprop="ratingValue">{$rating->total['rate']}</span>
        <div class="m-rating-rate-votes"><span itemprop="ratingCount">{$rating->total['votes']}</span> оценок</div>
        <meta itemprop="bestRating" content="10">
        <meta itemprop="worstRating" content="0">
    </div>
и это
Код:
</div>
HTML;

if(!$is_ajax) echo "<div class=\"m-rating-area ignore-select\" data-id=\"{$row['id']}\">{$echo}</div>";

?>
на это
Код:
        <meta itemprop="itemReviewed" value="{$row['title']}">
    </div>

HTML;

if(!$is_ajax) echo "<div class=\"m-rating-area ignore-select\" data-id=\"{$row['id']}\" itemprop=\"aggregateRating\" itemscope itemtype=\"http://schema.org/AggregateRating\">{$echo}</div>";
 
Кто может подсказать, в чем дело. Установил модуль, все отображается корректно, только сам рейтинг не выставляется. Выбрал к примеру 10, нажимаешь, а толку ноль.
 
я вот не могу понять где редактировать эти значения? мне допустим атмосфера не нужна... хочу какие то другие значения поставить
 
Последнее редактирование:
seasone да уже нашел... как то протупил но у меня в нотпаде оно таким бесцветным кодом показано что сначала не заметил)))
 
seasone да уже нашел... как то протупил но у меня в нотпаде оно таким бесцветным кодом показано что сначала не заметил)))
выбирай в нотепаде язык -> H -> HTML
и будет тебе счастье
 
Andrij он сам определяет язык при открытии файлов с всякими расширениями php и тд)
 
Код:
ALTER TABLE `dle_post` ADD `m_rating` VARCHAR( 255 ) NOT NULL ;
CREATE TABLE `m_rating` (`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`news_id` INT( 6 ) NOT NULL ,`ip` VARCHAR( 15 ) NOT NULL ,`member` VARCHAR( 70 ) NOT NULL ,`area` VARCHAR( 255 ) NOT NULL ,INDEX ( `news_id` ) );
Подскажите как сделать запрос к БД?
 
Roman.U зайти в бд и нажать запрос, вставить в строчку этот код и нажать ок 😀
 
У меня тоже рейтинг не выставляется, запрос сделан в бд в чём косяк?
Красиво конечно смотрится но .....удаляю, не работает выставление рейтинга
 
Последнее редактирование:
У меня тоже рейтинг не выставляется, запрос сделан в бд в чём косяк?
Красиво конечно смотрится но .....удаляю, не работает выставление рейтинга
Тогда точно глючный модуль.
 
косяки у вас с скриптами, или конфликт с уже подключенными, либо попросту не подключили.
 
У кого не работает, не правильно подрубили js.
Вставлять его нужно перед </body>
 
Посмотреть на рейтинг вроде сохраняет а в доп поле не записывает.Как можно сделать что бы в поле записывал?
upload_2018-7-26_21-4-32.png
 

Похожие темы Последние темы Популярные темы

Назад
Сверху