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

Разметка aggregaterating звездочек для dle 11.1 (очередной вариант)

DLEPlugins

Кодер
Регистрация
29 Ноя 2015
Сообщения
1.601
Рейтинг реакций
968
Баллы
113
1/3
Автор темы
e555f17d9c594df464c978bfd97197cb.png


Всего правим три файла.

1. Открываем /engine/modules/function.php и ищем в нем код
PHP:
if( !$config['rating_type'] ) {
        if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
        else $rating = 0;
        if ($rating < 0 ) $rating = 0;
        $rating = $rating * 20;
меняем на код
PHP:
if( !$config['rating_type'] ) {
       if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
       else $rating = 4;
       if ($rating < 0 ) $rating = 0;
       $AVERrating = $rating;
       $rating = $rating * 17;
далее ищем код
HTML:
<div id='ratig-layer-{$id}'><div class="rating">
        <ul class="unit-rating">
        <li class="current-rating" style="width:{$rating}%;">{$rating}</li>
        <li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
        <li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
        <li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
        <li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
        <li><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
        </ul>
</div></div>
меняем на код
HTML:
<div id='ratig-layer-{$id}'><div class="rating">
        <ul class="unit-rating">
        <li itemprop="average" class="current-rating" style="width:{$rating}px;">{$AVERrating}</li>
        <li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
        <li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
        <li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
        <li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
        <li itemprop="bestRating"><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
        </ul>
</div></div>

2. Открываем engine/modules/show.full.php и ищем код
PHP:
if( $row['allow_rate'] ) {
ВЫШЕ вставляем
PHP:
        if ( $row['vote_num'] == 0 ) $row['vote_num'] = 1;
       
        if ( $row['vote_num'] && $row['allow_rate'] ) {
            $tpl->set( '{rating-avg}', round( floatval( $row['rating'] ) / $row['vote_num'], 1 ) );
        } else {
            $tpl->set( '{rating-avg}', "" );
        }
далее ищем код
PHP:
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
            $tpl->set( '{vote-num}', "<span id=\"vote-num-id-".$row['id']."\">".$row['vote_num']."</span>" );
            $tpl->set( '[rating]', "" );
            $tpl->set( '[/rating]', "" );
меняем его на код
PHP:
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
            $tpl->set( '{vote-num}', "<span itemprop=\"reviewCount\" id=\"vote-num-id-{$row['id']}\">".$row['vote_num']."</span>" );
            $tpl->set( '[rating]', "" );
            $tpl->set( '[/rating]', "" );

3. Открываем fullstory.tpl вашего шаблона.
Полная новость должна быть размечена каким-нибудь типом от schema. Если вы не ставили еще никакой разметки, значит в самый верх, в первую строчку вставляем
HTML:
<div itemscope itemtype="http://schema.org/Movie">
(типы выбераем тут исходя из тематики вашего сайта)
в самый низ в качестве последней строчки вставляем
PHP:
</div>
если же вы уже ставили разметку то вышеописанное в пункте 3 делать не нужно.
Наконец выделяем все что у вас находится между
HTML:
[rating] тут ваш код[/rating]
и меняем на
HTML:
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
                [rating]{rating}<div style="float:left;width:120px;">(Oy Sayısı: {vote-num} Ortalama:<span itemprop="ratingValue">{rating-avg}.0</span>)<meta itemprop="worstRating" content="0"/></div>[/rating]
                 </div>

Вот и всё
 
Привет, а вот с той разметкой которую ты ставил мне, это будет работать?
 
возможно ли подобное реализовать с типом рейтинга 3?
 
возможно ли подобное реализовать с типом рейтинга 3?
да! тут на форуме была формула перерасчета +/- в числовой рейтинг. по ней делай новые переменные и в шаблон добавляй разметку.
 
кстати, только бинг нормально и всем сайтам показывает разметку в выдаче, яша и гугл как то выборочно это делают 🙁
2016-10-15_18-38-09.png
 
Ребят, как сделать такую замечательную разметку с 3 рейтингом, а?
 
DomiTori не знаешь как разметить рейтинг нравится / не нравится? Многим будет полезно, т.к. на большом кол-ве сайтов используют такой рейтинг. Можешь помочь?
byroot Там не написано как ее осуществлять и что нужно править...( js просто вставить в подключенный файл? Кстати, не подскажешь, каким методом ты пользуешься для разметки рейтинга?
 
Последнее редактирование:

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

Назад
Сверху