Main menu

Речь пойдет о том, как вывести рейтинг плагина extravote в поисковики, в частности Google и Яндекс. Выполнять мы это будем при помощи специальной разметки и использования микроформата данных. Такая разметка представляет собой способ пометки содержания страницы для определения поисковиками, и не только, специального типа информации, такого как рейтинг статьи, профиля, мероприятия, компании и т.п., навигации страниц, дату и многое другое. В данном конкретном случае мы разберем, как вывести рейтинг статей (плагином extravote) в поисковики именно так, как нам надо, не зависимо от того, где именно на странице выводится плагин. Чтобы объяснить зачем это нужно, да и что это вообще предоставлю пример проиндексированной страницы сайта кинопоиск гуглом... Сниппет рейтинга

Здесь мы видим, что сайт кинопоиска индексируется таким образом, что рейтинг выводится на страницах поиска. Собственно этого мы и хотим добиться от extravote.

Итак у нас есть Joomla! 1.5 и плагин extravote последней версии (обратите внимание, что пока мы работаем с J! 1.5). Чтобы выводить рейтинг в поисковики, нам нужно открыть файл /plugins/content/extravote.php и найти следующий код:
if ( $counter != -1 ) {
if ( $counter != 0 ) {
$html .= "( ";
if($rating_count!=1) {
$html .= $rating_count." ".JTEXT::_('Votes');
} else { 
$html .= $rating_count." ".JTEXT::_('Vote');
}
$html .=" )";
}
}
$html .="</small></span>";
 
return $html;
} 
И заменяем его наследующий:
<div itemscope itemtype=\"http://schema.org/Article\"> 
<span id=\"extravote_".$id."_".$xid."\" class=\"extravote-count\"><small> 
<div itemprop=\"aggregateRating\" 
itemscope itemtype=\"http://schema.org/AggregateRating\">"; 
 
 
if ( $counter != -1 ) { 
if ( $counter != 0 ) { 
$html .="Рейтинг "; 
} 
} 
$html .="<span itemprop=\"ratingValue\">"; 
 
if ( $counter != -1 ) { 
if ( $counter != 0 ) { 
$html .=number_format((intval($rating_sum) / intval( $rating_count )),1); 
 
} 
} 
$html .="</span>"; 
 
if ( $counter != -1 ) { 
if ( $counter != 0 ) { 
$html .=" из "; 
} 
} 
 
$html .="<meta itemprop=\"bestRating\" content=\"5\"><span itemprop=\"bestRating\">"; 
 
 
if ( $counter != -1 ) { 
if ( $counter != 0 ) { 
$html .=5; 
} 
} 
 
$html .="</span>"; 
if ( $counter != -1 ) { 
if ( $counter != 0 ) { 
$html .=". Голосов: "; 
} 
} 
 
$html .="<span itemprop=\"ratingCount\">"; 
 
if ( $counter != -1 ) { 
if ( $counter != 0 ) { 
$html .=$rating_count; 
 
} 
} 
$html .="</span></div></small></span></div></div>"; 
 
 
 
return $html; 
} 
Вот собственно и все с Joomla! 1.5 и последней версией плагина extravote. Проверить страницу можно здесь - Google Snippet Testing. Просто вводим адрес страницы и смотрим как будет отображаться вновь проиндексированная страница с плагином extravote. Получится должно что то вроде этого:
Сниппет рейтинга
Выкладываю уже измененную версию плагина. Скачать можно ниже по ссылке
Скачать


Для Joomla 2.5:

Находим следующий код:
 
<span class=\"extravote-info\" id=\"extravote_".$id."_".$xid."\">"; 
 
if ( $show_rating > 0 ) { 
if ( $rating_mode == 0 ) { 
$rating = round($rating*20) . '%';     
} else { 
$rating = number_format($rating,2);     
} 
$html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_LABEL_RATING', $rating); 
} 
 
if ( $show_counter > 0 ) { 
if($rating_count!=1) { 
$html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_LABEL_VOTES', $rating_count); 
} else {  
$html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_LABEL_VOTE', $rating_count); 
} 
} 
 
$html .="</span>"; 
$html .=" 
</".$container.">"; 
 
return $html; 
}
И заменяем его на нижеприведенный:
 
<span class=\"extravote-info\" id=\"extravote_".$id."_".$xid."\" itemprop=\"aggregateRating\" itemscope itemtype=\"http://schema.org/AggregateRating\">"; 
 
if ( $show_rating > 0 ) { 
if ( $rating_mode == 0 ) { 
$rating = round($rating*20) . '%';     
} else { 
$rating = number_format($rating,2);     
} 
$html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_LABEL_RATING', '<SPAN itemprop="ratingValue">'.$rating.'</SPAN>'); 
} 
 
if ( $show_counter > 0 ) { 
if($rating_count!=1) { 
$html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_LABEL_VOTES', '<SPAN itemprop="reviewCount">'.$rating_count.'</SPAN>'); 
} else {  
$html .= JTEXT::sprintf('PLG_CONTENT_EXTRAVOTE_LABEL_VOTE', '<SPAN itemprop="reviewCount">'.$rating_count.'</SPAN>'); 
} 
} 
 
$html .="</span>"; 
$html .=" 
</".$container.">"; 
 
return $html; 
}
Прикладываю мою, модифицированную версию плагина для Joomla 2.5. Скачать можно ниже. Она уже русифицирована и с соответствующей микроразметкой. А подробнее о модификации плагина для Joomla 2.5 можно почитать здесь

Скачать