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

[2.3.x](SnS) AJAX Быстрый ответ


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

Вторая версия мода, вот как выглядит эта функция(там изменения от другой модификации присутствуют):

function Error($error)

{

$override = 0;

header("HTTP/1.1 404 sorry this page cannot be found");

$this->minerva->forcenocache = 'NONE';

 

// (SnS) AJAX Fast Reply

if( $this->input['do'] == 'sns-fast-reply-post' OR $this->input['do'] == 'sns-fast-reply-get' )

{

$this->load_language('lang_error');

$this->class_ajax->return_string('error#'.$this->lang[ $error['MSG'] ]);

exit();

}

// (SnS) AJAX Fast Reply [E]

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

  • Ответы 771
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

Вторая версия мода, вот как выглядит эта функция(там изменения от другой модификации присутствуют):
function Error($error)

{

$override = 0;

header("HTTP/1.1 404 sorry this page cannot be found");

$this->minerva->forcenocache = 'NONE';

 

// (SnS) AJAX Fast Reply

if( $this->input['do'] == 'sns-fast-reply-post' OR $this->input['do'] == 'sns-fast-reply-get' )

{

$this->load_language('lang_error');

$this->class_ajax->return_string('error#'.$this->lang[ $error['MSG'] ]);

exit();

}

// (SnS) AJAX Fast Reply [E]

Тогда сверьтесь с инструкцией, там это уже давно иначе выглядит :D

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

Вот прям сейчас скачал архив, 14й пункт:

14. Открыть файл ./sources/ipsclass.php, найти:

 

//-----------------------------------------

// Showing XML / AJAX functions?

//-----------------------------------------

 

if ( $this->input['act'] == 'xmlout' )

{

@header( "Content-type: text/plain" );

print 'error';

exit();

}

 

Добавить ВЫШЕ(!):

 

// (SnS) AJAX Fast Reply

if( $this->input['do'] == 'sns-fast-reply-post' OR $this->input['do'] == 'sns-fast-reply-get' )

{

$this->load_language('lang_error');

$this->class_ajax->return_string('error#'.$this->lang[ $error['MSG'] ]);

exit();

}

// (SnS) AJAX Fast Reply [E]

Найдите 10 отличий, как грится.

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

У меня тоже эта ошибка с экстра, но в инструкции точно также, как и в цитате выше! Поправьте тогда инструкцию.

Приношу свои извинения за дезинформацию. Пункт выполняем так:

14. Открыть файл ./sources/ipsclass.php, найти:

	//-----------------------------------------
	// Showing XML / AJAX functions?
	//-----------------------------------------

	if ( $this->input['act'] == 'xmlout' )
	{
		@header( "Content-type: text/plain" );
		print 'error';
		exit();
	}

Добавить ВЫШЕ(!):

	// (SnS) AJAX Fast Reply
	if( $this->input['do'] == 'sns-fast-reply-post' OR $this->input['do'] == 'sns-fast-reply-get' )
	{
		$this->load_language('lang_error');
		if ( isset($error['EXTRA']) AND $error['EXTRA'] )
		{
			$this->lang[$error['MSG']] = str_replace( '<#EXTRA#>', $error['EXTRA'], $this->lang[$error['MSG']] );
		}
		$this->class_ajax->return_string('error#'.$this->lang[$error['MSG']]);
		exit();
	}
	// (SnS) AJAX Fast Reply [E]

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

Теперь заработало, спасибо!

Только один косяк: выдает всегда значение интервала флуд-контроля в секундах, т.е. если ограничение 30 секунд и 25 секунд после предыдущего сообщения прошло, то выдает всё равно, что нужно подождать 30 секунд, а не 5.

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

Это уже "проблема" IPB, он всегда одинаковое сообщение выдаёт. Можно в sources/action_public/post.php найти

 

						if ( time() - $this->ipsclass->member['last_post'] < $this->ipsclass->vars['flood_control'] )
					{
						$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'flood_control' , 'EXTRA' => $this->ipsclass->vars['flood_control'] ) );
					}

и заменить на

 

						if ( time() - $this->ipsclass->member['last_post'] < $this->ipsclass->vars['flood_control'] )
					{
						$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'flood_control' , 'EXTRA' => $this->ipsclass->vars['flood_control'] + $this->ipsclass->member['last_post'] - time() ) );
					}

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

далее по всему файл искать подобные куски по кл. слову 'flood_control' и делать аналогичные замены.

 

Всего в 4х местах.

в sources/action_public/post.php у меня только в этом куске встретилась эта фраза, заменил, теперь всё работает. Точно должно было быть в 4х местах?

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

Я все заменил как написано и флуд контроль не работает ;) Нужно вносить изменения только в ./sources/ipsclass.php? Нужно ли перекешировать?

 

Сразу скажу, всю чему перечесал :D

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

далее по всему файл искать подобные куски по кл. слову 'flood_control' и делать аналогичные замены.

 

Всего в 4х местах.

в sources/action_public/post.php у меня только в этом куске встретилась эта фраза, заменил, теперь всё работает. Точно должно было быть в 4х местах?

Согласен, этого достаточно.

 

Я все заменил как написано и флуд контроль не работает ;) Нужно вносить изменения только в ./sources/ipsclass.php? Нужно ли перекешировать?

 

Сразу скажу, всю чему перечесал :D

А раньше работал-то? Опишите проблему в полном объёме.

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

Олег, правда флуд-контроль перестаёт работать.

Вернее, он работает но странно как-то.

Тестирую на локалке.

1) БЕЗ аякс-ответа ставлю интервал флуд-контроля = 5 сек. Всё работает, как и положено - нужно ждать 5 секунд. Иначе просто не даёт отправить сообщение.

 

2) С аякс-ответом ставлю интервал флуд-контроля = 5 сек. НЕ работает. Сообщения отправляются. Ставлю 10 сек. - всё равно отправляются. Ставлю 5000 сек. - вот уже не пропускает. Говорит, нужно подождать 5000 секунд.

 

ЗЫ: Если что - стили перекэшированы после установки мода.

ЗЫЫ: Версия мода: №2, 26.8.2008, 20:00

ЗЫЫЫ: Браузер: Firefox 3.0.1

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

Какое у тебя получается крайнее значение этого параметра? Я это к наличию накладок на запросы, должно сказываться. Если при 10 секундах будет работать, то дело в этом, а если при 100, тогда имеет смысл разбираться.
Ссылка на комментарий
Поделиться на других сайтах

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

Может стоит реализовать подобную фичу? По-моему, не должно сложно быть, вот какой код работает на странице вконтакте:

<script type="text/javas?1?ript">
var memCount = 7813477;
var memPerSec = 0.916437040529;
function updateCount() {
next = -(1000 / memPerSec)*Math.log(Math.random());
memCountString = '' + memCount;
len = memCountString.length;
memCountString = memCountString.substr(0,len-6) " " memCountString.substr(len-6,3) " " memCountString.substr(len-3,3);
ge('memCount').innerHTML = memCountString;
memCount = memCount 1;
setTimeout(updateCount, next);
}
window.onload = function(){
updateCount();
}
</script>

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

Какое у тебя получается крайнее значение этого параметра? Я это к наличию накладок на запросы, должно сказываться. Если при 10 секундах будет работать, то дело в этом, а если при 100, тогда имеет смысл разбираться.

Проверил!

1-99 сообщения пропускает!

от 100 сек. и больше - уже ограничивает!

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

Какое у тебя получается крайнее значение этого параметра? Я это к наличию накладок на запросы, должно сказываться. Если при 10 секундах будет работать, то дело в этом, а если при 100, тогда имеет смысл разбираться.

Проверил!

1-99 сообщения пропускает!

от 100 сек. и больше - уже ограничивает!

А при полном ответе? :D Согласитесь, странное число, вроде делимость на 100 нигде не используется. У меня пока такой глюк не подтвердился, буду смотреть подробнее как гипс снимут, @todo.

 

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

Может стоит реализовать подобную фичу? По-моему, не должно сложно быть, вот какой код работает на странице вконтакте:

Можно попробывать прописать адаптацию этого кода прямо в текст сообщения об ошибке в lang файл. Будет работать как независимый хак. Записал...

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

А при полном ответе? :D Согласитесь, странное число, вроде делимость на 100 нигде не используется. У меня пока такой глюк не подтвердился, буду смотреть подробнее как гипс снимут, @todo.

"Согласны". ;)

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

Неправильность в установке мода исключена.

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

Честно говоря, я даже не пробывал, работало или нет. Читал форум смотрю описывают проблему и сморю решение, я все заменил, как тут написано и ничего. У меня стоит интервал в 30 секунд. Отпровляю сообщение, следом второе и он просто их склеивает :D не выдавая никакого предупреждения.
Ссылка на комментарий
Поделиться на других сайтах

Можно попробывать прописать адаптацию этого кода прямо в текст сообщения об ошибке в lang файл. Будет работать как независимый хак. Записал...

есть успехи?

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

1 сентября на дворе, как учёба войдёт в русло — тогда только смогу заняться.
Ссылка на комментарий
Поделиться на других сайтах

Подскажите как сделать что б быстрый ответ всегда сразу врубался!:

Вы ошиблись темой? :D

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

да нет! просто не знаю где ещё спросить, как сделать что б быстрый ответ сразу открывался?

http://www.ibresource.ru/forums/index.php?...ost&p=23437

В поиске это есть.

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

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


×
×
  • Создать...

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

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