Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

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

Тема в разделе "Хаки DLE", создана пользователем DLEPlugins, 15 окт 2016.

15.10.16 в 07:53
30.07.17 в 22:12
8
2.595
5
  1. TopicStarter Overlay
    DLEPlugins

    Кодер

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.608
    Лучших ответов:
    8
    Рейтинги:
    +1.195 / 9 / -0
    [​IMG]

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

    1. Открываем /engine/modules/function.php и ищем в нем код
    PHP:
    if( !$config['rating_type'] ) {
            if( 
    $rating AND $vote_num $rating round( ($rating $vote_num), );
            else 
    $rating 0;
            if (
    $rating $rating 0;
            
    $rating $rating 20;
    меняем на код
    PHP:
    if( !$config['rating_type'] ) {
           if( 
    $rating AND $vote_num $rating round( ($rating $vote_num), );
           else 
    $rating 4;
           if (
    $rating $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'] == $row['vote_num'] = 1;
           
            if ( 
    $row['vote_num'] && $row['allow_rate'] ) {
                
    $tpl->set'{rating-avg}'roundfloatval$row['rating'] ) / $row['vote_num'], ) );
            } 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>
    Вот и всё
     
    • Нравится Нравится x 5
    • Полезно Полезно x 1
  2. Sland

    PRO Users

    Регистрация:
    28 авг 2016
    Сообщения:
    305
    Лучших ответов:
    1
    Рейтинги:
    +47 / 1 / -0
    Привет, а вот с той разметкой которую ты ставил мне, это будет работать?
     
  3. TopicStarter Overlay
    DLEPlugins

    Кодер

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.608
    Лучших ответов:
    8
    Рейтинги:
    +1.195 / 9 / -0
    Да
     
  4. newdancer

    newdancer Посетитель

    Регистрация:
    8 мар 2016
    Сообщения:
    88
    Лучших ответов:
    0
    Рейтинги:
    +9 / 1 / -0
    возможно ли подобное реализовать с типом рейтинга 3?
     
  5. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    да! тут на форуме была формула перерасчета +/- в числовой рейтинг. по ней делай новые переменные и в шаблон добавляй разметку.
     
  6. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    кстати, только бинг нормально и всем сайтам показывает разметку в выдаче, яша и гугл как то выборочно это делают :(
    2016-10-15_18-38-09.png
     
  7. sas7110

    Команда форума VIP Кинотрафик v2

    Регистрация:
    25 окт 2015
    Сообщения:
    1.526
    Лучших ответов:
    0
    Рейтинги:
    +333 / 3 / -0
    Ребят, как сделать такую замечательную разметку с 3 рейтингом, а?
     
  8. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    вот тут есть формула :)
     
    • Нравится Нравится x 2
  9. Winston?!

    VIP Кинотрафик v2

    Регистрация:
    31 дек 2016
    Сообщения:
    1.256
    Лучших ответов:
    2
    Рейтинги:
    +106 / 11 / -0
    DomiTori не знаешь как разметить рейтинг нравится / не нравится? Многим будет полезно, т.к. на большом кол-ве сайтов используют такой рейтинг. Можешь помочь?
    byroot Там не написано как ее осуществлять и что нужно править...( js просто вставить в подключенный файл? Кстати, не подскажешь, каким методом ты пользуешься для разметки рейтинга?
     
    #9 Winston?!, 30 июл 2017
    Последнее редактирование: 30 июл 2017
Яндекс.Метрика