Полезная информация


----

Начать новую тему Ответить на тему
АвторСообщение

 Сообщение Семантическая разметка phpBB3: Темы форума 2013-09-17

Аватар пользователя

Статья обновлена на 18.02.2017

Итак, ребята, будем вместе изучать семантическую разметку ибо вещь эта полезная для наших форумов. Что же такое Schema.org ???

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

Используя семантическую разметку, можно улучшить представление сниппета вашего сайта в результатах поиска.
Яндекс писал(а):

Разметка может сделать ваш сайт более заметным в Поиске Яндекса и таким образом привлечь больше посетителей, принадлежащих целевой аудитории. Яндекс же заинтересован в том, чтобы пользователи решали свои задачи с помощью Поиска. Одна из метрик качества Поиска так и называется — «счастье пользователя». Сайты, повышающие «счастье», ранжируются выше.

Собственно, выгода очевидна. Если согласны, то читаем далее ...
Вообщем-то стандарт представляет из себя набор классов, описывающих всевозможные сущности и их свойства. Сейчас их уже несколько сотен. Постоянно идет работа по улучшению стандарта, добавляются новые свойства, уточнятся существующие. Именно для форумов, лично я так думаю, подойдет тип Статья (ScholarlyArticle), вы конечно можете подобрать любой другой тип если разбираетесь во всем больше чем я.

Собственно набор свойств из Статья (ScholarlyArticle) минималистичен, но главное - это поддерживается как минимум Яндексом и Гуглом. Можно выделять следующие типы данных в статье
1. articleBody (тип данных - текст) - Это текст самой записи.
2. headline (тип данных - текст) - Это имя записи (в случае форумов - имя темы).
3. author (тип данных - текст) - Это имя автора записи
4. datePublished (тип данных - дата) - Это дата публикации записи
5. image (тип данных - ссылка) - Это картинка к записи
Разумеется свойств куда больше, но мы вообще будем использовать 5 типов.

Приступим к разметке ...
Итак, исходя и такой логики - в первом посте - больше всего информации, значит будет делать первый пост главным. Нам надо сделать условие только для первого поста, первого на первой странице, остальные - не в счет. Открываем viewtopic.php и находим
'PAGINATION'    => $pagination,
 

Вставляем перед найденным
 'PAGE_NUMOO'      => floor($start / $config['posts_per_page']) + 1,
 

Таким образом у нас есть условие для первого поста первой страницы и только для него.
<!-- IF postrow.S_FIRST_ROW  && PAGE_NUMOO eq 1 --> любой код<!-- ENDIF -->
 

Далее начинаем колдовать над шаблоном viewtopic_body.html используемого стиля. Процесс таков:
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 -->
 



Открыть корневой 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"/>';
 


Полезные ссылки
1. Валидатор Гугла
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку

2. Валидатор Яндекса
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку

3. Русскоязычный сайт по семантической разметке
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!

Теги темы
Семантическая разметка phpbb3
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO, а как быть с image не смотрели?


          Вернуться наверх  
 


Аватар пользователя

Сегодня-завтра разберусь, поправил последнюю временную правку, валидатор ругался на время, теперь нет

Сообщение добавлено... спустя 24 минуты 57 секунд:
Фууухх, вообщем переписал малехо статью, теперь и аватары цепляет, валидатор гугла показывает ноль ошибок


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Сергей, Яндекс теперь ругается

Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку


Может цепляются все аватары на странице?


          Вернуться наверх  
 


Аватар пользователя

Странно, может мы разные валидаторы используем? Дайте ссылку на ваш, тот что в яндексе у меня даже к аватарам не цепляется


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

может мы разные валидаторы используем?

Я по ссылке, которая в первом посте, переходила.)


          Вернуться наверх  
 


Аватар пользователя

Странновато, у меня без проблем, ни одной ошибки, адрес какого вида проверяете?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

адрес какого вида проверяете

Брала ссылку любого топика, где есть ответы. Или я что-то не то делаю?) либо не поняла.


          Вернуться наверх  
 


Аватар пользователя

Да не, все правильно, не могу понять почему у нас разные результаты в валидаторе, дайте полный код шаблона viewtopic_body.html


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Вложение :
Комментарий к файлу: Это из стиля Ga Gen2
viewtopic_body.rar [4.91 KiB]
Скачиваний: 5


          Вернуться наверх  
 


Аватар пользователя

Хорошо, сегодня глянем, но вывод аватар вы делали уже по обновленной статье?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

вывод аватар вы делали уже по обновленной статье?


Вы про
Открыть includes/functions_display.php и найти
 
- да.


          Вернуться наверх  
 


Аватар пользователя

В указанном ранее шаблоне найти
 <!-- IF postrow.POSTER_AVATAR -->
         <div class="profile-avatar">
            <!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}"><span <!-- IF postrow.S_FIRST_ROW  && PAGE_NUMOO eq 1 -->itemprop="image" <!-- ENDIF -->>{postrow.POSTER_AVATAR}</span></a><!-- ELSE --><span <!-- IF postrow.S_FIRST_ROW  && PAGE_NUMOO eq 1 -->itemprop="image" <!-- ENDIF -->>{postrow.POSTER_AVATAR}</span><!-- ENDIF -->
    </div>
 

Заменить на
 <!-- IF postrow.POSTER_AVATAR -->
         <div class="profile-avatar">
            <!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a><!-- ELSE -->{postrow.POSTER_AVATAR}<!-- ENDIF -->
    </div>
 

Очистить кеш и посмотреть результаты


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Если так, как вы пишите, то яндекс выдает: Микроразметка не обнаружена =(
Если во втором коде в конце добавить <!-- ENDIF -->, то есть:
 <!-- IF postrow.POSTER_AVATAR -->
         <div class="profile-avatar">
            <!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a><!-- ELSE -->{postrow.POSTER_AVATAR}<!-- ENDIF -->
    </div>
<!-- ENDIF -->
 
, то выдает старую ошибку.


          Вернуться наверх  
 


Аватар пользователя

Да, ENDIF я забыл, оставляйте второй вариант, в html ничего в аватары не прописывается


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Привет Сергей! Переделал по новому, гугл перестал ругаться на картинки, но теперь яндекс выдал ошибку:

microdata
ОШИБКА: невозможно определить принадлежность данных полей. Возможны две причины: эти поля некорректно размещены, либо указан лишний атрибут itemprop
itemType =
image
href = ./download/file.php?avatar=2464_1328871502.gif
text = Аватара пользователя
image
href = ./download/file.php?avatar=2464_1328871502.gif
text = Аватара пользователя
image
href = ./download/file.php?avatar=2464_1328871502.gif
text = Аватара пользователя
image
href = ./download/file.php?avatar=2464_1328871502.gif
text = Аватара пользователя
 


          Вернуться наверх  
 


Аватар пользователя

wmnetwork писал(а):

теперь яндекс выдал ошибку

тоже, что и у меня

DeaDRoMeO писал(а):

в html ничего в аватары не прописывается

не совсем поняла ) В общем, оставляю так, как сейчас...


          Вернуться наверх  
 


Аватар пользователя

mela, в шаблоне у вас должно остаться так
 <!-- IF postrow.POSTER_AVATAR -->
         <div class="profile-avatar">
            <!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a><!-- ELSE -->{postrow.POSTER_AVATAR}<!-- ENDIF -->
    </div>
<!-- ENDIF -->
 

wmnetwork, буду еще колдовать наверное, нужно в php мудрить условие для первой страницы первого поста


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

Прежде всего хочу поблагодарить за столь замечательную доработку, код внедрил, гугл отлично отработал, но яндекс выдает вот такие ошибки (аналогично тому, как описано выше):

Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку

Есть ещё проблема с отсутствующими автарами, но это вопрос отдельный.

И есть ещё непонятная ошибка в поле @id формируется битая ссылка (номер поста правильная, но если по ней перейти - страница не найдена):
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку

Насколько это критично?

Ещё хочу спросить у вас, вы не пробовали внедрить разметку оценки топика (review rate, 5ть звезд в сниппетах) на базе Evaluate Topics:
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку

?


          Вернуться наверх  
 


Аватар пользователя

Хммм, погляжу сегодня вечером по этим вопросам. По рейтингу даже не задумывался

По отсутствующим аватарам можно использовать условие и задать его для тем по умолчанию. Хотя странно, обычно создатели стилей это предусматривают


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Привет Сергей. А как к 3.2.1 правки делать ? Из выше описанного подходят только правки в
viewtopic_body.html
 


          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя Семантическая разметка phpBB3: Хлебные крошки
Тема о семантической разметке хлебных крошек phpBB3

DeaDRoMeO

11

792

Аватар пользователя

11 апр 2016, 19:10

Erenbur

Аватар пользователя Случайно удалила темы с форума, как восстановить?

Милена

3

707

Аватар пользователя

04 янв 2015, 11:02

DeaDRoMeO

Аватар пользователя Закрытые темы всегда внизу phpBB3
Закрытые темы всегда внизу phpBB3 - модификация для phpbb3, которая опускает все закрытые темы вниз списка тем, очень простой и логичный мод

DeaDRoMeO

17

1002

Аватар пользователя

14 ноя 2017, 08:25

DeaDRoMeO

Аватар пользователя NV recent topics phpbb3 (последние темы)
NV recent topics - модификация для phpbb3, выводящая список последних активных тем в спец.блоке на страницы форума

DeaDRoMeO

204

9866

Аватар пользователя

17 янв 2016, 10:11

Чародейка

Аватар пользователя AOS Topic Statistics phpbb3 (подписчики и просмотры темы)
AOS Topic Statistics - модификация для phpbb3, добавляющая на страницу просмотра тем информацию о количестве подписчиков и просмотров конкретной темы.

DeaDRoMeO

84

6165

Аватар пользователя

19 июл 2017, 13:19

DeaDRoMeO

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


Самая неформальная поддержка phpBB :P