X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Рейтинг материала в Google для DLE.
Sa[Y]moN
Sa[Y]moN
Topic Starter сообщение 1.12.2013, 21:12; Ответить: Sa[Y]moN
Сообщение #1


Почитал тему Рейтинг и оценка материала в сниппете гугла для укоз сайтов , и подумал, что не плохо было бы сделать тоже самое, но для DLE. После танцев с бубном вокруг исходного кода, я добился этого:

Прикрепленное изображение


Теперь рассказываю, как этого добиться.

Немного Информации:
- Метод был разработан и проверен на версия 9.6; 9,7; 10.0. Для ранних версий не испытывал.
- В настройка CMS необходимо выставить следующий параметр:
Настройка групп пользователей -> Гости -> Вкладка «Новости» -> Разрешить выставление рейтинга новостей: Да.

Настройка исходного кода:
После настройки CMS, нам нужно подредактировать несколько файлов. Начнем с файла /engine/modules/functions.php
Находим в нем код:
function ShowRating($id, $rating, $vote_num, $allow = true) {
    global $lang;
    
    if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
    else $rating = 0;
    $rating = $rating * 20;
    
    if( !$allow ) {
        
        $rated = <<<HTML
<div class="rating">
        <ul class="unit-rating">
        <li class="current-rating" style="width:{$rating}%;">{$rating}</li>
        </ul>
</div>
HTML;
        
        return $rated;
    }
    
    $rated = <<<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;
    
    return $rated;
}

function userrating($id) {


*если вы изменяли код, или он сам по себе не такой, как указан тут, мы находим строчку
function ShowRating($id, $rating, $vote_num, $allow = true) {

и меняем все вплоть до
function userrating($id) {


и заменяем на этот:

function ShowRating($id, $rating, $vote_num, $allow = true) {
    global $lang;

    if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
    else $rating = 4;
    $AVERrating = $rating;
    $rating = $rating * 17;

    if( !$allow ) {

        $rated = <<<HTML
<div class="rating">
        <ul class="unit-rating">
        <li class="current-rating" style="width:{$rating}px;">{$rating}</li>
        </ul>
</div>
HTML;

        return $rated;
    }

    $rated = <<<HTML
<div id='ratig-layer-{$id}'><div class="rating">
        <ul itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating" 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="best"><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
        </ul>
</div></div>
HTML;

    return $rated;
}

function userrating($id) {


Хочу сразу сказать, что код с небольшим сюрпризом. То-есть, каждая новость обязательно имеет 1 голос. Даже свеже-добавленная. Это для того, что бы Google не индексировал новости с нулевым рейтингом. Согласитесь, не красиво же смотрится, когда все звезды пустые. Да и Google может такую разметку не принять, мол: разметка есть, а рейтинга нет.
Ладно, с этим разобрались. Файл сохранили, и залили обратно на сервер.
Теперь нам нужен файл /engine/modules/show.full.php в котором находим код:

if( $row['allow_rate'] ) {

            $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]', "" );

        } else {


И меняем на:

if ( $row['vote_num'] == 0 ) $row['vote_num'] = 1;

        if( $row['allow_rate'] ) {

            $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=\"votes\" id=\"vote-num-id-".$row['id']."\">".$row['vote_num']."</span>" );
            $tpl->set( '[rating]', "" );
            $tpl->set( '[/rating]', "" );

        } else {


Сохраняем файл, и заливаем обратно на сервер.

Теперь открываем файл /templates/*название вашей темы*/fullstory.tpl и после {full-story} добавляем код:

[rating]<div itemscope itemtype="http://data-vocabulary.org/Review-aggregate"><div style="float:left;width:100px;">Рейтинг:</div>{rating}<div style="float:left;width:120px;">(голосов: {vote-num})</div></div>[/rating]


Все! Можем проверять свои старания по адресу: http://www.google.com/webmasters/tools/richsnippets
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
airman
airman
сообщение 2.12.2013, 20:06; Ответить: airman
Сообщение #2


хорошая фишка и полезная тема. зачислил на счет бонус :smile-thumb-up:


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sa[Y]moN
Sa[Y]moN
Topic Starter сообщение 3.12.2013, 2:15; Ответить: Sa[Y]moN
Сообщение #3


(birds)
хорошая фишка и полезная тема. зачислил на счет бонус :smile-thumb-up:

Спасибо, я старался.
Постараюсь продолжить в том же духе. :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Vlad2189
Vlad2189
сообщение 3.12.2013, 17:04; Ответить: Vlad2189
Сообщение #4


Теперь открываем файл /templates/*название вашей темы*/fullstory.tpl и после {full-story} добавляем код:

Почему именно после? Рейтинг можно поставить где угодно. Хоть в футере. А так молодец, хорошо поработал.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sa[Y]moN
Sa[Y]moN
Topic Starter сообщение 3.12.2013, 17:27; Ответить: Sa[Y]moN
Сообщение #5


(Vlad2189)
Теперь открываем файл /templates/*название вашей темы*/fullstory.tpl и после {full-story} добавляем код:

Почему именно после? Рейтинг можно поставить где угодно. Хоть в футере. А так молодец, хорошо поработал.

Привык что вечно рейтинг в конце материала. По логике: пользователь зашел на страницу - прочитал материал - и в конце выставил оценку. А так да, можно ставить где душе охота.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
strannik201325
strannik201325
сообщение 5.12.2013, 12:24; Ответить: strannik201325
Сообщение #6


Ты хорошо поработал. Когда можно ждать продолжения?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sa[Y]moN
Sa[Y]moN
Topic Starter сообщение 5.12.2013, 16:15; Ответить: Sa[Y]moN
Сообщение #7


strannik201325, Спасибо. Продолжение Хлебные Крошки в выдаче Google для DLE , и позже постараюсь написать по разметке изображений.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Партнерская программа для Эзотерики, Магии, Таро
партнерка для эзотерики
0 LiveExpert 353 Вчера, 15:13
автор: LiveExpert
Открытая тема (нет новых ответов) Партнерская программа для Эзотерики, Магии, Таро
партнерка для эзотерики
0 LiveExpert 326 Вчера, 15:13
автор: LiveExpert
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыAzinomoney.com - гемблинг-партнерка с 65%RS для каждого
Гарантированный заработок на гемблинг-трафике
65 AzinoMoney 29183 27.3.2024, 19:10
автор: AzinoMoney
Горячая тема (нет новых ответов) Делаю полностью уникальный дизайн для сайтов!
46 AlexDIZ 93484 26.3.2024, 20:03
автор: AlexDIZ
Открытая тема (нет новых ответов) Большие ставки для кликов в Я.Директ. Как удешевить?
2 rownong27 1121 26.3.2024, 14:13
автор: knezevolk


 



RSS Текстовая версия Сейчас: 29.3.2024, 3:44
Дизайн