function apms_response($use, $flag, $it_id, $bo_table, $wr_id, $subject, $mb_id, $my_id, $my_name, $c_id = '') { global $g5; if (!$use || !$flag || !$mb_id || $mb_id && $mb_id == $my_id) { return; } switch ($flag) { case 'choice': $field = 'good'; $psubj = '[채택]' . $subject; $pcont = $my_name . '님이 댓글을 채택하셨습니다.'; break; case 'reply': $field = 'reply'; $psubj = '[답글]' . $subject; $pcont = $my_name . '님이 답글을 등록하였습니다.'; break; case 'new': $field = 'comment'; $subject = '[새글]' . $subject; $psubj = $subject; $pcont = $my_name . '님이 글을 등록하였습니다.'; break; case 'comment': $field = 'comment'; $psubj = '[댓글]' . $subject; $pcont = $my_name . '님이 댓글을 등록하였습니다.'; break; case 'comment_reply': $field = 'comment_reply'; $psubj = '[댓글]' . $subject; $pcont = $my_name . '님이 대댓글을 등록하였습니다.'; break; case 'good': $field = 'good'; break; case 'nogood': $field = 'nogood'; break; case 'use': $field = 'use'; break; case 'qa': $field = 'qa'; break; default: return; break; } if ($use == 'it') { // 상품 if (!$it_id) { return; } if (!$wr_id) { $wr_id = 0; } $where = " mb_id = '{$mb_id}' and it_id = '{$it_id}' and wr_id = '{$wr_id}' and type = '1' "; $set = " it_id = '{$it_id}', wr_id = '{$wr_id}', type = '1', "; $purl = G5_SHOP_URL . '/item.php?it_id=' . $it_id; if ($c_id) { $purl .= '#c_' . $c_id; } if ($flag == 'reply') { $psubj = '[답변]' . $subject; $pcont = $my_name . '님의 답변이 등록되었습니다.'; if ($wr_id) { $purl = G5_SHOP_URL . '/itemqaview.php?iq_id=' . $wr_id; } } else { if ($flag == 'qa') { $psubj = '[문의]' . $subject; $pcont = $my_name . '님의 문의가 등록되었습니다.'; if ($wr_id) { $purl = G5_SHOP_URL . '/itemqaview.php?iq_id=' . $wr_id; } } else { if ($flag == 'use') { $psubj = '[후기]' . $subject; $pcont = $my_name . '님이 후기를 등록하였습니다.'; if ($wr_id) { $purl = G5_SHOP_URL . '/itemuseview.php?is_id=' . $wr_id; } } } } } else { if ($use == 'wr') { // 게시물 if (!$bo_table || !$wr_id) { return; } $where = " mb_id = '{$mb_id}' and bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and type = '2' "; $set = " bo_table = '{$bo_table}', wr_id = '{$wr_id}', type = '2', "; $purl = G5_BBS_URL . '/board.php?bo_table=' . $bo_table . '&wr_id=' . $wr_id; if ($c_id) { $purl .= '#c_' . $c_id; } } else { if ($use == 'qa') { // 1vs1 qa if (!$wr_id) { return; } $where = " mb_id = '{$mb_id}' and wr_id = '{$wr_id}' and type = '3' "; $set = " wr_id = '{$wr_id}', type = '3', "; $purl = G5_BBS_URL . '/qaview.php?qa_id=' . $wr_id; if ($my_name == '답변완료') { $psubj = '[답변]' . $subject; $pcont = '1:1 문의글에 답변이 등록되었습니다.'; } else { $psubj = '[문의]' . $subject; $pcont = $my_name . '님이 1:1 문의를 등록하였습니다.'; } } else { return; } } } $row = sql_fetch(" select id from {$g5['apms_response']} where {$where} and confirm <> '1' order by id desc ", false); $is_update = $row['id'] ? true : false; if ($is_update) { $my_sql = $my_id && $my_name ? ", my_id = '{$my_id}', my_name = '{$my_name}'" : ""; //아이디와 이름도 업데이트 sql_query(" update {$g5['apms_response']} set {$field}_cnt = {$field}_cnt + 1, regdate = '" . G5_TIME_YMDHIS . "' {$my_sql} where id = '{$row['id']}' ", false); } else { $set .= " mb_id = '{$mb_id}', my_id = '{$my_id}', my_name = '{$my_name}', subject = '" . addslashes($subject) . "',"; sql_query(" insert into {$g5['apms_response']} set {$set} {$field}_cnt = '1', regdate = '" . G5_TIME_YMDHIS . "' ", false); //내글반응수 업데이트 sql_query(" update {$g5['member_table']} set as_response = as_response + 1 where mb_id = '{$mb_id}' ", false); //푸시 보내기 if ($psubj) { apms_push($mb_id, $psubj, $pcont, $purl); } } return; }
<?php if (!defined("_GNUBOARD_")) { exit; } // 개별 페이지 접근 불가 // Push - 최고관리자, 그룹관리자, 보드관리자 ----------------------- $mb_list = $config['cf_admin'] . ',' . $config['as_admin'] . ',' . $group['gr_admin'] . ',' . $board['bo_admin']; $psubj = '[새글]' . $wr_subject; $pcont = $wr_name . '님이 새글을 등록하셨습니다.'; $purl = G5_BBS_URL . '/board.php?bo_table=' . $bo_table . '&wr_id=' . $wr_id; apms_push($mb_list, $psubj, $pcont, $purl); // ------------------------------------------------------------------
function apms_event_win($bo_table, $wr_id, $ev, $ex_mb = '') { global $g5, $config, $board, $write_table, $view; $list = array(); $rows = (int) $ev['win']; // 당첨자수 if ($ev['status'] == '종료') { if ($ev['end']) { $result = sql_query(" select * from {$g5['apms_event']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and ev_win = '1' order by ev_point desc limit 0, {$rows} ", false); //당첨현황 for ($i = 0; $row = sql_fetch_array($result); $i++) { $list[$i] = $row; } } else { $sql_ex = $ex_mb ? "and find_in_set(mb_id, '{$ex_mb}')=0" : ""; if ($ev['type']) { //랜덤당첨 $result = sql_query(" select *, max(ev_point) as ev_point from {$g5['apms_event']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' {$sql_ex} group by mb_id order by rand() limit 0, {$rows} ", false); } else { //최고입찰 $result = sql_query(" select *, max(ev_point) as ev_point from {$g5['apms_event']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' {$sql_ex} group by mb_id order by ev_point desc, ev_datetime limit 0, {$rows} ", false); } // 당첨 포인트 $win_point = apms_event_point($ev, $bo_table, $wr_id); for ($i = 0; $row = sql_fetch_array($result); $i++) { $list[$i] = $row; $list[$i]['ev_win'] = 1; // 낙찰포인트 차감 $confirm = 1; if (!$ev['type'] && $row['ev_point'] > 0) { $mb = get_member($row['mb_id'], 'mb_point'); if ($mb['mb_point'] >= $row['ev_point']) { $ev_point = $row['ev_point'] * -1; insert_point($row['mb_id'], $ev_point, "{$board['bo_subject']} {$wr_id} 이벤트 낙찰", $bo_table, $wr_id, "이벤트낙찰"); } else { $confirm = 0; } } // 이벤트 당첨포인트 if ($confirm && $win_point) { insert_point($row['mb_id'], $win_point, "{$board['bo_subject']} {$wr_id} 이벤트 당첨", $bo_table, $wr_id, "이벤트당첨"); } // 당첨정보 입력 sql_query(" update {$g5['apms_event']} set ev_win = '1', ev_confirm = '{$confirm}' where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and mb_id = '{$row['mb_id']}' and ev_point = '{$row['ev_point']}' ", false); // 쪽지발송 if ($confirm) { $msg = get_text($view['wr_subject']) . ' 이벤트에 당첨되셨습니다.\\n\\n'; $msg .= '이벤트 바로가기 : ' . G5_BBS_URL . '/board.php?bo_table=' . $bo_table . '&wr_id=' . $wr_id; } else { $msg = get_text($view['wr_subject']) . ' 이벤트에 당첨되셨으나 보유 포인트 부족으로 당첨처리가 되지 않았습니다.\\n\\n'; $msg .= '포인트 확인 후 해당 이벤트에서 당첨처리 또는 당첨포기를 해 주셔야 다른 이벤트에도 참여가 가능합니다.\\n\\n'; $msg .= '(이벤트 당첨을 포기하시더라도 이벤트 참여비는 반환되지 않습니다.)\\n\\n'; $msg .= '이벤트 바로가기 : ' . G5_BBS_URL . '/board.php?bo_table=' . $bo_table . '&wr_id=' . $wr_id; } $tmp_row = sql_fetch(" select max(me_id) as max_me_id from {$g5['memo_table']} "); $me_id = $tmp_row['max_me_id'] + 1; // 쪽지 INSERT sql_query(" insert into {$g5['memo_table']} ( me_id, me_recv_mb_id, me_send_mb_id, me_send_datetime, me_memo ) values ( '{$me_id}', '{$row['mb_id']}', '{$config['cf_admin']}', '" . G5_TIME_YMDHIS . "', '{$msg}' ) ", false); // 읽지 않은 쪽지체크 $tmp_row2 = sql_fetch(" select count(*) as cnt from {$g5['memo_table']} where me_recv_mb_id = '{$row['mb_id']}' and me_read_datetime = '0000-00-00 00:00:00' ", false); // 실시간 쪽지 알림 기능 sql_query(" update {$g5['member_table']} set mb_memo_call = '{$config['cf_admin']}', as_memo = '{$tmp_row2['cnt']}' where mb_id = '{$row['mb_id']}' ", false); // Push ----------------------------------------------------------------- apms_push($row['mb_id'], '이벤트 당첨을 축하드립니다.', $msg, G5_URL); } // 종료처리 sql_query(" update {$write_table} set wr_5 = '1' where wr_id = '{$wr_id}' "); } } return $list; }