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


----

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

 Сообщение Семантическая разметка 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 писал(а):

Упс, возвращаемся к вашему вопросу про 4 найденных куска <div class="content", править надо вот эту строку

Спасибо, Сергей! Понял!
Еще такой вопрос, мои пользователям не нравится что после даты время не выводится (в сообщениях), это можно исправить? Добавив время
Я так понимаю надо как то сюда добавить: :du_ma_et:
'POST_DATE'         => date('Y-m-d', $row['post_time']),
 


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


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

Не знаю, попаду ли я за комп сегодня, попробую обьяснить на пальцах. Нужно использовать условие показа для зарегистрированных пользователей. Тобишь откатываете назад правку даты в viewtopic.php, строка даты принимает ноомальный вид, после этой строки добавляете
'POST_DATE1'         => date('Y-m-d', $row['post_time']),
 

Потом идете в шаблон и заменяете
<span <!-- IF postrow.S_FIRST_ROW  && PAGE_NUMOO eq 1 -->itemprop="datePublished" <!-- ENDIF -->>{postrow.POST_DATE}</span>
 

На
<span <!-- IF postrow.S_FIRST_ROW  && PAGE_NUMOO eq 1 -->itemprop="datePublished" <!-- ENDIF -->><!-- IF S_USER_LOGGED_IN -->{postrow.POST_DATE}<!-- ELSE -->{postrow.POST_DATE1}<!-- ENDIF --></span>
 

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


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


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

DeaDRoMeO писал(а):

Не знаю, попаду ли я за комп сегодня, попробую обьяснить на пальцах. Нужно использовать условие показа для зарегистрированных пользователей. Тобишь откатываете назад правку даты в viewtopic.php, строка даты принимает ноомальный вид, после этой строки добавляете

Сергей, спасибо что помогаете. Правки внес. Теперь пользователи будут довольные, а Яндекс нет. Выдает:
ПРЕДУПРЕЖДЕНИЕ: значение "16 мар 2015, 16:52" в поле datePublished не является корректными значением даты. Дата должна быть в формате ISO 8601
 


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


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

Я и забыл что бот Яндекса является зарегистрированным, в условии поменяйте S_USER_LOGGED_IN на not S_IS_BOT


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


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

DeaDRoMeO писал(а):

Я и забыл что бот Яндекса является зарегистрированным, в условии поменяйте S_USER_LOGGED_IN на not S_IS_BOT

Сергей, мега респектище!!!!
P.S. И можно на ты, мы же не на работе :mi_ga_et:


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


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

На здоровье, можно и на ты))):-)


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


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

Сегодня обнаружил, в логах на сервере следующее (через каждые 5 секунд ошибки, аналогичные, выкидывает):
[error] [mod_pagespeed 1.11.33.2-0 @26276] Attempt to destroy unknown SHM segment [1]pagespeed_default_shm/metadata_cache.
[Tue May 17 14:52:17 2016] [error] [mod_pagespeed  @26276] [0517/145217:ERROR:google_message_handler.cc(59)] Attempt to destroy unknown SHM segment [1]SharedCircularBuffer.:0.
[Tue May 17 14:52:23 2016] [error] [mod_pagespeed 1.11.33.2-0 @26163] Attempt to destroy unknown SHM segment [1]<unplugged>/named_locks.
 


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


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

Странно, у хостера не спрашивал? Не могу даже представить изза какого мода это может быть


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


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

Извините если не в тему! С помощью вот этого скрипта я прописал у себя в коде ссылки на свои блоги в соц.сетях. Хочу с Вами поделиться, но если уже была такая тема, то заранее прощу прощения:

<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Organization",
"name" : "Название вашего сайта",
"url" : "http://адрес вашего сайта",
"sameAs" : [
"https://vk.com/ваш id",
"https://www.facebook.com/название",
"https://twitter.com/название",
"https://plus.google.com/ваш ID"
]
}
</script>



Вставлять перед </head>.

Вот так яндекс принимает эту микроразметку:

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


А так Google:

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



Теги сообщения
Organization,schema.org
          Вернуться наверх  
 


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

Как вариант, НО он же не цепляет текста сообщения допустим


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


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

Увы... Это так. Как к тексту привязать я не знаю. Не дорос ещё :smu:sche_nie:


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


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

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


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


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

Спасибо! Отлично работает, вот только гугл немного ругается "Необходимо указать значение для поля image." Где править? подскажите плиз.


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


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

Погляжу на досуге, отпишусь если что


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


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

DeaDRoMeO писал(а):

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

Белый экран с ошибкой
Parse error: syntax error, unexpected end of file in /home/p288782/www/forum.ncuxolog.ru/includes/template.php(230) : eval()'d code on line 292
 


Сергей, Вы на данный момент сами используете описанную разметку? Вижу, что у вас дата высвечивается в постах по-старому.


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


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

Где то неверно правку сделали, у меня все эти правки сейчас работают


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


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

DeaDRoMeO писал(а):

Где то неверно правку сделали

Ясно, значит, придется отключить все стили и отдельно по всем проверять.



_________________________________________

Проверила сейчас по стилю Артодия. Работает. Только яндекс и гугл выдают предупреждение по дате.

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


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


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


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

По дате - поглядите выше, на этой же странице темы есть решение, которое я не перенес в шапку темы


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


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

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

Сообщение добавлено... спустя 2 часа 32 минуты 30 секунд:
Установила разметку на субсильвер и активировала его. Все отлично. Только гугл требует image, как и писал wmnetwork. Значит, проблема в Артодии. Буду тестировать остальные стили.


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


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

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


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


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

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

DeaDRoMeO

11

792

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

11 апр 2016, 19:10

Erenbur

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

Милена

3

707

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

04 янв 2015, 11:02

DeaDRoMeO

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

DeaDRoMeO

17

1000

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

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