Хак Разметка aggregaterating звездочек для dle 11.1

tensey

:)
Прошёл марафон
Регистрация
10 Июл 2017
Сообщения
74
Реакции
44
Баллы
18


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

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;
далее ищем код

PHP:
<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>
меняем на код

PHP:
<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. Если вы не ставили еще никакой разметки, значит в самый верх, в первую строчку вставляем

PHP:
<div itemscope itemtype="http://schema.org/Movie">
(типы выбераем тут исходя из тематики вашего сайта)
в самый низ в качестве последней строчки вставляем

PHP:
</div>
если же вы уже ставили разметку то вышеописанное в пункте 3 делать не нужно.
Наконец выделяем все что у вас находится между

PHP:
[rating] тут ваш код[/rating]
и меняем на

PHP:
<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>
Готово!
 
  • Like
Реакции: Den
Сверху Снизу