Dismiss Notice
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

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

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

Discussion in 'Хаки DLE' started by DLEPlugins, Oct 15, 2016.

15.10.16 в 07:53
30.07.17 в 22:12
8
2,587
5
  1. TopicStarter Overlay
    DLEPlugins

    Кодер

    Joined:
    Nov 29, 2015
    Messages:
    1,608
    Best Answers:
    8
    Ratings:
    +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

    Joined:
    Aug 28, 2016
    Messages:
    305
    Best Answers:
    1
    Ratings:
    +47 / 1 / -0
    Привет, а вот с той разметкой которую ты ставил мне, это будет работать?
     
  3. TopicStarter Overlay
    DLEPlugins

    Кодер

    Joined:
    Nov 29, 2015
    Messages:
    1,608
    Best Answers:
    8
    Ratings:
    +1,195 / 9 / -0
    Да
     
  4. newdancer

    newdancer Посетитель

    Joined:
    Mar 8, 2016
    Messages:
    88
    Best Answers:
    0
    Ratings:
    +9 / 1 / -0
    возможно ли подобное реализовать с типом рейтинга 3?
     
  5. byroot

    Забанен

    Joined:
    Oct 10, 2015
    Messages:
    12,295
    Best Answers:
    54
    Ratings:
    +5,206 / 74 / -0
    да! тут на форуме была формула перерасчета +/- в числовой рейтинг. по ней делай новые переменные и в шаблон добавляй разметку.
     
  6. byroot

    Забанен

    Joined:
    Oct 10, 2015
    Messages:
    12,295
    Best Answers:
    54
    Ratings:
    +5,206 / 74 / -0
    кстати, только бинг нормально и всем сайтам показывает разметку в выдаче, яша и гугл как то выборочно это делают :(
    2016-10-15_18-38-09.png
     
  7. sas7110

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

    Joined:
    Oct 25, 2015
    Messages:
    1,526
    Best Answers:
    0
    Ratings:
    +333 / 3 / -0
    Ребят, как сделать такую замечательную разметку с 3 рейтингом, а?
     
  8. byroot

    Забанен

    Joined:
    Oct 10, 2015
    Messages:
    12,295
    Best Answers:
    54
    Ratings:
    +5,206 / 74 / -0
    вот тут есть формула :)
     
    • Нравится Нравится x 2
  9. Winston?!

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

    Joined:
    Dec 31, 2016
    Messages:
    1,256
    Best Answers:
    2
    Ratings:
    +106 / 11 / -0
    DomiTori не знаешь как разметить рейтинг нравится / не нравится? Многим будет полезно, т.к. на большом кол-ве сайтов используют такой рейтинг. Можешь помочь?
    byroot Там не написано как ее осуществлять и что нужно править...( js просто вставить в подключенный файл? Кстати, не подскажешь, каким методом ты пользуешься для разметки рейтинга?
     
    #9 Winston?!, Jul 30, 2017
    Last edited: Jul 30, 2017
Яндекс.Метрика