Ajax base phpbb3(автоматическое обновление элементов форума)
Добавлено: 29 июл 2013, 11:02
Всем доброго времени суток. Сегодня вашему вниманию представляю достаточно хорошу модификацию для наших форумов, а именно - Ajax base.
1. Каждые 15 секунд обновляется Кто онлайн
2. Каждые 15 секунд обновляется статистика форума (кол-во сообщений, пользователей и тд)
3. Предпросмотр сообщения без перезагрузки страницы
Собственно при наличии должного опыта вы сами можете расширить функционал этой модификации. Если заинтересовало - скачиваем и ставим.
Запросов к БД и русификации по инструкции нет, всего несколько правок и мод установлен.
Маленькое дополнение для представленной выше модификации, добавит проверку наличия новых ЛС без перезагрузки страницы. Открываем/styles/ваш стиль/template/index_body.html и находим
Добавляем после найденного
Открываем /styles/ваш стиль/template/overall_header.html и находим
Заменяем найденное на
Открываем /ajax_base.php и находим
Добавляем после найденного
Чистим кеши и готово. Успехов
Внимание !!! Инструкция есть только для стилей на основе Просильвера. НО при наличии хотябы минимальных познаний в HTML вы легко поставите данный мод и на Сабсильвер2.
Для чего же она вообщем создана ??? Создана она для автоматического обновления некоторого содержимого форума без перезагрузки страницы, технология аякс вообщем то. Что на данный момент она может:1. Каждые 15 секунд обновляется Кто онлайн
2. Каждые 15 секунд обновляется статистика форума (кол-во сообщений, пользователей и тд)
3. Предпросмотр сообщения без перезагрузки страницы
Собственно при наличии должного опыта вы сами можете расширить функционал этой модификации. Если заинтересовало - скачиваем и ставим.
Запросов к БД и русификации по инструкции нет, всего несколько правок и мод установлен.
---------------- Дополнение: AJAX-обновление и проверка наличия новых ЛС --------------
Маленькое дополнение для представленной выше модификации, добавит проверку наличия новых ЛС без перезагрузки страницы. Открываем
Код: Выделить всё
setTimeout("reload('ctime', 1000)", 1000);
Код: Выделить всё
setTimeout("reload('priv', 15000)", 15000);
Код: Выделить всё
<!-- IF S_DISPLAY_PM --> (<a href="{U_PRIVATEMSGS}">{PRIVATE_MESSAGE_INFO}</a>)<!-- ENDIF -->
Код: Выделить всё
<!-- IF S_DISPLAY_PM --> (<a href="{U_PRIVATEMSGS}"><span id="priv_span">{PRIVATE_MESSAGE_INFO}</span></a>)<!-- ENDIF -->
Код: Выделить всё
echo sprintf($user->lang['CURRENT_TIME'], $user->format_date(time(), false, true));
}
Код: Выделить всё
else if( $mode == 'priv' )
{
$l_privmsgs_text = $l_privmsgs_text_unread = '';
$s_privmsg_new = false;
if (!empty($user->data['is_registered'])){
if ($user->data['user_new_privmsg']){
$l_message_new = ($user->data['user_new_privmsg'] == 1) ? $user->lang['NEW_PM'] : $user->lang['NEW_PMS'];
$l_privmsgs_text = sprintf($l_message_new, $user->data['user_new_privmsg']);
if (!$user->data['user_last_privmsg'] || $user->data['user_last_privmsg'] > $user->data['session_last_visit']){
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_last_privmsg = ' . $user->data['session_last_visit'] . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
$s_privmsg_new = true;
} else {
$s_privmsg_new = false;
}
} else {
$l_privmsgs_text = $user->lang['NO_NEW_PM'];
$s_privmsg_new = false;
}
$l_privmsgs_text_unread = '';
if ($user->data['user_unread_privmsg'] && $user->data['user_unread_privmsg'] != $user->data['user_new_privmsg']){
$l_message_unread = ($user->data['user_unread_privmsg'] == 1) ? $user->lang['UNREAD_PM'] : $user->lang['UNREAD_PMS'];
$l_privmsgs_text_unread = sprintf($l_message_unread, $user->data['user_unread_privmsg']);
}
}
echo $l_privmsgs_text;
}