ссылка на авторство: http://hello-vitebsk.ru/viewtopic.php?f=142&t=2510#!prettyPhoto, http://hello-vitebsk.ru/viewtopic.php?f=142&t=2115
протестировал данные правки и проверил на веб-Яндексе и Гугле. всё работает.
от автора:
Итак, ребята, будем вместе изучать семантическую разметку ибо вещь эта полезная для наших форумов. Что же такое Schema.org ???
Schema.org – это стандарт семантической разметки данных в сети, объявленный поисковыми системами Google, Bing и Yahoo! летом 2011 года. Цель семантической разметки – сделать интернет более понятным, структурированным и облегчить поисковым системам и специальным программам извлечение и обработку информации для удобного её представления в результатах поиска.
Разметка происходит непосредственно в HTML-коде страниц с помощью специальных атрибутов и не требует создания отдельных экспортных файлов.
Используя семантическую разметку, можно улучшить представление сниппета вашего сайта в результатах поиска.
Яндекс писал(а):
Цитата:
Собственно, выгода очевидна. Если согласны, то читаем далее ...
Вообщем-то стандарт представляет из себя набор классов, описывающих всевозможные сущности и их свойства. Сейчас их уже несколько сотен. Постоянно идет работа по улучшению стандарта, добавляются новые свойства, уточнятся существующие. Именно для форумов, лично я так думаю, подойдет тип Статья (ScholarlyArticle), вы конечно можете подобрать любой другой тип если разбираетесь во всем больше чем я.
Собственно набор свойств из Статья (ScholarlyArticle) минималистичен, но главное - это поддерживается как минимум Яндексом и Гуглом. Можно выделять следующие типы данных в статье
1. articleBody (тип данных - текст) - Это текст самой записи.
2. headline (тип данных - текст) - Это имя записи (в случае форумов - имя темы).
3. author (тип данных - текст) - Это имя автора записи
4. datePublished (тип данных - дата) - Это дата публикации записи
5. image (тип данных - ссылка) - Это картинка к записи
Разумеется свойств куда больше, но мы вообще будем использовать 5 типов.
Итак, исходя и такой логики - в первом посте - больше всего информации, значит будет делать первый пост главным. Нам надо сделать условие только для первого поста, первого на первой странице, остальные - не в счет.
Открыть viewtopic.php
Таким образом у нас есть условие для первого поста первой страницы и только для него.
Правим viewtopic.php дальше:
Найти
Вставить перед найденным
Код: Выделить всё
'PAGINATION' => $pagination,
Вставить перед найденным
Код: Выделить всё
'PAGE_NUMOO' => floor($start / $config['posts_per_page']) + 1,
Таким образом у нас есть условие для первого поста первой страницы и только для него.
Код: Выделить всё
<!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 --> любой код<!-- ENDIF -->
Правим viewtopic.php дальше:
Найти
Вставить после найденного
Код: Выделить всё
'POST_DATE' => (!$row['post_created']) ? $user->format_date($row['post_time'], false, ($view == 'print') ? true : false) : $user->format_date($row['post_created'], false, ($view == 'print') ? true : false),
Вставить после найденного
Код: Выделить всё
'POST_DATE1' => date('Y-m-d', $row['post_time']),
Открыть includes/functions_display.php
Найти
Заменить найденное на
Код: Выделить всё
return '<img src="' . (str_replace(' ', '%20', $avatar_img)) . '" width="' . $avatar_width . '" height="' . $avatar_height . '" alt="' . ((!empty($user->lang[$alt])) ? $user->lang[$alt] : $alt) . '" />';
Заменить найденное на
Код: Выделить всё
return '<img src="' . (str_replace(' ', '%20', $avatar_img)) . '" width="' . $avatar_width . '" height="' . $avatar_height . '" alt="' . ((!empty($user->lang[$alt])) ? $user->lang[$alt] : $alt) . '" itemprop="image"/>';
Далее начинаем колдовать над шаблоном viewtopic_body.html используемого стиля. Процесс таков:
1. Присвоить тип разметки
2. Выделить автора
3. Выделить имя темы (выделится вместе с ссылкой)
4. Выделить само сообщение
5. Выделить дату сообщения
6. Выделить картинку для сообщения
Поехали...
Prosilver:
Для стилей на основе просильвер открыть указанный ранее шаблон и
найти (это часть строки, вставлять строго после указанного элемента)
Вставить после
Код: Выделить всё
<div id="p{postrow.POST_ID}"
Вставить после
Код: Выделить всё
<!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 --> itemscope itemtype="http://schema.org/ScholarlyArticle" <!-- ENDIF -->
Найти
Вставить после найденного
Код: Выделить всё
<div class="content"
Вставить после найденного
Код: Выделить всё
<!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 -->itemprop="articleBody" <!-- ENDIF -->
Найти
Заменить найденное на
Код: Выделить всё
<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF -->
Заменить найденное на
Код: Выделить всё
<div <!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 -->itemprop="author" <!-- ENDIF -->><!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF --></div>
Найти
Заменить найденное на
Код: Выделить всё
<a href="#p{postrow.POST_ID}">{postrow.POST_SUBJECT}</a>
Заменить найденное на
Код: Выделить всё
<a href="#p{postrow.POST_ID}"><span <!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 -->itemprop="headline" <!-- ENDIF -->>{postrow.POST_SUBJECT}</span></a>
Найти
Заменить найденное на
Код: Выделить всё
{postrow.POST_DATE}
Заменить найденное на
Код: Выделить всё
<!-- IF not S_USER_LOGGED_IN --><span <!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 -->itemprop="datePublished" <!-- ENDIF -->>{postrow.POST_DATE1}</span><!-- ELSE -->
<span>{postrow.POST_DATE}</span><!-- ENDIF -->
Subsilver2:
Найти
Заменить найденное на
Код: Выделить всё
<!-- BEGIN postrow -->
<table class="tablebg" width="100%" cellspacing="1">
Заменить найденное на
Код: Выделить всё
<!-- BEGIN postrow -->
<table class="tablebg" width="100%" cellspacing="1" <!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 --> itemscope itemtype="http://schema.org/ScholarlyArticle" <!-- ENDIF -->>
Найти
Заменить найденное на
Код: Выделить всё
<div class="postbody">{postrow.MESSAGE}</div>
Заменить найденное на
Код: Выделить всё
<div class="postbody" <!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 -->itemprop="articleBody" <!-- ENDIF -->>{postrow.MESSAGE}</div>
Найти
Вставить после найденного
Код: Выделить всё
<b class="postauthor"<!-- IF postrow.POST_AUTHOR_COLOUR --> style="color: {postrow.POST_AUTHOR_COLOUR}"<!-- ENDIF -->
Вставить после найденного
Код: Выделить всё
<!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 -->itemprop="author" <!-- ENDIF -->
Найти
Заменить найденное на
Код: Выделить всё
<a href="#p{postrow.POST_ID}">{postrow.POST_SUBJECT}</a>
Заменить найденное на
Код: Выделить всё
<a href="#p{postrow.POST_ID}"><span <!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 -->itemprop="headline" <!-- ENDIF -->>{postrow.POST_SUBJECT}</span></a>
Найти
Заменить найденное на
Код: Выделить всё
{postrow.POST_DATE}
Заменить найденное на
Код: Выделить всё
<!-- IF not S_USER_LOGGED_IN --><span <!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 -->itemprop="datePublished" <!-- ENDIF -->>{postrow.POST_DATE1}</span><!-- ELSE -->
<span>{postrow.POST_DATE}</span><!-- ENDIF -->
Хлебные крошки
от автора:
Всем доброго времени суток, давненько как то по поводу семантической разметки тем форума, сегодня речь пойдет от так называемых хлебных крошках и их разметке в phpBB3:
Чтобы наш форум был понятней для поисковых систем, мы всегда должны стараться давать им больше информации о нем, его структуре, качестве контента и делать индексацию ресурса более легкой для поисковых роботов. Хлебные крошки являются элементом навигации форума и его очень любит Google. До недавнего времени я был сторонником отсутствия крошек на ресурсе, так как ими пользуются в пределах 5-ти процентов людей. Чуть позже я добавил эти крохи внизу форума. При их грамотной разметке сниппет форума в результатах поиска становится еще приятней.
Для стилей на основе просильвера:
Открыть шаблон overall_header.html
Найти
Заменить найденное на
Код: Выделить всё
<li class="icon-home"><a href="{U_INDEX}" accesskey="h">{L_INDEX}</a> <!-- BEGIN navlinks --> <strong>‹</strong> <a href="{navlinks.U_VIEW_FORUM}">{navlinks.FORUM_NAME}</a><!-- END navlinks --></li>
Заменить найденное на
Код: Выделить всё
<li class="icon-home" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="{U_INDEX}" accesskey="h" itemprop="url"><span itemprop="title">{L_INDEX}</span></a> <!-- BEGIN navlinks --> <strong>‹</strong> <a href="{navlinks.U_VIEW_FORUM}" itemprop="url"><span itemprop="title">{navlinks.FORUM_NAME}</span></a><!-- END navlinks --></li>
Для стилей на основе сабсильвера:
Открыть шаблон breadcrumbs.html
Найти
Заменить найденное на
Код: Выделить всё
<p class="breadcrumbs"><a href="{U_INDEX}">{L_INDEX}</a><!-- BEGIN navlinks --> » <a href="{navlinks.U_VIEW_FORUM}">{navlinks.FORUM_NAME}</a><!-- END navlinks --></p>
Заменить найденное на
Код: Выделить всё
<p class="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="{U_INDEX}" itemprop="url"><span itemprop="title">{L_INDEX}</span></a><!-- BEGIN navlinks --> » <a href="{navlinks.U_VIEW_FORUM}" itemprop="url"><span itemprop="title">{navlinks.FORUM_NAME}</span></a><!-- END navlinks --></p>
сканы на гугле до и после оптимизации странички одного из моих сайтов:
Вложение:
Комментарий к файлу: до семантической разметки
Вложение: