Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Точнее работает, он модифицирует путь вида viewtopic.php?pid=<PID> в viewtopic.php?id=<ID>&p=<P>. Ставьте себе, всё отлично работает.
А якоря нет чтоли?
Как же пользователь будет переходить к сообщению?
А пользователю что? Можно, только как вобла - один пост серферу и поисковику, в противном случае это будет называться клоакинг.
А пользователю всю страницу, притом с точным переходом на нужный пост
Точнее работает, он модифицирует путь вида viewtopic.php?pid=<PID> в viewtopic.php?id=<ID>&p=<P>. Ставьте себе, всё отлично работает.
Для каждого юзверя с разным количеством постов на страницу такая штука работает?
А якоря нет чтоли?
Как же пользователь будет переходить к сообщению?
Ну дык я написал, какая чать модифицируется, всё, что остаётся после метки не трогаем.
Тоесть, ссылка на твоё сообщение http://punbb.ru/viewtopic.php?pid=7389#p7389 приводится к виду http://punbb.ru/viewtopic.php?id=823&p=2#p7389
А пользователю всю страницу, притом с точным переходом на нужный пост
Если не нужно, чтобы сайт нормально индексировался поисковыми машинами, то можно и так сделать. Если нужно, то я уже писал про клоакинг.
Для каждого юзверя с разным количеством постов на страницу такая штука работает?
А мемберы с какой целью будут далеко бегать, если есть встренный поиск, который порой даже лучше?
Нет конечно, этого нет и ни в каком другом форуме. Подумайте сами, что даже количество сообщений в топике может быть разным...
Чёрт, долго же я мучил француза (http://www.punbb.fr/forums/viewtopic.ph … 095#p33095) и себя, а оказалось, что это банальная мистика, как и раздвоение постов.
спасибо тебе maximum!
1) здесь мод недоработан!
надо сменить строку
$tpl_main = str_replace(str_replace('<PID>', $pid, $pattern_in), htmlentities(str_replace(Array('<ID>', '<P>'), Array($url['topic_id'], $url['p']), $pattern_out)), $tpl_main);
на
$tpl_main = str_replace(str_replace('<PID>', $pid, $pattern_in).'#', htmlentities(str_replace(Array('<ID>', '<P>'), Array($url['topic_id'], $url['p']), $pattern_out)).'#', $tpl_main);
иначе получится, когда тема из нескольких страниц, и ссылка на пост на первой странице будет приводить совсем на другую тему - путаница.
2) Я УЖЕ 3-и сутки плохо сплю от того что этот мод завалил мой форум. проблема описана тут:
Обсуждение сборки punbb-1_2_хх-russian-utf только здесь!
я на 100% уверен что это именно ЭТОТ мод, потому что когда я убираю его из footer.php - и ничего более не меняю - у меня начинают сразу же нормально работать и редактирование, и стереть могу этот пост и перенести и ответить - короче всё нормально
с обратной стороны- я взял не тронутую сборку ревизии 85, взял бвзу с "проблемным" постом и попробовал - работает. Вставил в футер.пхп этот мод - и перестало работать - выдаёт аналогичные 150 таих кусков: Обсуждение сборки punbb-1_2_хх-russian-utf только здесь!
[size=24]ПОМОГИТЕ!!!![/size]
мне очень надо чтобы этот мод у меня на форуме был
Где здесь? По этой cсылке он уде давно исправлен.
И как вы уже могли видеть - мод работает, причём на этой сборке у меня работают ещё два форума. Конечно я не исключаю того, что ошибки могут внезапно появиться, от punbb можно много чего ждать
Уже 5-й ден не знаю что и делать!!!
МАКС вот видишь - и на твоеё сборке тоже вылазит эта гадость!!
я читал твои переписки с французами и видел что ты добился исправлений в этом моде. Прошу тебя помоч и мне - вот с таким безобидным постоя вылетает sadhcs сказал что это изза опустошения буфера ДО чегото.. я ни бум-бум.
прошу - пообщайся с французами!!
у меня версия мода 1.2 - последняя. но она именно так себя и ведёт. почему - незнаю. это не в первый раз уже. на вех сборках провелил sad
Вижу, но что - бы добиться такой ошибки - надо постараться. Посмотрел на др форумах, где есть объёмные посты - такого нет, но там так же нет тегов. Может всё из - за огромного числа тегов?
Можно попробовать отписать на форуме punb.fr, и продублировать ошибку на форуме разработчика мода - http://www.ctrlaltsuppr.com.
Я вначале общался с ним на английском, но он знает его плохо и по этому пришлось переходить на французский - на машинный перевод онлайн словарь.
По этой cсылке он уде давно исправлен.
- ну да именно так его и исправили - заменили эту строку
http://wpforum.ru/forum5.html - тут я сделал тему с таким постом. Как ты удалил его?
Я не знаю кроме как : убрал кусок этого мода из footer.php, удалил его и снова вернул кусок мода в футер. так?
Так это значит что он НЕ работает
т.к. я пользую punBB как CMS - мне важно имть возможность постить обьёмные тексты, статьи и т.п.
можешь чем то ещё помоч, или тебе пофик что и у тебя на форуме запросто может возникнуть такая ошибка?
Редактировался niikto (2007-07-14 08:21:55)
Зашёл по ссылке "Модерировать форум" и удалил.
Работает всё, ваш случай - исключительный, по этому он и имеет место быть. А что с обычным текстом не так?
Конечно, как минимум неприятно, будем бороться. Один из вариантов я предложил чуть выше.
Редактировался maximum (2007-07-14 10:39:40)
Работает всё
ну да?
почему тогда я не мог удалить?
и не могу ни под админом ни под юзером-хозяином, ни на локале, ни на сервере (у себя) ни на сервере У ТЕБЯ - не мог. а когда у себя из footer.php стираю этот мод - удаляется. И редактируется и ответить можно,
а если снова мод туда запихнуть - то перестанут работать все пункты этого меню..
т.к. у тебя я не мог удалить - думаю там таже проблема - поэтому я думаю тебе пришлось убрать мод, удалить, и снова вернуть мод, так?
иначен ен понимаю как ты удалил этот пост?
или ты темы в модерировании удалил?
а всё. ясно
а с постом то не работает. это НЕ исключительный случай - у меня просто бывают большие посты, я боюсь каждый раз сталкиваться с этой проблемой, это будет ещё не раз
я бы и рад последовать твоему совету, но у меня и с аглицким то никак. если можешь найти время - помоги, ато translate.ru мнея очень злит
ну да?
Я же написал - "ваш случай - исключительный".
Только что снова создал сообщение с текстом без тегов общим объёмом чуть меньше 64кб - всё нормально, правится и цитируется.
я бы и рад последовать твоему совету, но у меня и с аглицким то никак. если можешь найти время - помоги, ато translate.ru мнея очень злит sad
И я не полиглот.
Только что снова создал сообщение с текстом без тегов общим объёмом чуть меньше 64кб - всё нормально, правится и цитируется.
я и не сомневался. Но мой случай вовсе не исключительный. Мне что, прикажете, выдать обьявление на форуме - "не используйте тегов более чем n ?"
абсурд
я пока отрубил этот мод. нафик тока он вообще нужен, если с тегами не рабоате. уход от тегов - не выход.
жаль что так ничего и не исправили..
хотя вот тут есть какая то идея: http://www.punbb-hosting.com/forums/art … d=254#p254
А что и как надо было исправить? Я лично просто закрыл все pid=n в robots.txt
случайно наткнулся на тему, прочитал, пришла мысль:
в начале viewtopic проверять рефер. Если он ЕСТЬ и НЕ содержит хоста форума то выдавать редирект...
if(isset($_GET['pid']) && isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!='' && strpos($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST'])===false) {
redirect('viewtopic.php?pid='.$_GET['pid'].'#p'.$_GET['pid'],$lang['to pid from out']);
}
где $lang['to pid from out'] что-то типа. "[mono]Вы прошли по прямой ссылке к посту не с нашего форума. Сейчас вы будете перенаправлены непосредственно к нему[/mono]". Ну фразу любую можно поставить.
Вставить все это после:
// Load the viewtopic.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/topic.php';
П.С. Код не проверял. возможно есть какая-то опечатка. Хотелось бы услышать отзывы по решению, может я что не так понял из темы?
Редактировался trijin (2008-01-21 15:46:14)
Вы прошли по прямой ссылке к посту не с нашего форума. Сейчас вы будете перенаправлены непосредственно к нему
Это для тупых? Лучше вообще на все действия "повесить" подобные подсказки, на закрытие форума обязательно!
Это для тупых?
да не, для всех Я же говорю что фразу любую можно повесить.
Например "[mono]В связи с тем что яндекс не умеет правильно сохранять прямые ссылки на посты, нам приходится отлавливать его и ему подобных, поэтому вы видите эту надпись. Через пару секунд вас перебросит к посту, если конечно вы успели это прочитать.(если вообще читали)[/mono]"
))))
да не, для всех smile Я же говорю что фразу любую можно повесить.
Я вообще, смысл данной фичи непонятен.
Я вообще, смысл данной фичи непонятен.
то что если пришли откуда-то слева, то скорее всего без якоря, поэтому перехватываем и перебрасываем на пост с якорем.
Я не разбираюсь в кодинге но разве трудно сделать так чтобы названия тем переводились в транслит и подставлялись в урл вместо этих цифр?
Установил хак для преобразования pid в id (упомянутый в этом топике), все отлично работает.
Но, остались два момента, которые этот хак не обрабатывает:
1) При переходе по ссылкам вида _http://domain/viewtopic.php?id=x&action=new и _http://domain/viewtopic.php?id=x&action=last идет редирект на ссылки вида _http://domain/viewtopic.php?pid=Y#pY
Как я понял за это отвечает следующий участок кода из viewtopic.php:
// If action=new, we redirect to the first new post (if any)
else if ($action == 'new' && !$pun_user['is_guest'])
{
$result = $db->query('SELECT MIN(id) FROM '.$db->prefix.'posts WHERE topic_id='.$id.' AND posted>'.$pun_user['last_visit']) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
$first_new_post_id = $db->result($result);
if ($first_new_post_id)
header('Location: viewtopic.php?pid='.$first_new_post_id.'#p'.$first_new_post_id);
else // If there is no new post, we go to the last post
header('Location: viewtopic.php?id='.$id.'&action=last');
exit;
}
// If action=last, we redirect to the last post
else if ($action == 'last')
{
$result = $db->query('SELECT MAX(id) FROM '.$db->prefix.'posts WHERE topic_id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
$last_post_id = $db->result($result);
if ($last_post_id)
{
header('Location: viewtopic.php?pid='.$last_post_id.'#p'.$last_post_id);
exit;
}
}
2) При создании и редактировании поста происходит редирект на url с pid вида _http://domain/viewtopic.php?pid=Y#pY, а не с id
Код из post.php, который отвечает за это:
redirect('viewtopic.php?pid='.$new_pid.'#p'.$new_pid, $upload_result.$lang_post['Post redirect']);
Код из edit.php, который отвечает за это:
redirect('viewtopic.php?pid='.$id.'#p'.$id, $attach_result.$lang_post['Edit redirect']);
maximum, niikto и все остальные, кто в теме, помогите пожалуйста решить эти проблемы
можно взглянуть на проблему иначе: не мучаться с редиректами и лишними запросами, а всего-лишь указать поисковику, что страницы с pid= не надо индексировать.
открыть viewtopic.php, найти
define('PUN_ALLOW_INDEX', 1);
заменить на
if (!isset($_GET['pid']))
define('PUN_ALLOW_INDEX', 1);
(чтобы понять зачем нужен PUN_ALLOW_INDEX, поищите его в header.php)
не правда ли, так проще!
Спасибо. Безусловно, так проще. Но хочется по возможности вообще "уйти" от pid (т.е. не только для бота, но и для юзера)...