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

[2.3.x](SnS) AJAX Обновление списка пользователей онлайн


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

Нет, так как у Kvendi он тоже стоит и там проблема исчезла.
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

Апдейтед. Удалите строку жирную в ipb_forums.js

 

Ффтопку фф.

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

Нет, так как у Kvendi он тоже стоит и там проблема исчезла.

ок ... мои действия?... очень не хочется отказываться от такого полезного мода из-за какой-то моей ошибки...

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

Мы после этого таки нашли ещё помарку. Открыть ./jscripts/ipb_forum.js, найти там:

			var ret_arr = PHP_Unserialize(ret_str);
		[b]ret_arr['pid'];[/b]

		document.getElementById('online-total').innerHTML   = ret_arr['total'];
		document.getElementById('online-guests').innerHTML  = ret_arr['guests'];
		document.getElementById('online-members').innerHTML = ret_arr['members'];
		document.getElementById('online-anon').innerHTML    = ret_arr['anon'];
		document.getElementById('online-names').innerHTML   = ret_arr['names'];

Удалить выделенное.

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

Варианты:

1. Написать мне в ПМ адрес форума, посмотрю что ему ещё не нравится.

2. Перед строкой var ret_arr = PHP_Unserialize(ret_str); написать:

alert(ret_str);

, результат написать сюда.

3. Поставить ФФ + FireBug(getfirebug.com) и посмотреть какие данные приходят по аяксу, результат написать сюда.

 

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

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

2. Перед строкой var ret_arr = PHP_Unserialize(ret_str); написать:

alert(ret_str);

результат написать сюда.

сделал... вылетает такой алерт..

a:5:{s:5:"total";s:35:"4 посетителей за последние 15 минут";s:6:"guests";i:0;s:7:"members";i:3;s:4:"anon";i:0;s:5:"names";s:320:"<a href='http://site/index.php?showuser=1' title='13:11'><span style='font-weight:bold;color:#CD853F;'>Ник Юзера1</span></a>, 
<a href='http://site/index.php?showuser=30' title='13:11'>Ник Юзера30</a>, 
GoogleBot, 
<a href='http://site/index.php?showuser=22' title='13:07'>Ник Юзера22</a>";}

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

Из телепатии могу выжать только следующее:

Шаблон skin_boards->ActiveUsers что содержит?

Две новые функции в *.js добавлены?

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

Sannis,

 

Спасибо большое за помощь - нашел ошибку именно в шаблоне...

Все работает, отличный и очень нужный мод!

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

Здорово, что ещё можно тут сказать :D

 

На 2.1 ни у кого нет желания проверить работоспособность мода?

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

Пока сделла для себя автообновление каждые 15 минут, работает на ура ) пришлось правда убрать xmlobj.show_loading() зато очень удобно )
Ссылка на комментарий
Поделиться на других сайтах

Тогда я предлагаю компромис: вы пишите пост с описанием, а я даю на него ссылку в начале темы. А то больно не хочется подводить людей, которые не закрывают браузер :D Согласны? ;)
Ссылка на комментарий
Поделиться на других сайтах

Ну я не уверен что сделал лучший вариант, поэтому для начала посоветуюсь:

Я сделал:

убрал ссылку "обновить"

закоментил xmlobj.show_loading()

в общем шаблоне форума поправил body:

<body onload="setTimeout('ajax_update_online_list()',900000);">

в функции ajax_update_online_list в конце перед return написал

setTimeout('ajax_update_online_list()',900000);

вот собственно и все

поправьте что не так )

 

Хотя наверно лучше создать переменную, которой присваивать settimeout и проверять потом nul нен nul тогда и ссылку можно смело оставить

 

Хотя может правильней будет сделать по другому: еще одна маленькая функция (которая собственно и будет указана в body), которая вызывает ajax_update_online_list(), ставит setTimeout и все, а в ссылке "Обновить" вызывать напрямую ajax_update_online_list()

 

Переделал, если что поправьте профессионалы.

1. В файле ipb_forum.js

найти

//--------------------------------------																							
// (SnS) AJAX Update online users list																							  
//--------------------------------------

Добавить перед

//--------------------------------------																							
//	  Function auto update Online																								 
//--------------------------------------																							
function auto_update_online_list()																								  
{																																   
ajax_update_online_list()																										   
setTimeout('ajax_update_online_list()',300000);																					 
return;																															 
} 
2. Внешний вид->шаблоны->ваш стиль->Изменить общий шаблон форума
найти
<body
заменить на
<body onload="setTimeout('auto_update_online_list()',300000);"

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

Если я правильно вас понял, то нужно

function auto_update_online_list() 
{ 
ajax_update_online_list() 
//setTimeout('ajax_update_online_list()',300000); 
setTimeout('auto_update_online_list()',300000); 
return; // эта строка тоже лишняя. В своей функции я в конце его ставил из чисто эстетических соображений, по привычке в том числе.
}

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

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

Шаблон skin_boards->ActiveUsers что содержит?

Две новые функции в *.js добавлены?

не пойму.. можно подробне? что за новые функции?

у меня так и не заработало

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

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

Если я правильно вас понял, то нужно

Код

function auto_update_online_list()

{

ajax_update_online_list()

//setTimeout('ajax_update_online_list()',300000);

setTimeout('auto_update_online_list()',300000);

return; // эта строка тоже лишняя. В своей функции я в конце его ставил из чисто эстетических соображений, по привычке в том числе.

}

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

ой, да, разумеется, ошибся. А в остальном такой подход верен ?

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

Да, он такой и есть. Оформите ваш пост, если время будет :D
Ссылка на комментарий
Поделиться на других сайтах

Инструкция для автоматического обновления списка присутствующих (сначала необходимо полностью установить сам мод AJAX обоновления списка) :

1. Открыть файл /jscripts/ipb_forum.js

Найти текст:

//--------------------------------------																							
// (SnS) AJAX Update online users list																							  
//--------------------------------------

 

Выше добавить

 

//--------------------------------------																							
//	  Function auto update Online																								 
//--------------------------------------																							
function auto_update_online_list()																								  
{																																   
ajax_update_online_list()																										   
setTimeout('auto_update_online_list()',300000);																					 
return;																															 
}

число 300000 есть интервал обновления списка в милисекундах, т.е. Одна минута равна 60000 милисекунд. Поставьте любой подходящий вам интервал. Не рекомендуется ставить интервал меньше 5 минут, так как эффекта это принесет немного а недовольства пользователей из-за трафика граздо больше.

Если вы не хотите чтобы при каждом автоматическом обновлении списка на форуме отображалось "Подождите...",то:

в этом же файле найти строчку:

xmlobj.show_loading();

И замените её на

// xmlobj.show_loading();

2. Открыть а Админцентре вкладку внешний вид, для каждого из установленных стилей сделайте следующее:

В меню напротив скина выберите:

"Изменить общий шаблон форума"

Далее найдите текст:

<body

и замените его на текст

<body onload="setTimeout('auto_update_online_list()',300000);"

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

Вот собственно и все.

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

BESTRAFER, в консоле ошибок javascript'а есть что-то? (Такая феня есть в Опере и ФФ)

 

Song, я именно из-за этого и не делаю автообновление...

ну значит я просто не понял о чём мод.

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

BESTRAFER, в консоле ошибок javascript'а есть что-то? (Такая феня есть в Опере и ФФ)

 

Song, я именно из-за этого и не делаю автообновление...

ну значит я просто не понял о чём мод.

Всё верно понял :D Просто я не вешаю обновление на таймер. Нажимаешь на ссылку в статистике, она обновляется. Ну а Kvendi уже под себя написал автообновление, посмотрим как скоро это заметят пользователи ;)

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

  • 3 недели спустя...

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

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

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