Example #1
0
/**
* 회원 등록
* @class admin.member
* @param
		$data: 자료
		-is_check: 입력변수 체크 여부
* @return Array 등록된 회원 자료
*/
function addMember($data, $param = '')
{
    global $mini;
    $param = param($param);
    def($param['is_check'], 1);
    unset($data['formMode']);
    unset($data['formMsg']);
    unset($data['formFunc']);
    unset($data['formURL']);
    unset($data['formHTML']);
    unset($data['no']);
    unset($data['ip']);
    unset($data['ip_join']);
    unset($data['key_find']);
    unset($data['key_sms']);
    unset($data['key_login']);
    unset($data['date']);
    unset($data['date_login']);
    unset($data['count_login']);
    unset($data['count_vote']);
    unset($data['count_post']);
    unset($data['count_comment']);
    unset($data['count_recent_comment']);
    unset($data['history_login']);
    unset($data['mode']);
    unset($data['script']);
    unset($data['admin']);
    unset($data['id_mode']);
    if (empty($mini['member']['level_admin'])) {
        unset($data['site']);
        unset($data['site_link']);
        unset($data['level']);
        unset($data['admit']);
        unset($data['confirm_co']);
        unset($data['point']);
        unset($data['point_sum']);
        unset($data['money']);
        unset($data['count_alert']);
        unset($data['lock_login']);
        unset($data['history_admin']);
        unset($data['date_punish']);
    }
    //// 추가필드 권한 체크
    if (!empty($mini['site']['field'])) {
        foreach ($mini['site']['field'] as $key => $val) {
            if (empty($data['field'][$key]) && !empty($val['is_req'])) {
                __error("[{$val['name']}]을 입력해 주세요");
            }
        }
    }
    //// 변수 체크
    if ($param['is_check']) {
        checkFieldMember($data);
        // 권한체크
        if (!empty($mini['is_admin'])) {
            checkAdmin("\n\t\t\t\t\t\tsite: {$_POST['site']}\n\t\t\t\t\t\ttype: ajax\n\t\t\t\t\t");
        }
    }
    //// 아이디 중복 체크
    check($data['uid'], 'type:id, name:회원아이디');
    if (sql("SELECT COUNT(*) FROM {$mini['name']['member']} WHERE uid='{$data['uid']}'")) {
        __error('중복된 회원 아이디 입니다.');
    }
    //// 닉네임 중복 체크
    if (!isset($data['name'])) {
        __error('회원 닉네임을 입력해 주세요');
    }
    if (sql("SELECT COUNT(*) FROM {$mini['name']['member']} WHERE name='{$data['name']}'")) {
        __error("중복된 닉네임 입니다.");
    }
    //// 주민등록번호 중복 체크 및 암호화
    if (isset($data['jumin']) && $data['jumin']) {
        $data['jumin'] = md5($data['jumin']);
        if (sql("SELECT COUNT(*) FROM {$mini['name']['member']} WHERE jumin='{$data['jumin']}'")) {
            __error("중복된 주민등록번호 입니다.");
        }
    }
    //// 사업자번호 중복 체크
    if (isset($data['co_num']) && $data['co_num']) {
        if (sql("SELECT COUNT(*) FROM {$mini['name']['member']} WHERE co_num='{$data['co_num']}'")) {
            __error("중복된 사업자등록번호 입니다.");
        }
    }
    //// 메일 중복 체크
    if (!empty($data['mail'])) {
        if (sql("SELECT COUNT(*) FROM {$mini['name']['member']} WHERE mail='{$data['mail']}'")) {
            __error("중복된 메일 입니다.");
        }
    }
    //// 필수입력 정보 사이트 정보대로 처리
    if (!empty($mini['site']['join_check'])) {
        $tmp = '';
        foreach ($mini['site']['join_check'] as $key => $val) {
            if (empty($data[$key]) && !empty($val['name'])) {
                $tmp = !empty($tmp) ? $tmp . ",{$val['name']}" : $val['name'];
            }
        }
        if (!empty($tmp)) {
            __error("필수입력정보를 입력해 주세요. [{$tmp}]");
        }
    }
    //// 기본변수 여부 체크
    if (isset($mini['site'])) {
        def($data['site'], $mini['site']['no']);
    }
    check($data['site'], 'type:num, name:그룹');
    if (!isset($data['pass'])) {
        __error('비밀번호를 입력해 주세요');
    }
    //// 가입 기본 포인트 적용
    if (!empty($mini['site']['point_join']) && empty($data['point']) && empty($data['point_sum'])) {
        $data['point'] = $data['point_sum'] = $mini['site']['point_join'];
    }
    //// 가입 승인 기능 설정
    if (!empty($mini['site']['admit']) && (empty($mini['member']['level_admin']) || $mini['member']['level_admin'] < 2)) {
        $data['admit'] = 0;
    }
    //// 재가입 방지 확인
    if (!empty($mini['site']['withdraw'])) {
        iss($data['mail']);
        if (sql("SELECT COUNT(*) FROM {$mini['name']['log']} WHERE mode='member_withdraw' and (field1='{$data['uid']}' or ip='{$mini['ip']}' or field2='{$data['mail']}') and date >= '" . date("Y-m-d H:i:s", $mini['time'] - 86400 * $mini['site']['withdraw']) . "'")) {
            __error('해당 아이디, IP 혹은 메일주소로 재가입 하실 수 없습니다');
        }
    }
    //// 기본변수 입력
    $data['date'] = $mini['date'];
    $data['ip_join'] = $mini['ip'];
    unset($data['pass_encode']);
    unset($data['pass_confirm']);
    unset($data['jumin_encode']);
    //// 쿼리
    sql("INSERT INTO {$mini['name']['member']} " . query($data, 'insert'));
    $data['no'] = getLastId($mini['name']['member'], "uid='{$data['uid']}' and date='{$mini['date']}' and ip_join='{$mini['ip']}'");
    //// 로그 기록
    addLog("\n\t\t\tmode: member_add\n\t\t\tfield1: {$data['no']}\n\t\t");
    //// 인증메일 발송
    if (empty($mini['member']['level_admin']) && !empty($mini['site']['admit']) && $mini['site']['admit'] == 'mail' && !empty($mini['set']['use_smtp']) && !empty($mini['site']['template']['admit'])) {
        include "{$mini['dir']}skin/template/mail.admit.tpl.php";
        if (!function_exists('skinConv')) {
            include "{$mini['dir']}_inc.skinmake.php";
        }
        if (!empty($tpl) && (!empty($mini['site']['mail']) || !empty($mini['set']['mail']))) {
            $tmp = !empty($tpl[$mini['site']['template']['admit']]) ? $tpl[$mini['site']['template']['admit']] : current($tpl);
            // 키 생성
            $admit_key = rand(100000, 999999);
            unset($mini['skin']);
            $mini['skin'] = '';
            $mini['skin']['site'] =& $mini['site'];
            $mini['skin']['data'] =& $data;
            $mini['skin']['date'] = $mini['date'];
            $mini['skin']['key'] = $admit_key;
            $mini['skin']['url_key'] = "{$mini['pdir']}ajax.php?mode=admit_mail&no={$data['no']}&key={$admit_key}";
            $mini['skin']['link_key'] = "href='{$mini['skin']['url_key']}' target='_blank'";
            sql("UPDATE {$mini['name']['member']} SET key_find = '{$admit_key}|{$mini['date']}' WHERE no={$data['no']}");
            $result = send_mail(array('from_name' => $mini['site']['name'], 'from_mail' => !empty($mini['site']['mail']) ? $mini['site']['mail'] : $mini['set']['mail'], 'to_name' => $data['name'], 'to_mail' => $data['mail'], 'title' => skinConv($tmp['title'], 'str'), 'ment' => skinConv($tmp['ment'], 'str')));
        } else {
            __error('인증메일을 발송할 수 없습니다. 관리자에게 문의해 주세요');
        }
    }
    //// 가입메일 발송
    if (empty($mini['member']['level_admin']) && !empty($mini['set']['use_smtp']) && !empty($mini['site']['template']['join'])) {
        include "{$mini['dir']}skin/template/mail.join.tpl.php";
        if (!function_exists('skinConv')) {
            include "{$mini['dir']}_inc.skinmake.php";
        }
        if (!empty($tpl) && (!empty($mini['site']['mail']) || !empty($mini['set']['mail']))) {
            unset($mini['skin']);
            $mini['skin'] = '';
            $mini['skin']['date'] = $mini['date'];
            $mini['skin']['site'] =& $mini['site'];
            $mini['skin']['data'] =& $data;
            $result = send_mail(array('from_name' => $mini['site']['name'], 'from_mail' => !empty($mini['site']['mail']) ? $mini['site']['mail'] : $mini['set']['mail'], 'to_name' => $data['name'], 'to_mail' => $data['mail'], 'title' => skinConv($tpl[$mini['site']['template']['join']]['title'], 'str'), 'ment' => skinConv($tpl[$mini['site']['template']['join']]['ment'], 'str')));
        }
    }
    //// 가입SMS 발송
    if (empty($mini['member']['level_admin']) && !empty($mini['set']['use_sms']) && !empty($mini['site']['template']['join_sms'])) {
        include "{$mini['dir']}skin/template/sms.join.tpl.php";
        if (!function_exists('skinConv')) {
            include "{$mini['dir']}_inc.skinmake.php";
        }
        if (!function_exists('iiSMSSend')) {
            include "{$mini['dir']}_inc.sms.php";
        }
        if (!empty($tpl) && !empty($mini['site']['cp'])) {
            unset($mini['skin']);
            $mini['skin'] = '';
            $mini['skin']['date'] = $mini['date'];
            $mini['skin']['site'] =& $mini['site'];
            $mini['skin']['data'] =& $data;
            $result = iiSMSSend($data['cp'], $mini['site']['cp'], skinConv($tpl[$mini['site']['template']['join_sms']], 'str'), $mini['set']['lang']);
        }
    }
    return $data;
}
Example #2
0
/** 댓글 등록
 * @class write
 * @param
		$data: 글쓰기 data, 이미 check와 가공이 끝난 데이터여야 함
		$board_data: 게시판 설정 data
		-id: 게시판 아이디. 게시판 설정 data가 없을 때 아이디를 토대로 설정을 로드한다.
		-target_post: 타겟 게시물 지정
		-is_check: 입력변수 체크 여부
		-target_member: 대상회원을 지정할 수 있음
		-target_post: 대상게시물번호
		-target_num: 대상게시물num
		-trackback
		-is_conv: 컨버팅
		-is_manage: 게시물관리
 * @return Array data
 */
function addCmt($data, $board_data = '', $param = '')
{
    global $mini;
    $param = param($param);
    $output_conv_update_reply = '';
    iss($data_post);
    iss($data_reply);
    iss($param['id']);
    iss($param['target_post']);
    iss($param['target_num']);
    def($param['is_check'], 1);
    iss($data_before);
    iss($param['is_conv']);
    $trackback = $trackback_excerpt = $trackback_charset = '';
    if (!empty($data['trackback'])) {
        $trackback = $data['trackback'];
    }
    if (!empty($data['trackback_excerpt'])) {
        $trackback_excerpt = $data['trackback_excerpt'];
    }
    if (!empty($data['trackback_charset'])) {
        $trackback_charset = $data['trackback_charset'];
    }
    $is_saveImage = !empty($data['saveImage']) ? 1 : 0;
    if (empty($param['is_conv'])) {
        unset($data['no']);
        unset($data['target_member']);
        unset($data['trackback']);
        unset($data['report']);
        unset($data['ip']);
        unset($data['vote']);
        unset($data['hate']);
        unset($data['download']);
        unset($data['date_last']);
        unset($data['history_vote']);
        unset($data['is_del']);
        if (empty($mini['member']['level_admin'])) {
            unset($data['num']);
            unset($data['parent']);
            unset($data['ment_advice']);
            unset($data['is_lock']);
            unset($data['admit_file']);
            unset($data['admit_post']);
            unset($param['target_member']);
            unset($data['date']);
        }
    }
    iss($data['notice']);
    iss($data['secret']);
    iss($data['pass_encode']);
    iss($data['target_post']);
    iss($data['num']);
    iss($data['reply']);
    iss($data['parent']);
    iss($param['target_member']);
    if (!is_array($data)) {
        __error('입력된 데이터가 없습니다');
    }
    //// 게시판 설정
    if (!is_array($board_data)) {
        if ($param['id']) {
            $board_data = getBoard($param['id'], 1);
        } else {
            __error('게시판 설정이 없습니다');
        }
    }
    //// 기본 규칙 체크
    if (empty($param['is_conv'])) {
        // 공지사항 체크
        if ($data['notice'] && $data['secret']) {
            __error('공지사항은 비밀댓글일 수 없습니다');
        }
        // punish
        if (!empty($mini['log']) && !empty($mini['member']['no']) && empty($mini['member']['level'])) {
            __error('징계상태에서 댓글을 쓸 수 없습니다');
        }
        // 추가필드 권한 체크
        if (!empty($board_data['field'])) {
            foreach ($board_data['field'] as $key => $val) {
                if (!empty($data['field'][$key]) && !empty($val['is_admin']) && empty($mini['member']['level_admin'])) {
                    __error("[{$val['name']}]은 관리자만 입력하실 수 있습니다");
                }
                if (empty($data['field'][$key]) && !empty($val['is_req'])) {
                    __error("[{$val['name']}]을 입력해 주세요");
                }
            }
        }
        // 코멘트 점수주기 변수 담아놓기
        if (!empty($data['point'])) {
            $point = $data['point'];
            unset($data['point']);
            if (preg_match("/[^0-9]/", $point)) {
                __error('댓글 점수주기는 정수만 입력할 수 있습니다');
            }
        }
        // 연속 댓글 체크
        if (!empty($board_data['limit_comment']) && empty($mini['member']['level_admin'])) {
            if ($board_data['limit_comment'] < 2) {
                $board_data['limit_comment'] = 2;
            }
            //+이 쿼리 속도를 확인해 봐야 함
            $tmp_limit_array = array();
            $tmp_limit_array = sql("q:SELECT ip FROM {$board_data['table_cmt']} ORDER BY date DESC LIMIT " . ($board_data['limit_comment'] - 1) . ", mode:firstFieldArray");
            if (!is_array($tmp_limit_array)) {
                $tmp_limit_array = array();
            }
            if (!count(array_diff($tmp_limit_array, array($mini['ip']))) && sql("SELECT COUNT(*) FROM {$board_data['table_cmt']} LIMIT " . ($board_data['limit_comment'] - 1)) > $board_data['limit_comment'] - 1) {
                __error("연속으로 {$board_data['limit_comment']}번 이상 댓글을 작성하실 수 없습니다");
            }
        }
    }
    //// 입력변수 체크
    def($data['target_post'], $param['target_post']);
    check($data['target_post'], "type:num, name:대상게시물번호");
    if ($param['is_check']) {
        checkField($data, $board_data['table_cmt'], $param);
        if (empty($param['is_conv']) && !getPermit("name: comment")) {
            __error('권한이 없습니다');
        }
    }
    //// 대상 게시물 정보 로드
    if ($param['target_post'] && $param['target_num']) {
        $data_post['num'] = $param['target_num'];
    } else {
        $data_post = sql("SELECT * FROM {$board_data['table']} WHERE no={$data['target_post']}");
    }
    if (!is_array($data_post)) {
        __error('대상 게시물이 존재하지 않습니다');
    }
    //// 잠긴글
    if (empty($param['is_conv']) && empty($mini['member']['level_admin']) && !empty($data_post['is_lock'])) {
        __error('게시물이 잠겨 있어 댓글을 작성할 수 없습니다');
    }
    //// 지난글 댓글제한
    if (empty($param['is_conv']) && !empty($board_data['reject_comment']) && empty($mini['member']['level_admin']) && empty($data_post['notice'])) {
        if ($mini['time'] - strtotime($data_post['date']) > $board_data['reject_comment'] * 86400) {
            __error("{$board_data['reject_comment']}일이 지난 글에는 댓글을 작성할 수 없습니다");
        }
    }
    //// 번호
    if (empty($param['is_conv']) || empty($data['num'])) {
        $data['num'] = sql("SELECT MAX(num) FROM {$board_data['table_cmt']} WHERE target_post={$data['target_post']}");
        if (empty($data['num'])) {
            $data['num'] = 0;
        }
        $data['num']++;
    }
    //// 답변 댓글 설정
    if (empty($param['is_conv']) && $data['reply'] && empty($data['parent'])) {
        check($data['reply'], "type:num, name:대상댓글번호");
        $data_reply = sql("SELECT * FROM {$board_data['table_cmt']} WHERE no={$data['reply']}");
        if (!is_array($data_reply)) {
            __error('대상댓글이 존재하지 않습니다');
        }
        if (!empty($data_reply['is_del'])) {
            __error('삭제된 댓글에는 댓글을 달 수 없습니다');
        }
        if (!empty($data_reply['notice'])) {
            __error('공지댓글에는 댓글을 달 수 없습니다');
        }
        $data['num'] = $data_reply['num'];
        $data['parent'] = $data_reply['parent'] . "[{$data_reply['no']}]";
        $data['reply'] = sql("SELECT MAX(reply) FROM {$board_data['table_cmt']} WHERE target_post={$data['target_post']} and parent LIKE '%[{$data_reply['no']}]%'");
        def($data['reply'], $data_reply['reply']);
        $data['reply']++;
        // 비밀댓글의 답변은 모두 비밀
        if (!empty($data_reply['secret'])) {
            $data['secret'] = 1;
        }
    }
    //// 기본정보 입력
    def($data['date'], $mini['date']);
    def($data['ip'], $mini['ip']);
    //// 회원정보 입력
    if (!empty($param['target_member'])) {
        $data['target_member'] = $param['target_member'];
    }
    if (empty($param['is_conv'])) {
        def($data['target_member'], !empty($mini['member']['no']) ? $mini['member']['no'] : "");
        if ($data['target_member']) {
            check($data['target_member'], "type:num, name:회원번호");
            $mdata = sql("SELECT * FROM {$mini['name']['member']} WHERE no={$data['target_member']}");
            // 회원 정보 넣기
            if (is_array($mdata)) {
                parseMember($mdata);
                $data['name'] = $mdata['name'];
            } else {
                __error('존재하지 않는 회원 번호 입니다.');
            }
        } else {
            iss($data['name']);
            iss($data['mail']);
            check($data['name'], "min:1, max:16, name:이름");
            if (empty($data['pass'])) {
                __error('비밀번호를 입력해 주세요. 글 수정시 필요합니다');
            }
        }
        // 마이너스 포인트일 때 포인트 부족 확인하기
        if (empty($mini['member']['level_admin']) && isset($board_data['point_comment']) && $board_data['point_comment'] < 0 && !empty($mdata) && $mdata['point'] < abs($board_data['point_comment'])) {
            __error("포인트가 부족합니다 [" . (abs($board_data['point_comment']) - $mdata['point']) . " 포인트 부족]");
        }
        // 댓글이 없으면 auto_increment 값을 초기화 한다.
        if (!sql("SELECT COUNT(*) FROM {$board_data['table_cmt']} LIMIT 1")) {
            sql("TRUNCATE TABLE {$board_data['table_cmt']}");
        }
    }
    //// trackback
    if (!empty($param['trackback'])) {
        $data['trackback'] = $param['trackback'];
    }
    //// 댓글 가공
    checkPost($data, $board_data, 'cmt');
    //// 쿼리 실행
    if (empty($param['is_conv']) || !empty($param['is_manage'])) {
        sql("INSERT INTO {$board_data['table_cmt']} " . query($data, 'insert'));
        $data['no'] = getLastId($board_data['table_cmt'], "ip='{$data['ip']}' and date='{$data['date']}'");
    } else {
        $output_conv = query($data, 'insert_array', getStr(getColumns($board_data['table_cmt'])));
    }
    //// 답변 댓글 밀기(반업데이트)
    if (empty($param['is_conv']) && $data['reply']) {
        sql("UPDATE {$board_data['table_cmt']} SET reply=reply+1 WHERE target_post={$data['target_post']} and reply >= {$data['reply']} and no != {$data['no']}");
    }
    if (empty($param['is_conv']) || !empty($param['is_manage'])) {
        // 포인트
        if ($board_data['point_comment'] !== 0 && !empty($mini['log']) && (!empty($param['target_member']) || !empty($data['target_member'])) && (empty($board_data['use_cmt_point_one']) || sql("SELECT COUNT(*) FROM {$board_data['table_cmt']} WHERE target_post={$data_post['no']} and target_member=" . (!empty($param['target_member']) ? $param['target_member'] : $data['target_member'])) == 1)) {
            setPoint("\n\t\t\t\t\ttarget: " . (!empty($param['target_member']) ? $param['target_member'] : $data['target_member']) . "\n\t\t\t\t\tpoint: {$board_data['point_comment']}\n\t\t\t\t\tmsg: 댓글 작성\n\t\t\t\t\tparent_no: {$board_data['no']}\n\t\t\t\t\tdata_no: {$data['no']}\n\t\t\t\t");
        }
        if (empty($param['is_conv'])) {
            // 게시물 댓글 개수 증가
            $tmp_q = !empty($data['trackback']) ? "count_trackback=count_trackback+1" : "count_comment=count_comment+1";
            $tmp_q .= ",date_comment = '{$mini['date']}'";
            $tmp_q .= ",name_comment = '{$data['name']}'";
            if (!empty($point)) {
                $tmp_q .= ",point=" . ($data_post['point'] * $data_post['point_count'] + $point) / ($data_post['point_count'] + 1) . ",point_count=point_count+1";
            }
            sql("UPDATE {$board_data['table']} SET {$tmp_q} WHERE no={$data['target_post']}");
            // 댓글 알림
            if (empty($param['is_conv'])) {
                if (empty($data_reply) && !empty($data_post['memo']) && !empty($data_post['target_member']) || !empty($data_reply['memo']) && !empty($data_reply['target_member'])) {
                    include "{$mini['dir']}skin/template/memo.cmt_notice.tpl.php";
                    if (!function_exists('skinConv')) {
                        include "{$mini['dir']}_inc.skinmake.php";
                    }
                    if (!empty($tpl)) {
                        $tmp = !empty($tpl[$mini['site']['template']['cmt_notice']]) ? $tpl[$mini['site']['template']['cmt_notice']] : current($tpl);
                        unset($mini['skin']);
                        $mini['skin'] = '';
                        if (!empty($mini['site'])) {
                            $mini['skin']['site'] =& $mini['site'];
                        }
                        if (!empty($mini['board'])) {
                            $mini['skin']['board'] =& $mini['board'];
                        }
                        if (!empty($data)) {
                            $mini['skin']['data'] =& $data;
                            $mini['skin']['data']['url_view'] = "{$mini['dir']}mini.php?id={$board_data['id']}&amp;no={$data['target_post']}&amp;cNo={$data['no']}";
                        }
                        if (!empty($data_post)) {
                            $mini['skin']['data_post'] = parsePost($data_post, 'list', 1);
                        }
                        if (!empty($data_reply)) {
                            $mini['skin']['data_reply'] =& $data_reply;
                        }
                        $mini['skin']['date'] = $mini['date'];
                        $mini['skin']['pdir'] = $mini['pdir'];
                        $mini['skin']['target'] = !empty($data_reply) ? $data_reply['target_member'] : $data_post['target_member'];
                        $mini['skin']['name'] = !empty($data_reply) ? $data_reply['name'] : $data_post['name'];
                        if (empty($mdata) || $mini['skin']['target'] != $mdata['no']) {
                            $result = sendMemo(array('skip_filter' => 1, 'target_member' => !empty($data_reply) ? $data_reply['target_member'] : $data_post['target_member'], 'ment' => skinConv(!empty($data_reply) ? $tmp['cmt'] : $tmp['post'], 'str')), $mini['skin']['target'], '', '');
                        }
                    } else {
                        __error('인증메일을 발송할 수 없습니다. 관리자에게 문의해 주세요');
                    }
                }
            }
            // 트랙백 댓글 주소 설정
            if (!empty($data_reply) && !empty($data_reply['trackback'])) {
                $tmp_data = getSocket("\n\t\t\t\t\t\turl: {$data_reply['trackback']}\n\t\t\t\t\t\tskip_header: 1\n\t\t\t\t\t");
                if (!empty($tmp_data) && strpos($tmp_data, "<rdf:RDF") !== false) {
                    preg_match("/\\<rdf\\:Description.+trackback\\:ping\\=\"([^\"]+)\" \\/\\>/is", $tmp_data, $mat);
                    if (!empty($mat[1])) {
                        $trackback = $mat[1];
                    }
                }
            }
            // 트랙백 보내기
            if (!empty($trackback)) {
                sendTrackback($trackback, $trackback_excerpt, $trackback_charset, $data, $board_data, 'cmt');
            }
            // 이미지 치환
            if (!empty($is_saveImage) && !empty($data['ment'])) {
                $data['ment'] = saveImage($data['no'], $data['ment'], $board_data, 'cmt');
                sql("UPDATE {$board_data['table_cmt']} SET ment='{$data['ment']}' WHERE no={$data['no']}");
            }
        }
    }
    //// 검색어 등록
    $output_conv_index = addIndex($data, "\n\t\t\tid: {$board_data['no']}\n\t\t\tnum: {$data_post['num']}\n\t\t\tcmt_no: {$data['no']}\n\t\t\tdate: {$data['date']}\n\t\t\ttarget: {$data['target_member']}\n\t\t\tip: {$data['ip']}\n\t\t\tis_conv: " . (!empty($param['is_conv']) && empty($param['is_manage']) ? "1" : "0") . "\n\t\t");
    if (!empty($param['is_conv']) && empty($param['is_manage'])) {
        return array('data' => $output_conv, 'index' => $output_conv_index);
    } else {
        return $data;
    }
}
Example #3
0
/** 스킨 변수 준비
 * @class skin
 * @param
		$name: 스킨이름
 */
function setSkin($name = '')
{
    global $mini, $data;
    if (!isset($mini['skin']) || !is_array($mini['skin'])) {
        $mini['skin'] = array();
    }
    if (empty($mini['skin']['config'])) {
        setSkinConfig();
    }
    // 초기화
    $mini['skin'] = array_merge($mini['skin'], array('dir' => !empty($mini['sdir']) ? $mini['sdir'] : '', 'rdir' => !empty($mini['dir']) ? $mini['dir'] : '', 'pdir' => !empty($mini['pdir']) ? $mini['pdir'] : '', 'url_write' => "{$mini['dir']}write.php?id={$_REQUEST['id']}" . getURI('id, mode'), 'url_list' => "{$mini['dir']}mini.php?id={$_REQUEST['id']}" . getURI("id, no, mode, pass_encode" . (empty($_REQUEST['no']) ? ", sort, s, start, div, page, quick, and, is_cmt, category" : "")), 'url_list_all' => "{$mini['dir']}mini.php?id={$_REQUEST['id']}" . getURI("id, no, mode, pass_encode, sort, s, start, div, page, quick, and, is_cmt, category"), 'url_login' => "{$mini['dir']}login.php?id={$_REQUEST['id']}&amp;group={$_REQUEST['group']}&amp;url=" . url(), 'url_logout' => "{$mini['dir']}login.php?mode=logout&amp;url=" . url(), 'url_join' => "{$mini['dir']}member.php?id={$_REQUEST['id']}&amp;group={$_REQUEST['group']}&amp;url=" . url(), 'url_rss' => "{$mini['dir']}feed.php?id={$_REQUEST['id']}", 'url_file' => "{$mini['dir']}file.php?id={$_REQUEST['id']}&amp;group={$_REQUEST['group']}&amp;url=" . url(), 'url_post_manage' => "{$mini['dir']}manage.php?id={$_REQUEST['id']}&amp;group={$_REQUEST['group']}&amp;mode=post&amp;url=" . url(), 'url_cmt_manage' => "{$mini['dir']}manage.php?id={$_REQUEST['id']}&amp;group={$_REQUEST['group']}&amp;mode=comment&amp;url=" . url(), 'js_back' => "onclick='history.back(); return false;'", 'js_back2' => "onclick='history.go(-2); return false;'", 'js_del' => "onclick='actions(\"del\"); return false;'", 'js_post_del' => "onclick='actions(frm_list, \"post_del\"); return false;'", 'js_post_manage' => "onclick='actions(frm_list, \"post_manage\"); return false;'", 'js_cmt_del' => "onclick='actions(frm_cmt, \"cmt_del\"); return false;'", 'js_cmt_manage' => "onclick='actions(frm_cmt, \"cmt_manage\"); return false;'", 'js_member_close' => "onclick='\$(\"tool_member\").toggle(\"hide\"); return false;'", 'mode' => $_REQUEST['mode'], 'log' => !empty($mini['log']) ? $mini['log'] : '', 'date' => $mini['date'], 'ip' => $mini['ip'], 'request' => &$_REQUEST, 'is_search' => !empty($_REQUEST['s']) || !empty($_REQUEST['quick']), 'is_search_or_category' => !empty($_REQUEST['s']) || !empty($_REQUEST['quick']) || !empty($_REQUEST['category']), 'js_tag_post' => "onclick='getTags(frm_write); return false;'", 'js_prev' => "onclick='if (\$chk(key_func[\"prev\"])) key_func[\"prev\"](); return false;'", 'js_next' => "onclick='if (\$chk(key_func[\"next\"])) key_func[\"next\"]();return false;'", 'js_tag_cmt' => "onclick='getTags(frm_cmt); return false;'", 'js_trackback' => "onclick='\$(\"trackback\").toggle(); return false;'", 'js_trackback_ment' => "onclick='\$(\"trackback_ment\").toggle(); return false'", 'js_trackback_ok' => "onclick='\$(\"form_trackback\").submit(); return false'", 'js_cal' => "onclick='myCal.initialize(\$(this).getPrevious()); return false;'", 'js_today' => "onclick='\$(this).getPrevious().getPrevious().value=\"" . date("Y-n-j") . "\"; return false;'"));
    // 징계상태일 때 글쓰기 링크 뺌
    if (!empty($mini['log']) && !empty($mini['member']['no']) && empty($mini['member']['level'])) {
        $mini['skin']['js_write'] = "onclick='error(\"징계상태에서는 글을 쓸 수 없습니다\");'";
    }
    // 카테고리
    if (!empty($_REQUEST['category'])) {
        $mini['skin']['category'] = $_REQUEST['category'];
        if (!empty($mini['board']['category_name']) && preg_match("/^(mini\\.php|write\\.php)\$/i", $mini['filename'])) {
            $mini['skin']['category_name'] = $mini['board']['category_name'][$_REQUEST['category']];
        }
    }
    // 위치 설정
    $mini['skin']['is_join'] = !empty($_REQUEST['url']) && preg_match("/member\\.php/i", $_REQUEST['url']);
    // find 연결
    if (!empty($mini['site']['no'])) {
        $mini['skin']['url_find'] = "{$mini['dir']}login.find.php?group={$mini['site']['no']}&amp;url=" . url();
    }
    // data 연결
    switch ($mini['filename']) {
        case 'member.php':
            $mini['skin']['data'] =& $data;
            break;
    }
    // 환경설정
    $mini['skin']['set'] =& $mini['set'];
    $mini['skin']['setting'] =& $mini['setting'];
    $mini['skin']['cache'] =& $mini['cache'];
    $mini['skin']['cookie'] =& $_COOKIE;
    $mini['skin']['s'] = '';
    if (!empty($_REQUEST['s'])) {
        $mini['skin']['s'] =& $_REQUEST['s'];
    }
    // 회원
    if (!empty($mini['log'])) {
        $mini['skin']['member'] =& $mini['member'];
        $mini['skin']['url_myinfo'] = "{$mini['dir']}member.php?mode=modify&amp;no={$mini['member']['no']}&amp;id={$_REQUEST['id']}&amp;group={$_REQUEST['group']}&amp;url=" . url();
        $mini['skin']['url_mymenu'] = "{$mini['dir']}mymenu.php?mode=memo&amp;no={$mini['member']['no']}";
    }
    // 사이트
    if (!empty($mini['site'])) {
        $mini['skin']['site'] =& $mini['site'];
    }
    // 게시판
    if (!empty($mini['board'])) {
        $mini['skin']['board'] =& $mini['board'];
    }
    // 마이메뉴
    if ($mini['filename'] == 'mymenu.php' || $mini['filename'] == 'memo.write.php') {
        $mini['skin'] = array_merge($mini['skin'], array('js_friend' => "onclick='actions(\"friend\");'", 'js_memo_block' => "onclick='actions(\"memo_block\");'", 'js_memo_save_action' => "onclick='actions(\"memo_save\");'", 'url_mymenu' => "{$mini['dir']}mymenu.php?mode=mymenu" . getURI("mode, s, sort, quick", "&amp;"), 'url_memo_myinfo' => "{$mini['dir']}mymenu.php?mode=myinfo" . getURI("mode, s, sort, quick", "&amp;"), 'url_memo' => "{$mini['dir']}mymenu.php?mode=memo" . getURI("mode, s, sort, quick", "&amp;"), 'url_memo_list' => "{$mini['dir']}mymenu.php?mode=memo_list" . getURI("mode, s, sort, quick", "&amp;"), 'url_memo_save' => "{$mini['dir']}mymenu.php?mode=memo_save" . getURI("mode,  s, sort, quick", "&amp;"), 'url_memo_ini' => "{$mini['dir']}mymenu.php?mode=memo_ini" . getURI("mode, s, sort, quick", "&amp;"), 'url_scrap' => "{$mini['dir']}mymenu.php?mode=scrap" . getURI("mode, s, sort, quick", "&amp;"), 'url_log' => "{$mini['dir']}mymenu.php?mode=log" . getURI("mode, s, sort, quick", "&amp;")));
    }
    // 관리자
    //+ 관리권한 검색
    $mini['skin']['link_admin'] = !empty($mini['member']['is_board']) ? "href='{$mini['dir']}admin' target='_blank'" : "href='#' onclick='return false;'";
    $mini['skin']['js_admin'] = !empty($mini['member']['is_board']) ? "onclick='document.location.href=\"{$mini['dir']}admin\"'" : "";
    if (!empty($mini['board'])) {
        $mini['skin']['link_board_admin'] = !empty($mini['member']['is_board']) && !empty($mini['board']['no']) ? "href='{$mini['dir']}admin/index.php?mode=board&amp;target={$mini['board']['no']}' target='_blank'" : "href='#' onclick='return false;'";
    }
    $mini['skin']['js_board_admin'] = !empty($mini['member']['is_board']) && !empty($mini['board']['no']) ? "onclick='window.open(\"{$mini['dir']}admin/index.php?mode=board&amp;target={$mini['board']['no']}\"); return false;'" : "";
    // 리스팅 관련
    if ($mini['filename'] == 'mini.php') {
        if (!empty($mini['list']['default']) && empty($_REQUEST['no'])) {
            $mini['skin'] = array_merge($mini['skin'], array('total' => $mini['list']['default']['total'], 'page' => $mini['list']['default']['page'], 'page_total' => $mini['list']['default']['tp']));
        }
    }
    // 댓글 창
    if ($mini['filename'] == 'cmt.php') {
        if (!empty($_REQUEST['new'])) {
            $mini['skin']['new'] = $_REQUEST['new'];
        }
    }
    // 글쓰기 파일업로드 링크
    if ($mini['filename'] == 'write.php') {
        $mini['skin'] = array_merge($mini['skin'], array('url_file' => "{$mini['dir']}file.php?id={$_REQUEST['id']}&amp;no={$_REQUEST['no']}" . (!empty($_REQUEST['pass_encode']) ? "&amp;pass_encode={$_REQUEST['pass_encode']}" : "") . "&amp;url=" . url(), 'pop_file' => "iiPopup.init({ url: \"{$mini['skin']['url_file']}\", width:iiSize[\"file\"][0], height:iiSize[\"file\"][1] });"));
    }
    // 가입
    if ($mini['filename'] == 'member.php') {
        $mini['skin'] = array_merge($mini['skin'], array('js_chat' => "onclick='addChat({ target: this });'", 'js_admit' => "onclick='sendAdmitMail();'", 'js_admit_sms' => "onclick='sendAdmitSMS();'", 'js_withdraw_button' => "onclick='\$(\"withdraw\").toggle();'", 'js_withdraw' => "onclick='setWithdraw();'"));
    }
    // iiPopup
    $mini['skin'] = array_merge($mini['skin'], array('pop_login' => "iiPopup.init({ url: \"{$mini['skin']['url_login']}\", width:iiSize[\"login\"][0], height:iiSize[\"login\"][1] });", 'pop_join' => "iiPopup.init({ url: \"{$mini['skin']['url_join']}\", width:iiSize[\"join\"][0], height:iiSize[\"join\"][1], close: true });", 'pop_file' => "iiPopup.init({ url: \"{$mini['skin']['url_file']}\", width:iiSize[\"file\"][0], height:iiSize[\"file\"][1] });", 'pop_post_manage' => "iiPopup.init({ url: \"{$mini['skin']['url_post_manage']}\", width:iiSize[\"manage\"][0], height:iiSize[\"manage\"][1] }); actions(frm_list, \"post_manage\");", 'pop_cmt_manage' => "iiPopup.init({ url: \"{$mini['skin']['url_cmt_manage']}\", width:iiSize[\"manage\"][0], height:iiSize[\"manage\"][1] }); actions(frm_cmt, \"cmt_manage\");"));
    if (!empty($mini['skin']['url_find'])) {
        $mini['skin']['pop_find'] = "iiPopup.init({ url: \"{$mini['skin']['url_find']}\", width:iiSize[\"find\"][0], height:iiSize[\"find\"][1] });";
    }
    if (!empty($mini['skin']['url_myinfo'])) {
        $mini['skin']['pop_myinfo'] = "iiPopup.init({ url: \"{$mini['skin']['url_myinfo']}\", width:iiSize[\"myinfo\"][0], height:iiSize[\"myinfo\"][1], close: true });";
    }
    if (!empty($mini['skin']['url_mymenu'])) {
        $mini['skin']['pop_mymenu'] = "iiPopup.init({ url: \"{$mini['skin']['url_mymenu']}\", width:iiSize[\"mymenu\"][0], height:iiSize[\"mymenu\"][1] });";
    }
    // 권한적용
    if (!empty($mini['skin']['board'])) {
        if (!getPermit("name:notice")) {
            $mini['skin']['board']['use_notice'] = 0;
        }
        if (!getPermit("name:permit")) {
            $mini['skin']['board']['use_permit'] = 0;
        }
        if (!getPermit("name:search")) {
            $mini['skin']['board']['use_search'] = 0;
        }
        if (!getPermit("name:trackback")) {
            $mini['skin']['board']['use_trackback'] = 0;
        }
        if (!getPermit("name:report")) {
            $mini['skin']['board']['use_report'] = 0;
        }
    }
    // 카운터
    if (!empty($mini['counter'])) {
        $mini['skin']['counter'] = $mini['counter'];
    }
    // link
    urlToLink($mini['skin']);
    if (!empty($name) && !empty($mini['sdir'])) {
        // 스킨 컨버팅
        iss($_REQUEST['skinmake']);
        if ($_REQUEST['skinmake'] || preg_match("/skinmake=1/i", $_REQUEST['url']) || preg_match("/skinmake%3D1/i", $_REQUEST['url'])) {
            $_REQUEST['skinmake'] = 1;
            include "_inc.skinmake.php";
            if (file_exists("{$mini['sdir']}head.mini")) {
                skinConv("{$mini['sdir']}head.mini");
            }
            if (file_exists("{$mini['sdir']}foot.mini")) {
                skinConv("{$mini['sdir']}foot.mini");
            }
            if (file_exists("{$mini['sdir']}widget.mini")) {
                skinConv("{$mini['sdir']}widget.mini");
            }
            if ($name == 'view') {
                skinConv("{$mini['sdir']}cmt.mini");
                skinConv("{$mini['sdir']}list.mini");
            }
            skinConv("{$mini['sdir']}{$name}.mini");
        }
        // head 스킨 로드
        if (preg_match("/^(list|view|write)\$/", $name) && file_exists("{$mini['sdir']}head.php")) {
            include "{$mini['sdir']}head.php";
        }
        // 스킨 로드
        include "{$mini['sdir']}{$name}.php";
        // foot 스킨 로드
        if (preg_match("/^(list|view|write)\$/", $name) && file_exists("{$mini['sdir']}foot.php")) {
            include "{$mini['sdir']}foot.php";
        }
        // 스킨 컨버팅 안내 문구
        if ($_REQUEST['skinmake']) {
            //				echo "
            //					<script type='text/javascript'>
            //					//<![CDATA[
            //						error('".(!empty($mini['error_msg']) ? $mini['error_msg'] : "스킨 변환 되었습니다")."');
            //					//]]>
            //					</script>
            //				";
        }
    }
}