Main menu

Продолжая тему микроформатов и микроданных на сайтах, для вывода определенных данных в поисковики, сегодня мы поговорим о том, как вывести в поисковики навигацию вне зависимости от того, где на сайте размещена сама навигация. На этот раз решения будут и для Joomla! 1.5 и для 2.5 Примером будет сайт Dance Plane:


Как мы видим над рейтингом выводится навигация, а конкретно путь к материалу танцевальной школы Forma. Такой результат выводится поисковиками. Чтобы добиться такого результата код шаблона модуля навигации (mod_breadcrumbs), который находится в templates/your_template/html/mod_breadcrumbs/default.php или в modules/mod_breadcrumbs/tmp/default.php, должен выглядеть так:

Для Joomla! 1.5:
<?php
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 ($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> 


Для Joomla! 2.5:

<?php
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> 
В случае с модификацией модуля навигации для J!1.5 рекомендую в CSS шаблона добавить такую строчку:
#breadcrumb div {display:inline;} 
Ну и конечно, если вдруг навигация у Вас поплыла, то пользуясь FireBug'ом смотрим в чем проблема и правим прибегая только к CSS.
Таким образом мы добились вывода навигации в поисковики.
<?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>