Статья обновлена на 18.02.2017
Итак, ребята, будем вместе изучать семантическую разметку ибо вещь эта полезная для наших форумов. Что же такое Schema.org ???
Schema.org – это стандарт семантической разметки данных в сети, объявленный поисковыми системами Google, Bing и Yahoo! летом 2011 года. Цель семантической разметки – сделать интернет более понятным, структурированным и облегчить поисковым системам и специальным программам извлечение и обработку информации для удобного её представления в результатах поиска.
Разметка происходит непосредственно в HTML-коде страниц с помощью специальных атрибутов и не требует создания отдельных экспортных файлов.
Используя семантическую разметку, можно улучшить представление сниппета вашего сайта в результатах поиска.
Яндекс писал(а):

Разметка может сделать ваш сайт более заметным в Поиске Яндекса и таким образом привлечь больше посетителей, принадлежащих целевой аудитории. Яндекс же заинтересован в том, чтобы пользователи решали свои задачи с помощью Поиска. Одна из метрик качества Поиска так и называется — «счастье пользователя». Сайты, повышающие «счастье», ранжируются выше.Собственно, выгода очевидна. Если согласны, то читаем далее ...
Вообщем-то стандарт представляет из себя набор классов, описывающих всевозможные сущности и их свойства. Сейчас их уже несколько сотен. Постоянно идет работа по улучшению стандарта, добавляются новые свойства, уточнятся существующие. Именно для форумов, лично я так думаю, подойдет тип
Собственно набор свойств из
1. articleBody (тип данных - текст) - Это текст самой записи.
2. headline (тип данных - текст) - Это имя записи (в случае форумов - имя темы).
3. author (тип данных - текст) - Это имя автора записи
4. datePublished (тип данных - дата) - Это дата публикации записи
5. image (тип данных - ссылка) - Это картинка к записи
Разумеется свойств куда больше, но мы вообще будем использовать 5 типов.
Приступим к разметке ...
Итак, исходя и такой логики - в первом посте - больше всего информации, значит будет делать первый пост главным. Нам надо сделать условие только для первого поста, первого на первой странице, остальные - не в счет. Открываем viewtopic.php и находим
Вставляем перед найденным
Таким образом у нас есть условие для первого поста первой страницы и только для него.
Далее начинаем колдовать над шаблономviewtopic_body.html используемого стиля. Процесс таков:
1. Присвоить тип разметки
2. Выделить автора
3. Выделить имя темы (выделится вместе с ссылкой)
4. Выделить само сообщение
5. Выделить дату сообщения
6. Выделить картинку для сообщения
Поехали....
Открыть корневойviewtopic.php и найти
Вставить после найденного
Открытьincludes/functions_display.php и найти
Заменить найденное на
Код: Выделить все
'PAGINATION' => $pagination,Вставляем перед найденным
Код: Выделить все
'PAGE_NUMOO' => floor($start / $config['posts_per_page']) + 1,Таким образом у нас есть условие для первого поста первой страницы и только для него.
Код: Выделить все
<!-- IF postrow.S_FIRST_ROW && PAGE_NUMOO eq 1 --> любой код<!-- ENDIF -->Далее начинаем колдовать над шаблоном
1. Присвоить тип разметки
2. Выделить автора
3. Выделить имя темы (выделится вместе с ссылкой)
4. Выделить само сообщение
5. Выделить дату сообщения
6. Выделить картинку для сообщения
Поехали....
А) Для стилей на основе просильвер открыть указанный ранее шаблон и найти (это часть строки, вставлять строго после указанного элемента)
Вставить после найденного
Найти
Вставить после найденного
Найти
Заменить найденное на
Найти
Заменить на
Найти
Заменить найденное на
Код: Выделить все
<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 -->Б) Для стилей на основе сабсильвер2 открыть указанный ранее шаблон и найти
Заменить найденное на
Найти
Заменить найденное на
Найти
Вставить после найденного
Найти
Заменить на
Найти
Заменить найденное на
Код: Выделить все
<!-- 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 -->
Открыть корневой
Код: Выделить все
'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']),Открыть
Код: Выделить все
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"/>';Полезные ссылки
1. Валидатор Гугла
2. Валидатор Яндекса
3. Русскоязычный сайт по семантической разметке
1. Валидатор Гугла
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку
2. Валидатор Яндекса
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку
3. Русскоязычный сайт по семантической разметке
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку





















На Главную
Радио
Наша команда