|
ELLE
|
 |
« : 15.01.2012, 18:27:40 » |
|
Делаем сайты на Joomla полезными для людей и оптимизированными для Google, Yandex, Bing, Yahoo...Специальная разметка страниц (или шаблонов Joomla и доп. расширений) представляет собой способ пометки содержания для определения специального типа информации, такого как отзывы, информация о человеке и мероприятия и т.д. Каждый тип информации описывает определенный тип элемента. Подробнее в справке Google: микроданные, микроформаты, о языке RDFa. Здесь различия лишь в методах и способах разметки, но суть по прежнему в том что нужно править шаблоны Joomla или компонентов, модулей, которые вы используете. http://microformats.org/ | http://schema.org/ и ruschema.org | RDFa | информация от Google | информация от YandexДля Joomla создан специальный компонент Joomla4Schema.org и плагин для редактора JCE, который позволяет внедрять разметку в материалы Joomla. Как это работает - посмотреть можно здесь.Скачать Joomla4Schema.org можно с оф. сайта разработчика, здесь ->(PS:я не проверяла, если кто поставит его - отпишитесь пожалуйста как работает, возникли ли какие-либо проблемы) Предлагаю в этой теме собирать готовые решения оптимизации расширенных описаний (Rich snippets) для Joomla.Проверяем разметку - Rich Snippets Testing Tool BetaВнимание! Крайне не рекомендуется устанавливать фейковые расширенные описания (приравнивается к поисковому спаму)!Недавно Google ввел форму обратной связи для жалоб о злоупотреблениях в сниппетах, которые направлены на обман пользователей. Разметка: mod_breadcrumbs (Joomla 1.5, 1.7) Формат: RDFa Joomla 1.7 Править нужно файл, который находится здесь /tempates/ваш_шаблон/html/mod_breadcrumbs/default.php. Если шаблон не переопределен, то исходник можно взять отсюда - /modules/mod_breadcrumbs/tmpl/default.php и поместить по указанному пути в вашем шаблоне Joomla, который вы используете. <?php // no direct access defined('_JEXEC') or die; ?> <div class="breadcrumbs<?php echo $moduleclass_sfx; ?>"> <div xmlns:v="http://rdf.data-vocabulary.org/#"> <?php if ($params->get('showHere', 1)) { echo '<span class="showHere">' .JText::_('MOD_BREADCRUMBS_HERE').'</span>'; } ?> <?php for ($i = 0; $i < $count; $i ++) : // If not the last item in the breadcrumbs add the separator if ($i < $count -1) { if (!empty($list[$i]->link)) { echo '<span typeof="v:Breadcrumb"><a href="'.$list[$i]->link.'" rel="v:url" property="v:title">'.$list[$i]->name.'</a></span>'; } else { echo '<span>'; echo $list[$i]->name; echo '</span>'; } if($i < $count -2){ echo ' '.$separator.' '; } } elseif ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true if($i > 0){ echo ' '.$separator.' '; } echo '<span>'; echo $list[$i]->name; echo '</span>'; } endfor; ?> </div> </div> Joomla 1.5 <?php // no direct access defined('_JEXEC') or die('Restricted access'); ?> <span class="breadcrumbs pathway"> <div xmlns:v="http://rdf.data-vocabulary.org/#"> <?php for ($i = 0; $i < $count; $i ++) : // If not the last item in the breadcrumbs add the separator if ($i < $count -1) { if(!empty($list[$i]->link)) { echo '<span typeof="v:Breadcrumb"><a href="'.$list[$i]->link.'" rel="v:url" property="v:title">'.$list[$i]->name.'</a></span>'; } else { echo $list[$i]->name; } echo ' '.$separator.' '; } else if ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true echo $list[$i]->name; } endfor; ?> </div> </span> В исходном коде это будет выглядеть так - <div xmlns:v="http://rdf.data-vocabulary.org/#"> <span typeof="v:Breadcrumb"> <a href="/razdel.html" rel="v:url" property="v:title">Раздел</a></span> > <span typeof="v:Breadcrumb"> <a href="/razdel/kategoriya.html" rel="v:url" property="v:title">Категория</a></span> > Статья </div> Смотрим результат  Если у Вас есть готовое решение указываем что Мы размечаем и под какой формат разметка: микроданные, микроформаты, RDFa, schema.org.
|
|
|
|
« Последнее редактирование: 29.02.2012, 18:22:20 от ELLE »
|
Записан
|
|
|
|
| |
ArtGPA
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 36
ArtGPA
|
 |
« Ответ #1 : 26.01.2012, 14:16:49 » |
|
В планах разметка VirtueMart и JoomShopping под разные форматы, так что присоединяйтесь! И так начну  . Разметка: breadcrumbs Формат: микроданные HTML5 Нашел в нете, вообще решение предлагается в качестве модуля вот ссылка, но я решил для себя зачем ставить ещё один модуль если это копия модуля mod_breadcrumbs. Чтобы не лесть в ядро Joomla, идем по пути: templates/ваш_шаблон/html/mod_breadcrumbs/default.phpи правим этот файл. Если у вас нет такой папки создаем её или берем отсюда modules/mod_breadcrumbs всё лишнее с папки удаляем в ней должен остаться только файл default.phpНемного подправил код теперь при проверке нет ошибок! <?php // no direct access defined('_JEXEC') or die; ?> <div id="breadcrumb"> <?php if ($params->get('showHere', 1)) { echo '<span class="showHere">' .JText::_('MOD_BREADCRUMBS_HERE').'</span>'; } ?> <?php for ($i = 0; $i < $count; $i ++) :
// If not the last item in the breadcrumbs add the separator if ($i < $count -1) { if (!empty($list[$i]->link)) { echo '<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="'.$list[$i]->link.'" class="pathway" itemprop="url"><span itemprop="title">'.$list[$i]->name.'</span></a></div>'; } else { echo '<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="'.$list[$i]->link.'" class="pathway" itemprop="url">'; echo $list[$i]->name; echo '<span itemprop="title">'.$list[$i]->name.'</span></a></div>'; } if($i < $count -2){ echo ' '.$separator.' '; } } elseif ($params->get('showLast', 1)) { // when $i == $count -1 and 'showLast' is true if($i > 0){ echo ' '.$separator.' '; } echo '<strong>'; echo $list[$i]->name; echo '</strong>'; } endfor; ?> </div>
Сохраняем. И в таблицу CSS добавляем такую строчку: #breadcrumb div {display:inline;} В итоге мы получаем сниппет как на картинке выше.
|
|
|
|
« Последнее редактирование: 30.03.2012, 18:22:07 от ArtGPA »
|
Записан
|
|
|
|
General-Beck
Новичок
Репутация: +0/-0
Offline
Сообщений: 2
|
 |
« Ответ #2 : 22.02.2012, 10:41:43 » |
|
на заметку, выключаем все редакторы, правим страницу "от руки" и с itemscope в 2.5 надо обязательно прописать itemscope="" З.Ы. это если правим материал пример http://uk-td-kuzbass.ru/карта-партнера.html на сайте использованы упомянутые ранее breadcrumbs и http://schema.org/Organization при проверке валидаторами яндекса и Google пришлось вынести postalAddress geo отдельно яшка сурово подходит к прверке и идет по порядку по всем полям, Google выдает предупреждения, бинг жрет все в планах занятся Product влидатор яндекса в итоге не видит postalCode и geo
|
|
|
|
« Последнее редактирование: 22.02.2012, 10:46:46 от General-Beck »
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #3 : 28.02.2012, 16:19:14 » |
|
Править нужно файл, который находится здесь /modules/mod_breadcrumbs/tmpl/default.php то есть это и есть дефолтный шаблон вывода крошек на вашем сайте. Более корректно не править указанный файл, а создать переопределить шаблон вывода модуля в шаблоне сайта (создать файл /tempates/название-вашего-шаблона/html/mod_breadcrumbs/default.php). Это позволит и достичь желаемого результата и никак не помешает обновлению Joomla.
|
|
|
|
|
Записан
|
|
|
|
|
ELLE
|
 |
« Ответ #4 : 28.02.2012, 22:32:56 » |
|
согласна :-)
|
|
|
|
|
Записан
|
|
|
|
|
ELLE
|
 |
« Ответ #5 : 28.02.2012, 23:28:13 » |
|
Звезды в сниппетах Google Я использую в интернет магазине VirtueMart, в карточке товара. В принципе можно использовать и в обычных материалах Joomla. Я не использую встроенный рейтинг VM, реализовано с помощью плагина Extravote. Прочитать подробно о реализации рейтинга для товаров в VirtueMart можно здесь (часть первая). Разметка: плагин рейтинга Extravote Формат: http://schema.org/product plugins/content/extravote.php находим - <span id=\"extravote_".$id."_".$xid."\" class=\"extravote-count\"><small>"; 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; } наменяем на - <span id=\"extravote_".$id."_".$xid."\" class=\"extravote-count\"><br/><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>"; return $html; } Далее, следуя стандарту schema.org, мы должны внести изменения в используемый в магазине шаблон карточки товара - /components/com_virtuemart/themes/ваша_тема/templates/product_details/flypage_X.tpl.phpНеобходимо весь (или какую-то часть - смотрите сами) код во флайпедже обернуть в div <div itemscope itemtype="http://schema.org/Product"> здесь весь код </div>Далее в этом же файле найти вывод заглушки названия товара и обернуть в span <span itemprop="name"><?php echo $product_name ?></span>На этом всё. Проверяем здесь, если звезды появились, значит все сделали правильно и остается только ждать переиндексации.
|
|
|
|
« Последнее редактирование: 01.03.2012, 03:43:08 от ELLE »
|
Записан
|
|
|
|
Blizzard
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 11
|
 |
« Ответ #6 : 01.03.2012, 16:46:55 » |
|
Чтобы звезды показывались в выдаче для статей, надо весь вышеперечисленный код положить в <div itemscope itemtype="http://schema.org/Article"></div>. Исходный чистый (без прочих служебных тегов) код микроразметки должен выглядеть примерно так: <div itemscope itemtype="http://schema.org/Article"> <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">Рейтинг <span itemprop="ratingValue">5.0</span> из <span itemprop="bestRating">5</span>. Голосов: <span itemprop="ratingCount">1</span> </div> </div> Можно это сделать в коде самого плагина, тогда надо весь вышеперечисленный код положить в <div itemscope itemtype="http://schema.org/Article"></div>. Но на мой взгляд лучше сделать это дело в шаблоне вывода статьи (/шаблон/html/content/article/default.php), потому как там еще можно указать такие параметры как itemprop="name" для заголовка и itemprop="url" для ссылки. после: <?php if ($this->params->get('show_title')) : ?> вставляем: <div itemscope itemtype="http://schema.org/Article"> И перед: <div class="blog_content"> закрываем div: </div>
|
|
|
|
|
Записан
|
|
|
|
Blizzard
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 11
|
 |
« Ответ #7 : 08.03.2012, 01:10:34 » |
|
Нашел еще одну маленькую недоработочку  Для статей с нулевыми голосами выдает варнинг "Деление на ноль". Заметил это, когда поменял хостинг, на старом видимо был выключен вывод предупреждений. Можно конечно от этого избавится, проголосовав во всех статьях, что в общем-то со временем и само скорее всего произойдет, тем более что с нулевым количеством голосов звездочки в выдаче не появятся. Ну это так, к сведению, не существенно конечно, но все же не валидно..
|
|
|
|
|
Записан
|
|
|
|
|
Очередной вебмастер
|
 |
« Ответ #8 : 30.03.2012, 11:04:52 » |
|
Отличная тема  Так как сам занимаюсь продвижением задумывался о расширенных сниппетах, а тут как раз и ваша темка вовремя всплыла. Спасибо за то что разжевали, вплоть до кода. Пошел на паре сайтов сделаю.
|
|
|
|
|
Записан
|
|
|
|
ArtGPA
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 36
ArtGPA
|
 |
« Ответ #9 : 06.04.2012, 12:48:55 » |
|
Разметка: JoomShopping Формат: микроданные HTML5 Открываем: components/com_jshopping/templates/ваш шаблон/product/product_default.phpИ правим файл: <div itemscope itemtype="http://data-vocabulary.org/Product">
<h1 itemprop="name">Название товара:<?php print $this->product->name?></h1> <span itemprop="brand">Бренд товара</span>
<span itemprop="identifier" content="sku:<?php print $product->product_ean;?>"><?php print _JSHOP_EAN?>: <?php print $product->product_ean;?></span>
<div class="category" itemprop="category" content="Apparel & Accessories > Clothing > Activewear > Active Jackets">Например: "Apparel & Accessories > Clothing > Activewear > Active Jackets" (Категория к которой принадлежит ваш продукт можно посмотреть на этой странице http://support.google.com/merchants/bin/answer.py?hl=en&answer=160081) </div>
<a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?>> <img itemprop="image" id="main_image_<?php print $image->image_id?>" src="<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" /> </a>
<div class="description"><span itemprop="description"> <?php print $this->product->description; ?> </span></div>
<div class="price_blok"><span itemprop="offerDetails" itemscope itemtype="http://data-vocabulary.org/Offer">
<div class="price"> <?php print _JSHOP_PRICE?>: <span itemprop="price"><?php print formatprice($this->product->getPriceCalculate())?><?php print $this->product->_tmp_var_price_ext;?></span></div> <meta itemprop="currency" content="Выбрать свою валюту: UAH/RUB/USD/EUR" />
<div class="not_available" id="not_available"> <span itemprop="availability" content="in_stock"><?php print $this->available?></span></div> <span itemprop="condition" content="new"></span>
</div> </div>
Вот вроде все что касается продукта, здесь нет разметки Отзывов и Рейтинга. Всем УДАЧИ  !
|
|
|
|
|
Записан
|
|
|
|
Sulpher
Support Team
   
Репутация: +293/-9
Online
Пол: 
Сообщений: 1676
Миграция сайтов на Joomla 2.5
|
 |
« Ответ #10 : 20.04.2012, 16:47:35 » |
|
Будет ли плюсом, если к ссылкам в хлебных крошках добавить атрибут title?
|
|
|
|
|
Записан
|
|
|
|
|
|
|
|
|
Очередной вебмастер
|
 |
« Ответ #13 : 20.04.2012, 23:27:51 » |
|
Это очень хороший компонент, хотя все руки не доходят пощупать. С ним достаточно просто, судя по видео делать семантическую разметку.
|
|
|
|
|
Записан
|
|
|
|
ven-til
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 58
|
 |
« Ответ #14 : 21.04.2012, 12:39:47 » |
|
Более корректно не править указанный файл, а создать переопределить шаблон вывода модуля в шаблоне сайта (создать файл /tempates/название-вашего-шаблона/html/mod_breadcrumbs/default.php). Это позволит и достичь желаемого результата и никак не помешает обновлению Joomla.
сделал манипуляции описанные выше: в папке /html/ своего шаблона создал папку /mod_breadcrumbs/ - (по умолчанию её там не было) туда поместил измененный файл default.php (изменения из поста#1) сам файл взял из /modules/mod_breadcrumbs/tmpl/default.php какой результат должен получиться в итоге? т.к. после данных манипуляций я его не увидел. если что-то неправильно сделал напишите пошагово что и как. спасибо.
|
|
|
|
|
Записан
|
|
|
|
|
ELLE
|
 |
« Ответ #15 : 21.04.2012, 12:53:01 » |
|
|
|
|
|
|
Записан
|
|
|
|
ven-til
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 58
|
 |
« Ответ #16 : 21.04.2012, 16:31:49 » |
|
ven-til
вот такой ответ получил по ссылке проверки разметки: Google search preview The following errors were found during preview generation: This page does not contain authorship or rich snippet markup. Extracted Author/Publisher for this page Page does not contain authorship markup. Learn more. Extracted rich snippet data from the page
|
|
|
|
|
Записан
|
|
|
|
|
ELLE
|
 |
« Ответ #17 : 21.04.2012, 16:50:54 » |
|
ven-til, модуль включен? крошки отображаются на сайте? вы на какой странице проверяете? загляните в исходный код.. ------------------- PS:еще раз проверила, всё работает
|
|
|
|
« Последнее редактирование: 21.04.2012, 17:07:14 от ELLE »
|
Записан
|
|
|
|
ven-til
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 58
|
 |
« Ответ #18 : 21.04.2012, 17:49:55 » |
|
ven-til, модуль включен? крошки отображаются на сайте? вы на какой странице проверяете? загляните в исходный код..
так вот еще вопрос: один модуль крошек находится в /modules/mod_breadcrumbs/tmpl/default.php он работает второй: создал php-файл вышеназванного модуля и поместил в папку с шаблоном. получается что нужно стандартный модуль (т.е.1) удалить и оставить модуль, который будет внутри шаблона?
|
|
|
|
« Последнее редактирование: 21.04.2012, 18:06:22 от ven-til »
|
Записан
|
|
|
|
|
ELLE
|
 |
« Ответ #19 : 21.04.2012, 18:01:47 » |
|
нет, удалять ничего не нужно, просто создать файл по адресу - /tempates/название-вашего-шаблона/html/mod_breadcrumbs/default.php - этого вполне достаточно.
|
|
|
|
|
Записан
|
|
|
|
ven-til
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 58
|
 |
« Ответ #20 : 21.04.2012, 18:08:29 » |
|
проверил еще раз - вроде работает, только не пойму какую нагрузку несет этот файл если стандартные крошки работают так же.
|
|
|
|
|
Записан
|
|
|
|
|
ELLE
|
 |
« Ответ #21 : 21.04.2012, 18:30:01 » |
|
только не пойму какую нагрузку несет этот файл если стандартные крошки работают так же.
при обновлении движка все ваши правки затрутся в стандартном файле, поэтому файл модуля лучше перенести в папку с вашим шаблоном
|
|
|
|
|
Записан
|
|
|
|
ven-til
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 58
|
 |
« Ответ #22 : 21.04.2012, 18:32:42 » |
|
при наличии двух файлов для крошек работает только один из папки шаблона?
|
|
|
|
|
Записан
|
|
|
|
|
ELLE
|
 |
« Ответ #23 : 21.04.2012, 18:46:56 » |
|
да
|
|
|
|
|
Записан
|
|
|
|
ven-til
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 58
|
 |
« Ответ #24 : 21.04.2012, 18:48:38 » |
|
спасибо за помощь.
|
|
|
|
|
Записан
|
|
|
|
bormancode
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
 |
« Ответ #25 : 21.04.2012, 19:33:02 » |
|
Хотелось узнать, может есть связка jcomments (или других комментов) с микроформатами, интересует рейтинг и количество отзывов. При установке простого стационарного кода, при первой пере индексации страницы показывает нормально, потом слетает. Проверено на 2-х сайтах. Хочется более реального отображения.
|
|
|
|
|
Записан
|
|
|
|
|
Очередной вебмастер
|
 |
« Ответ #26 : 22.04.2012, 01:24:10 » |
|
Хотелось узнать, может есть связка jcomments (или других комментов) с микроформатами, интересует рейтинг и количество отзывов. При установке простого стационарного кода, при первой пере индексации страницы показывает нормально, потом слетает. Проверено на 2-х сайтах. Хочется более реального отображения.
Ох, а мне то как хочется =) Тоже искал способы переделать jComments в систему отзывов рейтингами и семантической разметкой, видимо придется делать самому параллельно инструктируясь у Smart'a
|
|
|
|
|
Записан
|
|
|
|
ArtGPA
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 36
ArtGPA
|
 |
« Ответ #27 : 22.04.2012, 10:46:47 » |
|
Ох, а мне то как хочется =) Тоже искал способы переделать jComments в систему отзывов рейтингами и семантической разметкой, видимо придется делать самому параллельно инструктируясь у Smart'a
Самое главное прикрутить к JComments звездный рейтинг, а остальное не проблема.
|
|
|
|
|
Записан
|
|
|
|
bormancode
Новичок
Репутация: +0/-0
Offline
Сообщений: 3
|
 |
« Ответ #28 : 07.05.2012, 18:28:32 » |
|
Если кому интересно, переделал плагин под Joomla 2.5, extravote. Выводит разметку под звездочки). у меня работает только для страниц статей, при открытии категории не выводится.
|
|
|
|
|
Записан
|
|
|
|
vogjd
Захожу иногда

Репутация: +1/-0
Offline
Сообщений: 11
|
 |
« Ответ #29 : 08.05.2012, 17:21:30 » |
|
Поставил на VirtueMart модуль из Ответа#1. Как вывести цену в сниппет?
|
|
|
|
|
Записан
|
|
|
|
|