tm

   Вкратце от том, как на форуме phpBB для каждой темы применять свои meta tag и title.

Итак, у нас имеется phpBB 3.0.14. Через админку в разделе Стили-Шаблоны или через правку самого файла /styles/тема/template/overall_header.html находим:

<meta name="keywords" content=""/>
<meta name="description" content=""/>

и заменяем на

<meta name="keywords" content="{PAGE_TITLE}" />
<meta name="description" content="{PAGE_TITLE}" />

Далее ищем тэг TITLE и приводим его к такому виду:

<title>{PAGE_TITLE} - {SITENAME}</title>

Этим самым мы назначаем в мета тэги названия тем на форуме.

   Возникла как-то необходимость поместить на форуме между сообщениями информацию для посетителей. Плагинов для старых версий phpbb не было нормальных пришлось курить php. Задумка такова, что для зареганых пользователей информация отображается только после первого поста, а для не авторизовавшихся после 5, 10, 15 и 20 постов на каждой странице в теме. При всём при этом существует два типа информации - для сообщений после 5 и 10 постов и 15, 20. Сам код:

nano /var/www/forum/styles/YOUR_STYLE/template/viewtopic_body.html
<!-- IF (postrow.S_ROW_COUNT eq 0) || (S_USER_LOGGED_IN eq 0 && postrow.S_ROW_COUNT eq 5) || (S_USER_LOGGED_IN eq 0 && postrow.S_ROW_COUNT eq 15) -->
<table class="tablebg" width="100%" cellspacing="0"> <tr class="row1">
<td class="profile" align="center" valign="middle">
<b class="postauthor">*</b>
</td>
<td class="row3h" width="100%"></td>
</tr> <tr class="row1"> <td valign="top" class="profile">
<table cellspacing="4" align="center" width="150"></table>
<span class="postdetails"></span>
</td> <td valign="top" colspan="2">
<table width="100%" cellspacing="5">
<tr>
<td>
<table width="100%" cellspacing="0">
<tr valign="middle">
<td class="gensmall" align="{S_CONTENT_FLOW_END}"></td>
</tr>
</table> <center><div class="postbody">
Code ADS ID one
</div></center> </td>
</tr>
</table>
</td>
</tr> <tr class="row1">
<td align="center" class="profile"></td>
<td colspan="2"></td>
</tr> <tr>
<td class="spacer" colspan="3" height="1"><img src="/images/spacer.gif" alt="" width="1" height="1" /></td>
</tr>
</table>
<!-- ENDIF -->
<!-- IF (postrow.S_ROW_COUNT eq 10) || (postrow.S_ROW_COUNT eq 20) -->
<table class="tablebg" width="100%" cellspacing="0"> <tr class="row1">
<td class="profile" align="center" valign="middle">
<b class="postauthor">*</b>
</td>
<td class="row3h" width="100%"></td>
</tr> <tr class="row1"> <td valign="top" class="profile">
<table cellspacing="4" align="center" width="150"></table>
<span class="postdetails"></span>
</td> <td valign="top" colspan="2">
<table width="100%" cellspacing="5">
<tr>
<td>
<table width="100%" cellspacing="0">
<tr valign="middle">
<td class="gensmall" align="{S_CONTENT_FLOW_END}"></td>
</tr>
</table> <center><div class="postbody">
Code ADS ID two
</div></center> </td>
</tr>
</table>
</td>
</tr> <tr class="row1">
<td align="center" class="profile"></td>
<td colspan="2"></td>
</tr> <tr>
<td class="spacer" colspan="3" height="1"><img src="/images/spacer.gif" alt="" width="1" height="1" /></td>
</tr>
</table>
<!-- ENDIF -->

 

Как видите код разбит на два блока. Первый начинается с <!-- IF (postrow.S_ROW_COUNT eq 0) - т.е. создаёт пост для зареганых пользователей после первого поста в теме и для не авторизовавшихся посты после 5 и 15 поста.

Второй блок начинается с <!-- IF (postrow.S_ROW_COUNT eq 10) - т.е. создаёт посты только для не авторизовавшихся пользователей после 10 и 20 поста.

Вместо Code ADS ID one or two пишем сообщение или вставляем скрипт.