Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Ищется программер, готовый модернизировать Read Tracking Mod
-
- phpBB 1.4.3
- Сообщения: 92
- Стаж: 19 лет 1 месяц
- Откуда: Саров, Россия
- Благодарил (а): 8 раз
- Поблагодарили: 14 раз
Ищется программер, готовый модернизировать Read Tracking Mod
Есть такой мод, называется Read Tracking Mod
Добавляет в БД таблицу, в которой отслеживаются непрочтённые сообщения для каждого юзера.
То есть, хранение не в куках, а в базе данных.
Очень удобно: топик останется непрочитанным, даже если его сейчас не прочитать, не заходить в него, оставив на потом, и вернуться завтра.
Без этого мода приходится, чтобы не потерять непрочитанные темы,
обязательно заходить во всем желательные темы в течение одного визита.
Мод находится до сих пор в бета версии: http://www.phpbb.com/phpBB/viewtopic.php?t=86690
Установлен на моём форуме www.sarov.info/forum и нормально работает.
Имеется проблема. К примеру, в моём форуме с 2.5К юзеров и 200К постов (~150 постов в день) база разбухает за месяц до 450 Мб (с использованием всех трёх рекомендуемых индексов), форум начинает тормозить на этой таблице. Pruning этой таблицы из админовки при таком объёме приводит к тому, что всё просто входит в ступор. Приходится либо периодически просто обнулять таблицу (уничтожать и создавать заново пустую, при этом все темы у всех оказываются прочитанными), либо, как я сейчас думаю сделать, ставить ежедневную cron-задачу на чистку базы от записей старше 7 дней. Если же индексы не использовать, как велено, база разбухает сильно меньше, но подтормаживать начинает почти с самого начала.
Изучив работу мода, я вижу, что мод использует крайне нерациональную систему хранения информации в таблице. Он хранит непрочитанные сообщения (добавление сообщения приводит к добавлению 2.5К записей, мы-гы-гы). А надо бы – наоборот. Свои полные выкладки по улучшенной логике работы мода могу выложить, если есть кто-нибудь заинтересованный в развитии этого мода (в течение ближайших месяцев у меня времени на программирование этого дела не будет). Я вижу, что нет никаких проблем сделать так, что база совсем не будет разбухать, да.
Без этого мода -- просто невозможно уже.
Подсел, как на наркотик, настолько удобно.
Добавляет в БД таблицу, в которой отслеживаются непрочтённые сообщения для каждого юзера.
То есть, хранение не в куках, а в базе данных.
Очень удобно: топик останется непрочитанным, даже если его сейчас не прочитать, не заходить в него, оставив на потом, и вернуться завтра.
Без этого мода приходится, чтобы не потерять непрочитанные темы,
обязательно заходить во всем желательные темы в течение одного визита.
Мод находится до сих пор в бета версии: http://www.phpbb.com/phpBB/viewtopic.php?t=86690
Установлен на моём форуме www.sarov.info/forum и нормально работает.
Имеется проблема. К примеру, в моём форуме с 2.5К юзеров и 200К постов (~150 постов в день) база разбухает за месяц до 450 Мб (с использованием всех трёх рекомендуемых индексов), форум начинает тормозить на этой таблице. Pruning этой таблицы из админовки при таком объёме приводит к тому, что всё просто входит в ступор. Приходится либо периодически просто обнулять таблицу (уничтожать и создавать заново пустую, при этом все темы у всех оказываются прочитанными), либо, как я сейчас думаю сделать, ставить ежедневную cron-задачу на чистку базы от записей старше 7 дней. Если же индексы не использовать, как велено, база разбухает сильно меньше, но подтормаживать начинает почти с самого начала.
Изучив работу мода, я вижу, что мод использует крайне нерациональную систему хранения информации в таблице. Он хранит непрочитанные сообщения (добавление сообщения приводит к добавлению 2.5К записей, мы-гы-гы). А надо бы – наоборот. Свои полные выкладки по улучшенной логике работы мода могу выложить, если есть кто-нибудь заинтересованный в развитии этого мода (в течение ближайших месяцев у меня времени на программирование этого дела не будет). Я вижу, что нет никаких проблем сделать так, что база совсем не будет разбухать, да.
Без этого мода -- просто невозможно уже.
Подсел, как на наркотик, настолько удобно.
-
- Former team member
- Сообщения: 955
- Стаж: 19 лет 3 месяца
- Откуда: Москва
-
- Поддержка
- Сообщения: 5283
- Стаж: 19 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 186 раз
- Поблагодарили: 793 раза
BadBlock
Keep unread flags делает то же самое. То есть, если вы не прочитали все темы и вышли из форума, то при входе непрочитанные темы останутся на месте У мода 2 режима хранения этих сообщений.. как-то через куки (я так и не понял каким образом) и в базе данных (установил именно этот вариант).
Работает нормально в форуме с 100к сообщений, где 300-400 сообщений в день
Keep unread flags делает то же самое. То есть, если вы не прочитали все темы и вышли из форума, то при входе непрочитанные темы останутся на месте У мода 2 режима хранения этих сообщений.. как-то через куки (я так и не понял каким образом) и в базе данных (установил именно этот вариант).
Работает нормально в форуме с 100к сообщений, где 300-400 сообщений в день
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- phpBB 1.4.4
- Сообщения: 138
- Стаж: 19 лет 4 месяца
- Откуда: Россия, Москва
Я попробовал себе его поставить. Всё было отлично, пока не пришёл черёд файла index.php (он у меня очень сильно изменённый - оптмизировал много). Так вот кое-чего там вообще нету и инструкцию по установке я не смог выполнить верно. Но вроде попытался встроить так сказать... Но вроде чё-то с ошибкой встроил:Возможно вам подойдет мод Keep unread flags.
Код: Выделить всё
Warning: mysql_fetch_array(): 34 is not a valid MySQL result resource in g:\htdocs\movies\www\db\mysql4.php on line 339
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'common.php');
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
$viewcat = ( !empty($HTTP_GET_VARS[POST_CAT_URL]) ) ? $HTTP_GET_VARS[POST_CAT_URL] : -1;
if( isset($HTTP_GET_VARS['mark']) || isset($HTTP_POST_VARS['mark']) )
{
$mark_read = ( isset($HTTP_POST_VARS['mark']) ) ? $HTTP_POST_VARS['mark'] : $HTTP_GET_VARS['mark'];
}
else
{
$mark_read = '';
}
//
// Handle marking posts
//
if( $mark_read == 'forums' )
{
if( $userdata['session_logged_in'] )
{
setcookie($board_config['cookie_name'] . '_f_all', time(), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
}
$template->assign_vars(array(
"META" => '<meta http-equiv="refresh" content="3;url=' .append_sid("index.$phpEx") . '">')
);
$message = $lang['Forums_marked_read'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a> ');
message_die(GENERAL_MESSAGE, $message);
}
//
// End handle marking posts
//
$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_t"]) : array();
$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_f"]) : array();
//
// If you don't use these stats on your index you may want to consider
// removing them
//
$posttopiccount= get_db_stat('posttopiccount');
$total_topics = $posttopiccount['topic_total'];
$total_posts = $posttopiccount['post_total'];
$total_users = get_db_stat('usercount');
$newest_userdata = get_db_stat('newestuser');
$newest_user = $newest_userdata['username'];
$newest_uid = $newest_userdata['user_id'];
$l_total_post_s = $lang['Posted_articles_total'];
$l_total_user_s = $lang['Registered_users_total'];
//
// Start page proper
//
$sql = "SELECT c.cat_id, c.cat_title, c.cat_order
FROM " . CATEGORIES_TABLE . " c
ORDER BY c.cat_order";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql);
}
$category_rows = array();
$category_rows = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
if( ( $total_categories = count($category_rows) ) )
{
$fname= date('d-m-y').'.dat';
if (!file_exists($fname)) {
//
// Define appropriate SQL
//
$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id
FROM ((( " . FORUMS_TABLE . " f
LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_id = p.topic_id )
ORDER BY f.cat_id, f.forum_order";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
}
$forum_data = array();
while( $row = $db->sql_fetchrow($result) )
{
$forum_data[] = $row;
}
$db->sql_freeresult($result);
//
// Obtain list of moderators of each forum
// First users, then groups ... broken into two queries
//
$sql = "SELECT aa.forum_id, u.user_id, u.username
FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u
WHERE aa.auth_mod = " . TRUE . "
AND g.group_single_user = 1
AND ug.group_id = aa.group_id
AND g.group_id = aa.group_id
AND u.user_id = ug.user_id
GROUP BY u.user_id, u.username, aa.forum_id
ORDER BY aa.forum_id, u.user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
}
$forum_moderators = array();
while( $row = $db->sql_fetchrow($result) )
{
$forum_moderators[$row['forum_id']][] = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '">' . $row['username'] . '</a>';
}
$db->sql_freeresult($result);
$sql = "SELECT aa.forum_id, g.group_id, g.group_name
FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE aa.auth_mod = " . TRUE . "
AND g.group_single_user = 0
AND g.group_type <> " . GROUP_HIDDEN . "
AND ug.group_id = aa.group_id
AND g.group_id = aa.group_id
GROUP BY g.group_id, g.group_name, aa.forum_id
ORDER BY aa.forum_id, g.group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
}
while( $row = $db->sql_fetchrow($result) )
{
$forum_moderators[$row['forum_id']][] = '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $row['group_id']) . '">' . $row['group_name'] . '</a>';
}
$db->sql_freeresult($result);
// Birthday Mod, Show users with birthday
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username" :"";
if($result = $db->sql_query($sql))
{
if (!empty($result))
{
$time_now = time();
$this_year = create_date('Y', $time_now, $board_config['board_timezone']);
$date_today = create_date('Ymd', $time_now, $board_config['board_timezone']);
$date_forward = create_date('Ymd', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
while ($birthdayrow = $db->sql_fetchrow($result))
{
$user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] ));
if ( $user_birthday2 < $date_today ) $user_birthday2 += 10000;
if ( $user_birthday2 > $date_today && $user_birthday2 <= $date_forward )
{
// user are having birthday within the next days
$user_age = ( $this_year.$user_birthday < $date_today ) ? $this_year - realdate ('Y',$birthdayrow['user_birthday'])+1 : $this_year- realdate ('Y',$birthdayrow['user_birthday']);
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
break;
default: $style_color = '';
}
$birthday_week_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
} else if ( $user_birthday2 == $date_today )
{
//user have birthday today
$user_age = $this_year - realdate ( 'Y',$birthdayrow['user_birthday'] );
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
break;
default: $style_color = '';
}
$birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
}
}
if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
}
$db->sql_freeresult($result);
}
$oldfname= date('d-m-y', mktime(0, 0, 0, date("m"), date("d")-1, date("Y"))).'.dat';
if (file_exists($oldfname)) unlink($oldfname);
$fp= @fopen($fname,'w');
$data= serialize(array($forum_data,$forum_moderators,$birthday_today_list,$birthday_week_list));
fwrite ($fp, $data);
fclose ($fp);
}
else {
$data= unserialize(file_get_contents($fname));
$forum_data=$data[0];
$forum_moderators=$data[1];
$birthday_today_list=$data[2];
$birthday_week_list=$data[3];
}
if ( !($total_forums = count($forum_data)) )
{
message_die(GENERAL_MESSAGE, $lang['No_forums']);
}
//
// Obtain a list of topic ids which contain
// posts made since user last visited
//
if ( $userdata['session_logged_in'] )
{
$sql = "SELECT t.forum_id, t.topic_id, p.post_time
FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
WHERE p.post_id = t.topic_last_post_id
AND p.post_time > " . $userdata['user_lastvisit'] . "
AND t.topic_moved_id = 0";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql);
}
$new_topic_data = array();
while( $topic_data = $db->sql_fetchrow($result) )
{
$new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time'];
}
$db->sql_freeresult($result);
}
//
// Find which forums are visible for this user
//
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data);
//
// Start output of page
//
define('SHOW_ONLINE', true);
$page_title = $lang['Index'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'index_body.tpl')
);
$template->assign_vars(array(
"TOTAL_TOPICCOUNT" => $total_topics,
"L_TOTAL_TOPICCOUNT" => $lang['total_topiccount'],
'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'),
'FORUM_IMG' => $images['forum'],
'FORUM_NEW_IMG' => $images['forum_new'],
'FORUM_LOCKED_IMG' => $images['forum_locked'],
// Start add - Birthday MOD
'L_WHOSBIRTHDAY_WEEK' => ($board_config['birthday_check_day'] > 1) ? sprintf( (($birthday_week_list) ? $lang['Birthday_week'] : $lang['Nobirthday_week']), $board_config['birthday_check_day']).$birthday_week_list : '',
'L_WHOSBIRTHDAY_TODAY' => ($board_config['birthday_check_day']) ? ($birthday_today_list) ? $lang['Birthday_today'].$birthday_today_list : $lang['Nobirthday_today'] : '',
// End add - Birthday MOD
'L_FORUM' => $lang['Forum'],
'L_TOPICS' => $lang['Topics'],
'L_REPLIES' => $lang['Replies'],
'L_VIEWS' => $lang['Views'],
'L_POSTS' => $lang['Posts'],
'L_LASTPOST' => $lang['Last_Post'],
'L_NO_NEW_POSTS' => $lang['No_new_posts'],
'L_NEW_POSTS' => $lang['New_posts'],
'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'],
'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'],
'L_ONLINE_EXPLAIN' => $lang['Online_explain'],
'L_MODERATOR' => $lang['Moderators'],
'L_FORUM_LOCKED' => $lang['Forum_is_locked'],
'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'],
'U_MARK_READ' => append_sid("index.$phpEx?mark=forums"))
);
//
// Okay, let's build the index
//
//
// Let's decide which categories we should display
//
$display_categories = array();
for ($i = 0; $i < $total_categories; $i++ )
{
$display_categories[$category_rows[$i]['cat_id']] = FALSE;
}
for ($i = 0; $i < $total_forums; $i++ )
{
if ( $is_auth_ary[$forum_data[$i]['forum_id']]['auth_view'] )
{
$display_categories[$forum_data[$i]['cat_id']] = TRUE;
}
}
for($i = 0; $i < $total_categories; $i++)
{
$cat_id = $category_rows[$i]['cat_id'];
//
// Yes, we should, so first dump out the category
// title, then, if appropriate the forum list
//
if ( $display_categories[$cat_id] )
{
$template->assign_block_vars('catrow', array(
'CAT_ID' => $cat_id,
'CAT_DESC' => $category_rows[$i]['cat_title'],
'U_VIEWCAT' => append_sid("index.$phpEx?" . POST_CAT_URL . "=$cat_id"))
);
if ( $viewcat == $cat_id || $viewcat == -1 )
{
for($j = 0; $j < $total_forums; $j++)
{
if ( $forum_data[$j]['cat_id'] == $cat_id )
{
$forum_id = $forum_data[$j]['forum_id'];
if ( $is_auth_ary[$forum_id]['auth_view'] )
{
if ( $forum_data[$j]['forum_status'] == FORUM_LOCKED )
{
$folder_image = $images['forum_locked'];
$folder_alt = $lang['Forum_locked'];
}
else
{
$unread_topics = false;
if ( $userdata['session_logged_in'] )
{
if ( !empty($new_topic_data[$forum_id]) )
{
while( list($check_topic_id, $check_post_time) = @each($new_topic_data[$forum_id]) )
{
if ( intval($tracking_topics[$check_topic_id]) < $check_post_time )
{
$unread_topics = true;
break;
}
}
if ( !empty($tracking_forums[$forum_id]) )
{
if ( $tracking_forums[$forum_id] > $forum_data[$j]['post_time'] )
{
$unread_topics = false;
}
}
if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
{
if ( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] > $forum_data[$j]['post_time'] )
{
$unread_topics = false;
}
}
}
}
$folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum'];
$folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts'];
}
$posts = $forum_data[$j]['forum_posts'];
$topics = $forum_data[$j]['forum_topics'];
if ( $forum_data[$j]['forum_last_post_id'] )
{
$last_post_time = create_date($board_config['default_dateformat'], $forum_data[$j]['post_time'], $board_config['board_timezone']);
// OLD
// $last_post = $last_post_time . '<br />';
//
// MOD - TODAY AT - BEGIN
//
if ( $board_config['time_today'] < $forum_data[$j]['post_time'])
{
$last_post = sprintf($lang['Today_at'], create_date($board_config['default_timeformat'], $forum_data[$j]['post_time'], $board_config['board_timezone'])) . ' | ';
}
else if ( $board_config['time_yesterday'] < $forum_data[$j]['post_time'])
{
$last_post = sprintf($lang['Yesterday_at'], create_date($board_config['default_timeformat'], $forum_data[$j]['post_time'], $board_config['board_timezone'])) . ' | ';
}
else
{
$last_post = $last_post_time . ' | ';
}
// MOD - TODAY AT - END
$last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ';
$last_post = '<span class="nobr">' . $last_post . '</span>';
$last_post .= '<br /><a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $forum_data[$j]['topic_id']) . '">' . $forum_data[$j]['topic_title'] . '</a>';
$last_post .= ' <a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '" class="newMessageLink" title="' . $lang['View_latest_post'] . '"><span>[' . $lang['View_latest_post'] . ']</span></a>';
}
else
{
$last_post = $lang['No_Posts'];
}
if ( count($forum_moderators[$forum_id]) > 0 )
{
$l_moderators = ( count($forum_moderators[$forum_id]) == 1 ) ? $lang['Moderator'] : $lang['Moderators'];
$moderator_list = implode(', ', $forum_moderators[$forum_id]);
}
else
{
$l_moderators = ' ';
$moderator_list = ' ';
}
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$template->assign_block_vars('catrow.forumrow', array(
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
'FORUM_FOLDER_IMG' => $folder_image,
'FORUM_NAME' => $forum_data[$j]['forum_name'],
'FORUM_DESC' => $forum_data[$j]['forum_desc'],
'POSTS' => $forum_data[$j]['forum_posts'],
'TOPICS' => $forum_data[$j]['forum_topics'],
'VIEWS' => $forum_data[$j]['forum_views'],
'LAST_POST' => $last_post,
'MODERATORS' => $moderator_list,
'FORUM_ID' => $forum_id,
'L_MODERATOR' => $l_moderators,
'L_FORUM_FOLDER_ALT' => $folder_alt,
'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"))
);
}
}
}
}
}
} // for ... categories
}// if ... total_categories
else
{
message_die(GENERAL_MESSAGE, $lang['No_forums']);
}
//
// Generate the page
//
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
-
- Поддержка
- Сообщения: 5283
- Стаж: 19 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 186 раз
- Поблагодарили: 793 раза
BadBlock
Да, именно новые посты и темы помечаются непрочитанными Естественно, если вы загляните в непрочитанную тему и выйдете оттуда, то все её сообщения пометятся как прочитанные.Он хранит ли какие именно сообщения непрочитаны?
То есть, работает ли правильно кнопка "перейти к непрочитанным сообщениям"?
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- Поддержка
- Сообщения: 5283
- Стаж: 19 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 186 раз
- Поблагодарили: 793 раза
BadBlock
Мод установлен около полугода, размер всей БД 95Мб, а вот размер его таблицы сейчас сказать точно не смогу, надо дома глянуть но примерно 1-3Мб (лучше вечерком гляну, чтоб точнее)
Мод установлен около полугода, размер всей БД 95Мб, а вот размер его таблицы сейчас сказать точно не смогу, надо дома глянуть но примерно 1-3Мб (лучше вечерком гляну, чтоб точнее)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- Поддержка
- Сообщения: 5283
- Стаж: 19 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 186 раз
- Поблагодарили: 793 раза
BadBlock
Да. Он у меня в локальной сети (дома на выделенном сервере), доступ к которой из инета закрыт, поэтому я с работы не могу туда зайти. Вечерком гляну
(сорри, это уже оффтоп)
Да. Он у меня в локальной сети (дома на выделенном сервере), доступ к которой из инета закрыт, поэтому я с работы не могу туда зайти. Вечерком гляну
(сорри, это уже оффтоп)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- Поддержка
- Сообщения: 5283
- Стаж: 19 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 186 раз
- Поблагодарили: 793 раза
BadBlock
Глянул. 8)
При установке мод добавляет в таблицу users своё поле:в котором хранит непрочитанные топики вот в таком формате:
Пользователей у меня в форуме 384 (так как я часто чищу неактивных) и таблица phpbb_users занимает около 500кб. Если учитывать, что в ней кроме непрочитанных сообщений хранятся и данные о пользователях, то можно прикинуть, какая доля уходит на этот мод, что есть очень неплохо
Глянул. 8)
При установке мод добавляет в таблицу users своё поле:
Код: Выделить всё
ALTER TABLE phpbb_users ADD user_unread_topics TEXT;
Код: Выделить всё
1110435043;1999:0;2:0;2063:0;1994:0;1990:0;1931:0;1950:0;1986:0;2152:0;
.........и т.д..
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- Поддержка
- Сообщения: 5283
- Стаж: 19 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 186 раз
- Поблагодарили: 793 раза
BadBlock
1. Сам с таким никогда не сталкивался, но два человека из 400 жаловались на подобный глюк, да и происходит он редко..
2. В каком смысле? У меня работает без проблем, как для всего форума, так и для отдельных разделов.
1. Сам с таким никогда не сталкивался, но два человека из 400 жаловались на подобный глюк, да и происходит он редко..
2. В каком смысле? У меня работает без проблем, как для всего форума, так и для отдельных разделов.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb