[BETA] Search Engines Friendly Board

Здесь авторы могут постить бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!

Сообщение Профессор 04.08.2005 21:37

Thoral писал(а):однако гости не могут переходить по страницам одной темы; по нажатию на номер страницы их постоянно перебрасывает на первую страницу этой темы.

Точно! Есть такая пакость, но на этом сайте почему-то всё нормально, а у меня возникла такая же проблема. Установил сей мод неделю назад, а гости позавчера обраружили этот неприятный эффект. Сегодня утром я наше решение, но сейчас я ложусь спать, а сообщю подробности борьбы завтра.

Спокойной всем ночи!
Профессор
phpBB 1.4.1
 
Сообщения: 48
Зарегистрирован: 21.12.2004 12:21
Откуда: Орёл


Сообщение Профессор 05.08.2005 17:04

Если у Вас такая же пакость, как у Thoral, то можно ликвидирвать её так. В viewtopic.php задаем переменную, которая будет показывать гость у нас или зарегистрированный пользователь.
if ( $userdata['session_logged_in'] ) {
$logg_view = 1;
}
else {
$logg_view = 0;
}


А в functions.php ищем функцию generate_pagination и меняем её на этот вариант.
function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
{
global $topic_id, $forum_id, $logg_view, $lang;
if ( $logg_view == 100 ) {
$podstavka = 'forum';
$topic_id = $forum_id;
$logg_view = 0;
}
else {
$podstavka = 'topic';
}
$total_pages = ceil($num_items/$per_page);
if ( $total_pages == 1 ) {
return '';
}
$on_page = floor($start_item / $per_page) + 1;
$page_string = '';
if ( $total_pages > 10 )
{
$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;
for($i = 1; $i < $init_page_max + 1; $i++)
{
if ( $logg_view == 1 ) {
$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
}
else {
$topic_page = ( $i - 1 ) * $per_page;
$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($podstavka . $topic_id . '-' . $topic_page) . '.html">' . $i . '</a>';
}
if ( $i < $init_page_max ) {
$page_string .= ", ";
}
}
if ( $total_pages > 3 )
{
if ( $on_page > 1 && $on_page < $total_pages )
{
$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';
$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;
for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
{
if ( $logg_view == 1 ) {
$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
}
else {
$topic_page = ( $i - 1 ) * $per_page;
$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($podstavka . $topic_id . '-' . $topic_page) . '.html">' . $i . '</a>';
}
if ( $i < $init_page_max + 1 ) {
$page_string .= ', ';
}
}
$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
}
else {
$page_string .= ' ... ';
}
for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
{
$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
if( $i < $total_pages ) {
$page_string .= ", ";
}
}
}
}
else
{
for($i = 1; $i < $total_pages + 1; $i++) {
if ( $logg_view == 1 ) {
$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
}
else {
$topic_page = ( $i - 1 ) * $per_page;
$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($podstavka . $topic_id . '-' . $topic_page) . '.html">' . $i . '</a>';
}
if ( $i < $total_pages ) {
$page_string .= ', ';
}
}
}
if ( $add_prevnext_text ) {
if ( $on_page > 1 ) {
if ( $logg_view == 1 ) {
$page_string = ' <a href="' . append_sid($base_url . "&amp;start=" . ( ( $on_page - 2 ) * $per_page ) ) . '">Пред.</a>&nbsp;&nbsp;' . $page_string;
}
else {
$page_string = ' <a href="' . append_sid($podstavka . $topic_id . '-' . (( $on_page - 2 ) * $per_page)) . '.html">Пред.</a>&nbsp;&nbsp;' . $page_string;
}
}
if ( $on_page < $total_pages ) {
if ( $logg_view == 1 ) {
$page_string .= '&nbsp;&nbsp;<a href="' . append_sid($base_url . "&amp;start=" . ( $on_page * $per_page ) ) . '">След.</a>';
}
else {
$page_string .= '&nbsp;&nbsp;<a href="' . append_sid($podstavka . $topic_id . '-' . ($on_page * $per_page)) . '.html">След.</a>';
}
}
}
$page_string = 'На страницу ' . $page_string;
return $page_string;
}

Хоть проблема и решена, но мне очень интересно, почему она не возникла у Xperta. Здесь на сайте со ссылками гостей всё нормально. Или Xpert втихаря ликвидировал решил этот казус, а нам ничего не сказал? :)
Последний раз редактировалось Профессор 09.09.2005 18:06, всего редактировалось 1 раз.
Профессор
phpBB 1.4.1
 
Сообщения: 48
Зарегистрирован: 21.12.2004 12:21
Откуда: Орёл

Сообщение Kastaneda 05.08.2005 19:39

Профессор писал(а):Или Xpert втихаря ликвидировал решил этот казус, а нам ничего не сказал?

Наверно не у всех встречается этот глюк. У меня его тоже нет.
Kastaneda
Модератор
Модератор
 
Сообщения: 700
Зарегистрирован: 06.10.2004 13:29

Сообщение Thoral 06.08.2005 10:51

Профессор
коллега, благодарю,
попробую на досуге ;)
Аватара пользователя
Thoral
phpBB 1.4.4
 
Сообщения: 71
Зарегистрирован: 21.08.2004 8:25
Откуда: Бездрик

Сообщение daddy_dj 11.08.2005 23:09

Господа, прошу помочь (разъснить).
Ногами не бейте, хотя чувствую, что вопрос тупой - всего третий день смотрю на форум изнутри :)
Итак.
Скачал Search Engines Friendly Board.
Первая строчка - "copy .htaccess to .htaccess"
В скачанном моде .htaccess нашел. А вот КУДА его копировать :?:

Внимательно прочитал письмо от хостера: "Для всех аккаунтов включена поддержка .htaccess". Значит этот .htaccess есть.
Но где же он, сволочь, лежит? Т.е. КУДА копировать новый .htaccess?

В общем запутался я в двух соснах... :cry:
Сорентируйте, плиз.
daddy_dj
phpBB 1.2.0
 
Сообщения: 10
Зарегистрирован: 11.08.2005 22:48
Откуда: Kiev

Сообщение VVVas 12.08.2005 0:10

daddy_dj
Идем в поиск и спрашиваем "как устанавливать моды", а там видим
[ COPY ] - загрузить файлы в папку форума. Путь указывается от корня вашего форума.
вы нарушили правила конференции, объяснений не будет - сами читайте правила
я люблю daft punk | Активные темы
Аватара пользователя
VVVas
Люмпен Пролетариат
Люмпен Пролетариат
 
Сообщения: 4558
Зарегистрирован: 12.11.2004 0:20
Откуда: RU-MSK

Сообщение daddy_dj 12.08.2005 0:55

"Семен Семеныч..." (с)
А я-то (дубинушка) думал его нужно скопировать и заменить уже существующий на моем форуме .htaccess

Все, спасибо :)
daddy_dj
phpBB 1.2.0
 
Сообщения: 10
Зарегистрирован: 11.08.2005 22:48
Откуда: Kiev

Сообщение Siava 10.09.2005 2:12

Xpert
Странно.. при использовании подфорумов Cat Hierarhy ссылки на подфорумы не преобразуются в статические :?
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.2
 
Сообщения: 2643
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер

Сообщение Xpert 10.09.2005 6:15

Siava
А каким html-кодом формируются эти ссылки?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
 
Сообщения: 5637
Зарегистрирован: 13.03.2004 21:27
Откуда: msk.ru

Сообщение Siava 10.09.2005 14:56

Xpert
Не понял, что именно надо показать?
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.2
 
Сообщения: 2643
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер

Сообщение Xpert 11.09.2005 6:54

Часть html-кода страницы, которая содержит необработанные ссылки.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
 
Сообщения: 5637
Зарегистрирован: 13.03.2004 21:27
Откуда: msk.ru

Сообщение Siava 11.09.2005 21:18

Xpert
Ок, тогда вот пример:
Код: Выделить всё
<tr>
   <td  class="row1" align="center" valign="middle" height="50"><img src="templates/subSilver/images/cat_folder_big.gif" width="46" height="25" alt="Нет новых сообщений" title="Нет новых сообщений" /></td>
   <td class="row1" width="100%" height="50" colspan="1" valign="top">
      <span class="forumlink"><a href="forum8.html?quot; class="forumlink">Железо</a><br /></span>
      <span class="genmed">Всё о проблемах и просто о компьютерном железе!</span>
      <span class="gensmall"><br /><b>Модераторы:</b>&nbsp;<a href="./profile.php?mode=viewprofile&amp;u=2">Siava</a>, <a href="./profile.php?mode=viewprofile&amp;u=11">sm1le</a>, <a href="./profile.php?mode=viewprofile&amp;u=20">sert</a><br /><b>Форумы:</b>&nbsp;<a href="./viewtopic.php?p=160967#160967"><img src="templates/subSilver/images/icon_minipost.gif" border="0" alt="Нет новых сообщений" title="Нет новых сообщений" align="middle" /></a><a href="./viewforum.php?f=10" title="Всё про разгон процов, видях, памяти и т.д.." class="gensmall">Оверклокинг</a></span>
   </td>
   <td class="row2" align="center" valign="middle" height="50"><span class="gensmall">144</span></td>
   <td class="row2" align="center" valign="middle" height="50"><span class="gensmall">4231</span></td>
   <td class="row3" align="center" valign="middle" height="50" nowrap="nowrap"> <span class="gensmall"><a href="post161339.html#161339" title="Не включается тачка">Не включается тачка</a><br /><b>Сегодня в 19:56</b><br /><a href="profile.php?mode=viewprofile&amp;u=575">Бобер</a> <a href="post161339.html#161339"><img src="templates/subSilver/images/icon_latest_reply.gif" border="0" alt="Посмотреть последнее сообщение" title="Посмотреть последнее сообщение" /></a></span></td>
</tr>
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.2
 
Сообщения: 2643
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер

Сообщение Xpert 11.09.2005 22:22

Siava писал(а):./viewforum.php?f=10
< . . . >
./viewtopic.php?p=160967#160967

Эти две?

Я думаю надо менять код который отвечает за генерацию ссылок. По умолчанию все ссылки в phpBB относительные. Если пытаться доделывать обработчик под то что есть, то это не самый лучший вариант. Надо удалить из этих ссылок
Код: Выделить всё
./


Добавлено спустя 1 минуту 12 секунд:

Кстати...
У тебя народ ссылками на посты прямыми преобразованными часто пользуется? А то есть мысль от них отказаться.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
 
Сообщения: 5637
Зарегистрирован: 13.03.2004 21:27
Откуда: msk.ru

Сообщение Siava 12.09.2005 2:08

Xpert
Кстати...
У тебя народ ссылками на посты прямыми преобразованными часто пользуется? А то есть мысль от них отказаться
Что-то я опять не понимаю, что ты имеешь в виду :oops: :lol:

Пасиб за подсказку - оно :), функции подфорумов решил не править, а лишь добавил точку в преобразование ссылок в page_header.php

Надеюсь синтаксис правильный? Вроде всё работает :roll:

Код: Выделить всё
      // Don't want 2 pages with simular content
      "'(?<!/.)viewforum.php\?f=([0-9]+)&amp;topicdays=([0-9]+)&amp;start=0'",
      // Basic forum pagination link
      "'(?<!/.)viewforum.php\?f=([0-9]+)&amp;topicdays=([0-9]+)&amp;start=([0-9]+)'",
      // Basic forum link
      "'(?<!/.)viewforum.php\?f=([0-9]+)'",

      // Don't want 2 pages with simular content
      "'(?<!/.)viewtopic.php\?t=([0-9]+)&amp;postdays=([0-9]+)&amp;postorder=([a-zA-Z]+)&amp;start=0'",
      // Basic topic pagination link
      "'(?<!/.)viewtopic.php\?t=([0-9]+)&amp;postdays=([0-9]+)&amp;postorder=([a-zA-Z]+)&amp;start=([0-9]+)'",
      // 2 pages again
      "'(?<!/.)viewtopic.php\?t=([0-9]+)&amp;start=0&amp;postdays=([0-9]+)&amp;postorder=([a-zA-Z]+)&amp;highlight=([a-zA-Z0-9%]*)'",
      // Topic link at the top of the page
      "'(?<!/.)viewtopic.php\?t=([0-9]+)&amp;start=([0-9]+)&amp;postdays=([0-9]+)&amp;postorder=([a-zA-Z]+)&amp;highlight=([a-zA-Z0-9%]*)'",
      // 2 pages again
      "'(?<!/.)viewtopic.php\?t=([0-9]+)&amp;start=0'",
      // Topic pagination at forum view
      "'(?<!/.)viewtopic.php\?t=([0-9]+)&amp;start=([0-9]+)'",
      // Topic links from search
      "'(?<!/.)viewtopic.php\?t=([0-9]+)&amp;highlight=([a-zA-Z0-9%]*)'",
      // Basic topic link
      "'(?<!/.)viewtopic.php\?t=([0-9]+)'",
      // Basic post link
      "'(?<!/.)viewtopic.php\?p=([0-9]+)'",


В .htaccess не добавлял.. а если и добавлять, то должно быть примерно так?
Код: Выделить всё
RewriteRule ^forum([.0-9]+)\.html$ viewforum.php?f=$1
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.2
 
Сообщения: 2643
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер

Сообщение Xpert 13.09.2005 10:08

Siava писал(а):Надеюсь синтаксис правильный? Вроде всё работает

Буду вечером досконально смотреть.

Siava писал(а):В .htaccess не добавлял.. а если и добавлять, то должно быть примерно так?

Там уже все нужно есть. То что ты написал работать не будет.
Точка лишняя.

Siava писал(а):Что-то я опять не понимаю, что ты имеешь в виду

У меня есть идея вообще отказаться от преобразования прямых ссылок на сообщения потому что практика показала что такие ссылки следует запретить к индексации, а чтобы их запретить, преобразовывать совсем не обязательно. :) Вот и спрашиваю совета - отказаться от преобразования или нет. Просто если у тебя юзеры часто используют преобразованные ссылки прямо на посты, может ты пострадаешь :).
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
 
Сообщения: 5637
Зарегистрирован: 13.03.2004 21:27
Откуда: msk.ru

Пред.След.

Вернуться в Бета-версии модов для phpBB 2.0.x

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0