쪽지4에 적용한 방법입니다.
속도 개선의 효과가 아주 지대 합니다.
db에 안읽은 쪽지 갯수를 넣는 db를 추가 합니다.
ALTER TABLE `g4_member` ADD `mb_memo_unread` INT( 11 ) NOT NULL ;
/bbs/memo_view.php에서 안읽은 쪽지를 읽기 할 때, 안읽은 쪽지 갯수를 업데이트 하는거 추가합니다.
if ($kind == "recv")
{
$t = "받은";
$unkind = "send";
$sql = " update $g4[memo_table]
set me_read_datetime = '$g4[time_ymdhis]'
where me_id = '$me_id'
and me_read_datetime = '0000-00-00 00:00:00' ";
sql_query($sql);
// 안읽은 쪽지 갯수를 업데이트
$sql1 = " select count(*) as cnt from {$g4['memo_table']} where me_recv_mb_id = '{$member['mb_id']}' and me_read_datetime = '0000-00-00 00:00:00' ";
$row1 = sql_fetch($sql1);
sql_query(" update $g4[member_table] set mb_memo_unread = '$row1[cnt]' where mb_id = '$member[mb_id]' ");
}
else if ($kind == "send")
{
$t = "보낸";
$unkind = "recv";
}
else
{
alert("\$kind 값을 넘겨주세요.");
}
bbs/memo_form_update.php에 쪽지를 발송하면 안읽은 쪽지 갯수를 +1 하는 코드를 추가합니다.
// 실시간 쪽지 알림 기능
$sql = " update $g4[member_table]
set mb_memo_call = '$member[mb_id]', mb_memo_unread = mb_memo_unread+1
where mb_id = '$mb_list[$i]' ";
sql_query($sql);
lib/outlogin.lib.php에서 안읽은 쪽지 갯수를 계산하지 않게 수정 합니다.
// 읽지 않은 쪽지가 있다면
if ($member['mb_id']) {
/*
$sql = " select count(*) as cnt from {$g4['memo_table']} where me_recv_mb_id = '{$member['mb_id']}' and me_read_datetime = '0000-00-00 00:00:00' ";
$row = sql_fetch($sql);
$memo_not_read = $row['cnt'];
*/
$memo_not_read = $member['mb_memo_unread'];
$is_auth = false;
$sql = " select count(*) as cnt from $g4[auth_table] where mb_id = '$member[mb_id]' ";
$row = sql_fetch($sql);
if ($row['cnt'])
$is_auth = true;
}
|