Перейти к контенту

Как избавиться от переброса к началу темы


Lera

Рекомендуемые сообщения

Как-то я уже описывала проблему в общей теме про дневники. Тогда replicant дал хорошее решение, тут http://www.ibresource.ru/forums/index.php?...st&p=268067 Я поставила, всё заработало нормально. Но я под лисой сижу. А кого ИЕ не работает и долго никто не говорил о проблеме.

 

Проблема такова. Если в теме более 1 страницы (не важно, хоть 10), и когда пишешь свой коммент, то при отправке выкидывает на первую страницу, то есть к началу сообщения. У меня в лисе (Файерфокс) было всё нормально после установки решения от replicant (спасибо ему), только при стирании выкидывало на первое сообщение, а так оставалась там, где написала или редактировала. А вот под ИЕ не помогло. Народ терпеливо пользовался, а сейчас неудобно становится, когда много страниц в дневнике.

Может есть у кого волшебное лекарство от этой болезни? Буду очень признательна. :D

Спасибо.

Изменено пользователем Lera
Ссылка на комментарий
Поделиться на других сайтах

+1

Аналогичная проблема с редактированием постов и комментариев - в обоих случаях выбрасывает в начало страницы, а не в отредактированную запись. :D

Ссылка на комментарий
Поделиться на других сайтах

то, что приведено в http://www.ibresource.ru/forums/index.php?...st&p=268067 не зависит от браузера и должно работать в любом случае, возможно в некоторых местах логично заменить $_POST или $_GET на $ibforums->input
Ссылка на комментарий
Поделиться на других сайтах

Архар, ты бы сказал конкретно в каких, пожалуйста. А то ведь мест много, а "конкретные" места знать надо :D

 

Попробую методом тыка найти.

 

Если получится.

 

Сделала так:

В post edit

// Back to journal

		$journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url."user=".$journal->users['id']."&view=".$ibforums->input[pid]);

 

в comment_edit.php

 

// return to comments

					$journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$row['pid'].'&st='.$ibforums->input[st].'&view='.$ibforums->input[comm]);
	}
}

 

При редактировании кидает на первую страницу всё равно.

 

В comment new стоит вот так:

			// send to trackers

		if ($journal->users['j_public'] != 0)
		{
			$this->post_tracker($ibforums->input['comm'],$rpost['author_name'],$row['post_date'],$rpost['post']);
		}

		$journal->redirect_screen($ibforums->lang['j_redir_post'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$ibforums->input['comm'].'&view='.$rpost['cid']);
	}
}

 

в comment misc заменила get

// --------------------------------
	// Back to comments page
	// --------------------------------
	$journal->redirect_screen($ibforums->lang['j_redir_del'],$journal->base_url.'user='.$journal->users['id'].'&comm='.$row['post_id'].'&st='.
$ibforums->input[st]);

 

При отправке коммента кидает на первую страницу, а вот если обновить страницу, то оказываешься там, где писала сообщение.

 

	// --------------------------------
	// Make page number
	// --------------------------------
	$st = (floor(($post['comments']-1) / $journal->users['j_comment_page']) * $journal->users['j_comment_page']);
	$st = ($st > 0) ? '&st='.$st : '';

	// --------------------------------
	// Goto last comment
	// --------------------------------
	$journal->redirect_screen($ibforums->lang['j_redir_find'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$post['pid'].$st.'#c'.$comm['cid']);
}

 

В общем, может вы увидите ошибку? Не работает у меня , к сожалению. При удалении тоже на первую страницу пинка даёт.

Ссылка на комментарий
Поделиться на других сайтах

ну ладно, полез в код

 

первое

редактор комментариев

в comment_edit.php необходимо

$journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$row['pid'].'&st='.$ibforums->input['st'].'&view='.$ibforums->input['comm']);

но и это еще не все

в шаблоне Posts - comment_btn_edit

 • <a href="{journal.script_url}user={journal.users['id']}&comm={$row['cid']}&aid=edit&st={ipb.input['st']}">{ipb.lang['j_edit_btn']}</a>

 

второе

post_edit.php

необходимо

$journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url."user=".$journal->users['id']."&view=".$row['pid']."&st=".$ibforums->input['st']);

а также

шаблон Posts - post_btn - первая строчка

<a href="{journal.script_url}user={$row['journal_id']}&pid={$row['pid']}&aid=edit&st={ipb.input['st']}">{ipb.lang['j_edit_btn']}</a> • 

 

третье

удаление

comment_misc.php - delete_comment() - конец целиком

		// --------------------------------
	// Update comment statistics
	// --------------------------------
	$DB->query("SELECT cid FROM ibf_jcomments WHERE post_id='".$row['post_id']."' ORDER BY post_date DESC");
	$max = $DB->get_num_rows();
	$stats = $DB->fetch_row();
	if (!$stats['cid'])
	{
		$stats['cid'] = -1;
	}
	$DB->query("UPDATE ibf_jposts SET last_cid='".$stats['cid']."', comments='".$max."' WHERE pid='".$row['post_id']."'");

	$DB->query("SELECT cid FROM ibf_jcomments WHERE post_id='".$row['post_id']."' AND cid < '".intval($ibforums->input['comm'])."' ORDER BY cid DESC");
	$lastcom = $DB->fetch_row();

	$DB->query("SELECT COUNT(cid) as count, MAX(post_date) as post_date FROM ibf_jcomments WHERE owner_id='".$journal->users['id']."'");
	$comment = $DB->fetch_row();
	if (!$comment['post_date'])
	{
		$comment['post_date'] = 0;
	}
	$DB->query("UPDATE ibf_jmembers SET j_last_comment='".$comment['post_date']."', j_comments='".$comment['count']."' WHERE id='".$journal->users['id']."'");

	// --------------------------------
	// Back to comments page
	// --------------------------------
	$journal->redirect_screen($ibforums->lang['j_redir_del'],$journal->base_url.'user='.$journal->users['id'].'&comm='.$row['post_id'].'&view='.$lastcom['cid']);

Ссылка на комментарий
Поделиться на других сайтах

но и это еще не все
в шаблоне Posts - comment_btn_edit

вот та точка в скрипте это что? Её так и ставить точкой или это что-то превратилось в точку?

• Проглатывает (((

 

• <a href="{journal.script_url}user={journal.users['id']}&comm={$row['cid']}&aid=edit&st={ipb.input['st']}">{ipb.lang['j_edit_btn']}</a>

 

И не могу вот этого найти, не подскажешь где? Форум 2.1.7

в шаблоне Posts - comment_btn_edit

Изменено пользователем Lera
Ссылка на комментарий
Поделиться на других сайтах

хочется помочь, т.к. у меня таких проблем нет. Но я не понимаю, почему тут упоминается _POST, _GET и проч. input...

в comment_edit.php у меня так

$journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url.'user='.$ibforums->input['user'].'&comm='.$row['pid'].'&view='.$row['cid']);

в post_edit.php так

$journal->redirect_screen($ibforums->lang['j_redir_edit'],$journal->base_url."user=".$journal->users['id']."&view=".$row['pid']);

все вроде работает :D

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

 

про это тоже ничего не понимаю ;)

Если в теме более 1 страницы (не важно, хоть 10), и когда пишешь свой коммент, то при отправке выкидывает на первую страницу, то есть к началу сообщения.
такая проблема была в предыдущей версии mJournal, в 2.07b ее нет.
Ссылка на комментарий
Поделиться на других сайтах

Возможный вариант того, как обуздать редирект в post_misc.php по части удаления записей в function post_delete();

после

		 // --------------------------------
	// Delete journal post
	// --------------------------------
	function delete_post()
	{
			global $ibforums, $DB, $journal;

добавляем

 $DB->query("SELECT pid FROM ibf_jposts WHERE pid > '".$ibforums->input['pid']."' AND journal_id='".$journal->users['id']."' ORDER BY pid ASC LIMIT 1");

			$rn = $DB->fetch_row();

и в самом конце функции меняем

$journal->redirect_screen($ibforums->lang['j_redir_del'],$journal->base_url."user=".$journal->users['id']);

на

$journal->redirect_screen($ibforums->lang['j_redir_del'],$journal->base_url."user=".$journal->users['id']."&view=".$rn['pid']);

 

В случае удаления из дневника поста с самым высоким ID система вернет пустой view= , но это не страшно.

При удалении постов вы всегда будете находиться на один пост ранее, перед удаляемым.

 

Про остальные файлы читать тут http://www.ibresource.ru/forums/index.php?...mp;#entry268067

 

Есс-но после прочтения не забыть добавить &st={$_GET[st]} в шаблон skin_posts.php в comm_btn_edit и comm_btn_del!!!

Ссылка на комментарий
Поделиться на других сайтах

такая проблема была в предыдущей версии mJournal, в 2.07b ее нет.

Не хочется ставить, потому что тогда многие моды интересные пропадут после переустановки на новую версию ((( Мне бы решить проблему как-то. А то пишу комментарий и после отправки выбрасывает на первую страницу ((( И только в ИЕ.

 

Хотя обманула, у меня 2.07 и стоит, посмотрела.

 

l-k попробовала как у тебя, не помогает, к сожалению, вернула всё то, что делала, как replicant говорил. У меня в Лисе работает, в ИЕ не хочет. А очень нужно починить.

 

Ребят, помогите, пожалуйста. Может у меня там что не то, не знаю, готова заплатить яндекс деньгами 500 рублей за решение. Для меня это актуальная проблема.

 

У меня в ИЕ ещё и другая проблема, при нажатии на последний коммент, кидает не на него, а к первому сообщению, на первую страницу. Я сейчас нашла старые файлы, до всех изменений, что ставили в последнее время, но увы, всё равно не пашет, что ж может быть? И чего я не программист? Чайник самоварный.

Думала может после изменений "закрыть врагам просмотр через календарь" что-то накосячила, нет, изменила, проверила, не в этом дело. в ИЕ не пашет ничего, всё кидаёт на 1с страницу, в любом случае.

Изменено пользователем Lera
Ссылка на комментарий
Поделиться на других сайтах

2 Lera: не забудь про шаблоны!

Внимательно перечитай мой или Arhar'a пост в этой теме.

Можно одинаково использовать и $_GET и $ibforums->input, главное внести соответствующие правки в шаблон.

 

По части удаления комментариев решение у Arhar'a элегантнее, т.к. там он определяет lastcom и обходится &view, а у меня в свое время было через $_GET[st], но зато без запроса к БД.

 

Удаление постов можно тоже сделать через $_GET[st], но я сделал его также через запрос и view.

Ссылка на комментарий
Поделиться на других сайтах

Читаю весь день, что-то ставлю, откатываю. Не поняла где найти Posts - post_btn и Posts - comment_btn_edit И правки вношу, но всё вслепую пока. Не вижу, где спотыкаюсь.

Спасибо.

 

Ребят, вы спецы, я не могу найти подножку, может она у меня вообще в чём-то странном, одной закорючке, да я не программер, чтобы увидеть это. Если кто возьмёт мои файлы и сделает сам там правки за скромное вознаграждение 500 р, стукните мне в асю 292057458 или в лс, пожалуйста. Я уже второй день бьюсь, не получается. Уже перепробовала даже старые откаты. Не выходит. Боюсь совсем доломать всё.

 

Про шаблоны поняла, replicant спасибо за столько понятный постинг

Изменено пользователем Lera
Ссылка на комментарий
Поделиться на других сайтах

У меня в Лисе работает, в ИЕ не хочет. А очень нужно починить.

ломаю голову, чем же объяснить такое странное поведение. Lera, а после редактирования, когда перебрасывает на начало сообщения (первую страницу дневника), в адресной строке IE что написано?

 

Arhar, нет смысла указывать в url параметр st, если в этой же строке передается параметр view. Т.к. смотри:

в posts.php в самом начале написано

// calculate post page and view them

if (preg_match('/^\d+$/',$ibforums->input['view']))

{

$this->goto_post();

}

и в этой goto_post уже вычисляется st. Аналогично в comments.php

Изменено пользователем l-k
Ссылка на комментарий
Поделиться на других сайтах

У меня ситуация такова: не работает у всех, у кого ИЕ версии 6. Если включить редикт, то при нажатии на последний комментарий, кидает прямо к нему, к этому последнему комментарию, а если отключить страницу редикта (она напрягает), то кидает в начало дневника.

 

При написании комментария и отправке его, кидает к началу дневника.

При удалении к началу дневника.

При редактировании к началу дневника.

Во всех других браузерах работает, но большинство людей сидит именно на 6 версии ИЕ.

 

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

Откатывала до установки модов, чтоб враги через календарь не видели, кто читал дневник, но увы, не работало тоже. Хотя буду пробовать с самого начала. Вдруг повезёт?

У кого браузер 6 ИЕ, отпишитесь, пожалуйста, как у вас с этим делом? Пытаюсь понять, что делать. И в чём дело.

 

Спасибо большое всем. :D

Ссылка на комментарий
Поделиться на других сайтах

replicant,

бери тогда меньше

;)

 

Ну тут можно > DESC или < ASC. ИМХО одно и то же :D

 

Я делал определение соседнего поста так же как сделано в funcion next_post() или prev_post() (кажется так называется) в comment_edit.php. Вобщем как-то так это было. Решение получилось по ходу написания комментария и раз 10 редактировался пост.

 

Lera, попробуй в админцентре форума сменить метод перенаправления после отправки сообщения с location на meta-redirect или refresh.

 

Подтверждаю странный глюк у Lera. Все мои браузеры IE7, Firefox и Opera последние версии успешно работают в ее блогах, но стоило мне перейти на IE6, как тут же начались сбои и перекидывания.

 

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

Данные изменения надо делать поэтапно проверяя по мере внесения изменений:

- удаление постов

- редактирование постов

- удаление комментариев

- редактирование комментариев

- добавление комментариев

Возможно есть какие-то моды или исправления в коде, которые вызывают подобный эффект.

Ссылка на комментарий
Поделиться на других сайтах

Если переходы к нужной странице правильно работают в случае страницы перенаправления, но не работают без нее, значит, проблема в http заголовках. Т.к. разница между этими двумя методами в том, что в первом используется http refresh, во втором - header("location: "...).

 

replicant, Lera вроде писала вчера, что у нее есть mJournal 2.07 - наверно, немодифицированный, и в нем тоже не работает. Имхо надо бы все-таки порассматривать http запросы, которые получает и отправляет Internet Explorer. Может, найдутся дополнительные ключевые слова для поиска в Гугле :D вот, на скорую руку - http://php.net/header автор первого сверху комментария (от 20.09.2007) жалуется на подобную проблему.

 

Lera, если ты не против, я могу посмотреть на это чудо ;)

Ссылка на комментарий
Поделиться на других сайтах

Lera, ты пробовала переключать метод перенаправления с location на meta-redirect? (или refresh)

 

Мне кажется, надо бы вашего сисадмина спросить - не менял ли он чего в настройках сервера в последнее время. Дело даже не в редактировании. Если запросить страницу journal.php?user=472&view=429, он выдает первую страницу дневника, хотя в адресной строке написано journal.php?user=472&st=5#p429. Если обновить (т.е. запросить прямо, без редиректов), то перебросит ко вторй странице, как положено. Единственная разница между запросами в Firefox и IE в том, что Firefox фактически запрашивает journal.php?user=472&st=5 (а p429 "держит в уме"), а IE - все полностью: journal.php?user=472&st=5#p429.

 

А на форуме нет такой проблемы? После редактирования, удаления сообщений?

Изменено пользователем l-k
Ссылка на комментарий
Поделиться на других сайтах

На форуме нет, на форуме всё нормально.

Lera, ты пробовала переключать метод перенаправления с location на meta-redirect? (или refresh)
Если это в админке, в setting дневников то пробовала, у меня без редикта стояло вообще, но после того, как поставила мод Архара, перестало заходить в темы при нажатии на панели "последний комментарий", включили вчера редикт, с ним хоть заходит на этот последний комментарий.

При обновлении странная вещь. Например, написала комментарий, отправила, улетела к началу к дневника. И если обновить страницу, оно само возвращает после обновления туда, где был написан этот коммент.

Изменено пользователем Lera
Ссылка на комментарий
Поделиться на других сайтах

Если переключение способа редиректа ни на что не повлияет, то вот, я напряглась и придумала еще такой финт ушами :D

 

попробуй везде, где у тебя в вызовах функции redirect_screen упоминается .'#c'., заменить это на 'c'. Это единственное, что отличает редирект на форуме от редиректа в дневниках: на форуме есть амперсанд.

Ссылка на комментарий
Поделиться на других сайтах

l-k ты умничка. Я переключила на рефреш и всё заработало. Спасибо тебе огромное. Всё, ничего и никого не кидает. ИЕ 6 пашет отлично. Остаюсь и при редактировании и при удалении, и при написании коммента на том же месте. :D Я уже отчаялась, вчера откатывала и откатывала, делала и делала. Уже голова кругом пошла, а ты нашла выход. Спасибо.
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.