51 (13.06.2008 03:42 отредактировано maximum)

Re: Индексация ссылок на пост

BSVC пишет:

Но, остались два момента, которые этот хак не обрабатывает:

Поиск по viewtopic.php?pid и замена на:

В файле viewtopic.php

header('Location: viewtopic.php?id='.$id.'#p'.$first_new_post_id);
...
header('Location: viewtopic.php?id='.$id.'#p'.$last_post_id);

В файле post.php

redirect('viewtopic.php&id=' . ((isset($new_tid))? $new_tid : $tid) . $page . '#p'.$new_pid, $lang_post['Post redirect']);

В файле edit.php

redirect('viewtopic.php?id='.$cur_post['tid'].'#p'.$id, $lang_post['Edit redirect']);

В файле misc.php

redirect('viewtopic.php?id='.$topic_id.'#p'.$post_id, $lang_misc['Report redirect']);

Кстати, пока писал это сообщение, понял причину возникновения вот такой ошибки, мод надо срочно на доработку. Использовать в том виде, в котором он сейчас - нельзя.

Поделиться

52

Re: Индексация ссылок на пост

maximum, спасибо. Только не понял, почему везде '#p=', а не просто '#p'.

Поделиться

53

Re: Индексация ссылок на пост

Кто может решить задачу с получением "last_topic_id" для index.php, и сколько это будет стоить? smile Можно банальным выкидыванием лишнего из этого мода.

Поделиться

54

Re: Индексация ссылок на пост

Если кому интересно решение этой задачи через JS - добавить в footer.php в конце страницы.

<script type="text/javascript">
<!-- //<![CDATA[
var vrs=window.location.href.split('#');
if (!vrs[1]){var vars=vrs[0].slice(window.location.href.indexOf('?')+1).split('&');
for (var i=0;i<vars.length;i++){hash=vars[i].split('=');if (hash[0]=='pid') {window.location='#p'+hash[1];break}}}
//]]> -->
</script>

Кроме того добавил стиль в base.css
DIV .focus {MARGIN-LEFT:16px}

и во viewtopic.php
<div id="p<?php echo $cur_post['id'] ?>" class="blockpost<?php echo $vtbg; if (($post_count + $start_from) == 1) echo ' firstpost'; if ($pid&&$pid==$cur_post['id']) echo " focus"; ?>">

Поделиться