<?
$sub_menu = "300100";
include_once('./_common.php');

if ($w == 'u')
    check_demo();

auth_check($auth[$sub_menu], 'w');

if ($member['mb_password'] != sql_password($_POST['admin_password'])) {
    alert('패스워드가 다릅니다.');
}

if (!$_POST['gr_id']) { alert('그룹 ID는 반드시 선택하세요.'); }
if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); }
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); }
if (!$_POST['bo_subject']) { alert('게시판 제목을 입력하세요.'); }

if ($img = $_FILES['bo_image_head']['name']) {
    if (!preg_match("/\.(gif|jpg|png)$/i", $img)) {
        alert('상단 이미지가 gif, jpg, png 파일이 아닙니다.');
    }
}

if ($img = $_FILES['bo_image_tail']['name']) {
    if (!preg_match("/\.(gif|jpg|png)$/i", $img)) {
        alert('하단 이미지가 gif, jpg, png 파일이 아닙니다.');
    }
}

if ($file = $_POST['bo_include_head']) {
    if (!preg_match("/\.(php|htm[l]?)$/i", $file)) {
        alert('상단 파일 경로가 php, html 파일이 아닙니다.');
    }
}

if ($file = $_POST['bo_include_tail']) {
    if (!preg_match("/\.(php|htm[l]?)$/i", $file)) {
        alert('하단 파일 경로가 php, html 파일이 아닙니다.');
    }
}

check_token();

$board_path = $g4['path'].'/data/file/'.$bo_table;

// 게시판 디렉토리 생성
@mkdir($board_path, 0707);
@chmod($board_path, 0707);

// 디렉토리에 있는 파일의 목록을 보이지 않게 한다.
$file = $board_path . '/index.php';
$f = @fopen($file, 'w');
@fwrite($f, '');
@fclose($f);
@chmod($file, 0606);

// 분류에 & 나 = 는 사용이 불가하므로 2바이트로 바꾼다.
$src_char = array('&', '=');
$dst_char = array('＆', '〓');
$bo_category_list = str_replace($src_char, $dst_char, $bo_category_list);

$sql_common = " gr_id               = '{$_POST['gr_id']}',
                        bo_subject          = '{$_POST['bo_subject']}',
                        bo_admin            = '{$_POST['bo_admin']}',
                        bo_list_level       = '{$_POST[bo_list_level]}',
                        bo_read_level       = '{$_POST[bo_read_level]}',
                        bo_write_level      = '{$_POST[bo_write_level]}',
                        bo_reply_level      = '{$_POST[bo_reply_level]}',
                        bo_comment_level    = '{$_POST[bo_comment_level]}',
                        bo_html_level       = '{$_POST[bo_html_level]}',
                        bo_link_level       = '{$_POST[bo_link_level]}',
                        bo_trackback_level  = '{$_POST[bo_trackback_level]}',
                        bo_count_modify     = '{$_POST[bo_count_modify]}',
                        bo_count_delete     = '{$_POST[bo_count_delete]}',
                        bo_upload_level     = '{$_POST[bo_upload_level]}',
                        bo_download_level   = '{$_POST[bo_download_level]}',
                        bo_read_point       = '{$_POST[bo_read_point]}',
                        bo_write_point      = '{$_POST[bo_write_point]}',
                        bo_comment_point    = '{$_POST[bo_comment_point]}',
                        bo_download_point   = '{$_POST[bo_download_point]}',
                        bo_use_category     = '{$_POST[bo_use_category]}',
                        bo_category_list    = '{$_POST['bo_category_list']}',
                        bo_disable_tags     = '{$_POST['bo_disable_tags']}',
                        bo_use_sideview     = '{$_POST[bo_use_sideview]}',
                        bo_use_file_content = '{$_POST[bo_use_file_content]}',
                        bo_use_secret       = '{$_POST[bo_use_secret]}',
                        bo_use_dhtml_editor = '{$_POST[bo_use_dhtml_editor]}',
                        bo_use_rss_view     = '{$_POST[bo_use_rss_view]}',
                        bo_use_comment      = '{$_POST[bo_use_comment]}',
                        bo_use_good         = '{$_POST[bo_use_good]}',
                        bo_use_nogood       = '{$_POST[bo_use_nogood]}',
                        bo_use_name         = '{$_POST[bo_use_name]}',
                        bo_use_signature    = '{$_POST[bo_use_signature]}',
                        bo_use_ip_view      = '{$_POST[bo_use_ip_view]}',
                        bo_use_trackback    = '{$_POST[bo_use_trackback]}',
                        bo_use_list_view    = '{$_POST[bo_use_list_view]}',
                        bo_use_list_content = '{$_POST[bo_use_list_content]}',
                        bo_use_email        = '{$_POST[bo_use_email]}',
                        bo_table_width      = '{$_POST[bo_table_width]}',
                        bo_subject_len      = '{$_POST[bo_subject_len]}',
                        bo_page_rows        = '{$_POST[bo_page_rows]}',
                        bo_new              = '{$_POST[bo_new]}',
                        bo_hot              = '{$_POST[bo_hot]}',
                        bo_image_width      = '{$_POST[bo_image_width]}',
                        bo_skin             = '{$_POST['bo_skin']}',
                        bo_include_head     = '{$_POST['bo_include_head']}',
                        bo_include_tail     = '{$_POST['bo_include_tail']}',
                        bo_content_head     = '{$_POST['bo_content_head']}',
                        bo_content_tail     = '{$_POST['bo_content_tail']}',
                        bo_insert_content   = '{$_POST['bo_insert_content']}',
                        bo_gallery_cols     = '{$_POST[bo_gallery_cols]}',
                        bo_upload_count     = '{$_POST[bo_upload_count]}',
                        bo_upload_size      = '{$_POST[bo_upload_size]}',
                        bo_reply_order      = '{$_POST[bo_reply_order]}',
                        bo_use_search       = '{$_POST[bo_use_search]}',
                        bo_order_search     = '{$_POST[bo_order_search]}',
                        bo_write_min        = '{$_POST[bo_write_min]}',
                        bo_write_max        = '{$_POST[bo_write_max]}',
                        bo_comment_min      = '{$_POST[bo_comment_min]}',
                        bo_comment_max      = '{$_POST[bo_comment_max]}',
                        bo_sort_field       = '{$_POST['bo_sort_field']}',
                        bo_1_subj           = '{$_POST['bo_1_subj']}',
                        bo_2_subj           = '{$_POST['bo_2_subj']}',
                        bo_3_subj           = '{$_POST['bo_3_subj']}',
                        bo_4_subj           = '{$_POST['bo_4_subj']}',
                        bo_5_subj           = '{$_POST['bo_5_subj']}',
                        bo_6_subj           = '{$_POST['bo_6_subj']}',
                        bo_7_subj           = '{$_POST['bo_7_subj']}',
                        bo_8_subj           = '{$_POST['bo_8_subj']}',
                        bo_9_subj           = '{$_POST['bo_9_subj']}',
                        bo_10_subj          = '{$_POST['bo_10_subj']}',
                        bo_1                = '{$_POST['bo_1']}',
                        bo_2                = '{$_POST['bo_2']}',
                        bo_3                = '{$_POST['bo_3']}',
                        bo_4                = '{$_POST['bo_4']}',
                        bo_5                = '{$_POST['bo_5']}',
                        bo_6                = '{$_POST['bo_6']}',
                        bo_7                = '{$_POST['bo_7']}',
                        bo_8                = '{$_POST['bo_8']}',
                        bo_9                = '{$_POST['bo_9']}',
                        bo_10               = '{$_POST['bo_10']}' ";

if ($bo_image_head_del) {
    @unlink($board_path.'/'.$bo_image_head_del);
    $sql_common .= " , bo_image_head = '' ";
}

if ($bo_image_tail_del) {
    @unlink($board_path.'/'.$bo_image_tail_del);
    $sql_common .= " , bo_image_tail = '' ";
}

if ($_FILES['bo_image_head']['name']) {
    //$bo_image_head_urlencode = urlencode($_FILES[bo_image_head][name]);
    $bo_image_head_urlencode = $bo_table.'_head_'.time();
    $sql_common .= " , bo_image_head = '{$bo_image_head_urlencode}' ";
}

if ($_FILES['bo_image_tail']['name']) {
    //$bo_image_tail_urlencode = urlencode($_FILES[bo_image_tail][name]);
    $bo_image_tail_urlencode = $bo_table.'_tail_'.time();
    $sql_common .= " , bo_image_tail = '{$bo_image_tail_urlencode}' ";
}

if ($w == '') {
    $row = sql_fetch(" select count(*) as cnt from {$g4['board_table']} where bo_table = '{$bo_table}' ");
    if ($row[cnt])
        alert($bo_table.' 은(는) 이미 존재하는 TABLE 입니다.');

    $sql = " insert into {$g4['board_table']}
                set bo_table = '{$bo_table}',
                    bo_count_write = '0',
                    bo_count_comment = '0',
                    $sql_common ";
    sql_query($sql);

    // 게시판 테이블 생성
    $file = file('./sql_write.sql');
    $sql = implode($file, "\n");

    $create_table = $g4['write_prefix'] . $bo_table;

    // sql_board.sql 파일의 테이블명을 변환
    $source = array('/__TABLE_NAME__/', '/;/');
    $target = array($create_table, '');
    $sql = preg_replace($source, $target, $sql);
    sql_query($sql, FALSE);
} else if ($w == 'u') {
    // 게시판의 글 수
    $sql = " select count(*) as cnt from {$g4['write_prefix']}{$bo_table} where wr_is_comment = 0 ";
    $row = sql_fetch($sql);
    $bo_count_write = $row[cnt];

    // 게시판의 코멘트 수
    $sql = " select count(*) as cnt from {$g4['write_prefix']}{$bo_table} where wr_is_comment = 1 ";
    $row = sql_fetch($sql);
    $bo_count_comment = $row[cnt];

    // 글수 조정
    if ($proc_count) {
        // 원글을 얻습니다.
        $sql = " select wr_id from {$g4['write_prefix']}{$bo_table} where wr_is_comment = 0 ";
        $result = sql_query($sql);
        for ($i=0; $row=sql_fetch_array($result); $i++) {
            // 코멘트수를 얻습니다.
            $sql2 = " select count(*) as cnt from {$g4['write_prefix']}$bo_table where wr_parent = '{$row[wr_id]}' and wr_is_comment = 1 ";
            $row2 = sql_fetch($sql2);

            sql_query(" update {$g4['write_prefix']}{$bo_table} set wr_comment = '{$row2[cnt]}' where wr_id = '{$row[wr_id]}' ");
        }
    }

    // 공지사항에는 등록되어 있지만 실제 존재하지 않는 글 아이디는 삭제합니다.
    $bo_notice = "";
    $lf = "";
    if ($board[bo_notice]) {
        $tmp_array = explode("\n", $board[bo_notice]);
        for ($i=0; $i<count($tmp_array); $i++) {
            $tmp_wr_id = trim($tmp_array[$i]);
            $row = sql_fetch(" select count(*) as cnt from {$g4['write_prefix']}{$bo_table} where wr_id = '{$tmp_wr_id}' ");
            if ($row[cnt])
            {
                $bo_notice .= $lf . $tmp_wr_id;
                $lf = "\n";
            }
        }
    }

    $sql = " update {$g4['board_table']}
                set bo_notice = '{$bo_notice}',
                    bo_count_write = '{$bo_count_write}',
                    bo_count_comment = '{$bo_count_comment}',
                    {$sql_common}
              where bo_table = '{$bo_table}' ";
    sql_query($sql);
}


// 같은 그룹내 게시판 동일 옵션 적용
$s = "";
if ($chk_admin) $s .= " , bo_admin = '{$bo_admin}' ";
if ($chk_list_level) $s .= " , bo_list_level = '{$bo_list_level}' ";
if ($chk_read_level) $s .= " , bo_read_level = '{$bo_read_level}' ";
if ($chk_write_level) $s .= " , bo_write_level = '{$bo_write_level}' ";
if ($chk_reply_level) $s .= " , bo_reply_level = '{$bo_reply_level}' ";
if ($chk_comment_level) $s .= " , bo_comment_level = '{$bo_comment_level}' ";
if ($chk_link_level) $s .= " , bo_link_level = '{$bo_link_level}' ";
if ($chk_upload_level) $s .= " , bo_upload_level = '{$bo_upload_level}' ";
if ($chk_download_level) $s .= " , bo_download_level = '{$bo_download_level}' ";
if ($chk_html_level) $s .= " , bo_html_level = '{$bo_html_level}' ";
if ($chk_trackback_level) $s .= " , bo_trackback_level = '{$bo_trackback_level}' ";
if ($chk_count_modify) $s .= " , bo_count_modify = '{$bo_count_modify}' ";
if ($chk_count_delete) $s .= " , bo_count_delete = '{$bo_count_delete}' ";
if ($chk_read_point) $s .= " , bo_read_point = '{$bo_read_point}' ";
if ($chk_write_point) $s .= " , bo_write_point = '{$bo_write_point}' ";
if ($chk_comment_point) $s .= " , bo_comment_point = '{$bo_comment_point}' ";
if ($chk_download_point) $s .= " , bo_download_point = '{$bo_download_point}' ";
if ($chk_category_list) {
    $s .= " , bo_category_list = '{$bo_category_list}' ";
    $s .= " , bo_use_category = '{$bo_use_category}' ";
}
if ($chk_use_sideview) $s .= " , bo_use_sideview = '{$bo_use_sideview}' ";
if ($chk_use_file_content) $s .= " , bo_use_file_content = '{$bo_use_file_content}' ";
if ($chk_use_comment) $s .= " , bo_use_comment = '{$bo_use_comment}' ";
if ($chk_use_secret) $s .= " , bo_use_secret = '{$bo_use_secret}' ";
if ($chk_use_dhtml_editor) $s .= " , bo_use_dhtml_editor = '{$bo_use_dhtml_editor}' ";
if ($chk_use_rss_view) $s .= " , bo_use_rss_view = '{$bo_use_rss_view}' ";
if ($chk_use_good) $s .= " , bo_use_good = '{$bo_use_good}' ";
if ($chk_use_nogood) $s .= " , bo_use_nogood = '{$bo_use_nogood}' ";
if ($chk_use_name) $s .= " , bo_use_name = '{$bo_use_name}' ";
if ($chk_use_signature) $s .= " , bo_use_signature = '{$bo_use_signature}' ";
if ($chk_use_ip_view) $s .= " , bo_use_ip_view = '{$bo_use_ip_view}' ";
if ($chk_use_trackback) $s .= " , bo_use_trackback = '{$bo_use_trackback}' ";
if ($chk_use_list_view) $s .= " , bo_use_list_view = '{$bo_use_list_view}' ";
if ($chk_use_list_content) $s .= " , bo_use_list_content = '{$bo_use_list_content}' ";
if ($chk_use_email) $s .= " , bo_use_email = '{$bo_use_email}' ";
if ($chk_skin) $s .= " , bo_skin = '{$bo_skin}' ";
if ($chk_gallery_cols) $s .= " , bo_gallery_cols = '{$bo_gallery_cols}' ";
if ($chk_table_width) $s .= " , bo_table_width = '{$bo_table_width}' ";
if ($chk_page_rows) $s .= " , bo_page_rows = '{$bo_page_rows}' ";
if ($chk_subject_len) $s .= " , bo_subject_len = '{$bo_subject_len}' ";
if ($chk_new) $s .= " , bo_new = '{$bo_new}' ";
if ($chk_hot) $s .= " , bo_hot = '{$bo_hot}' ";
if ($chk_image_width) $s .= " , bo_image_width = '{$bo_image_width}' ";
if ($chk_reply_order) $s .= " , bo_reply_order = '{$bo_reply_order}' ";
if ($chk_disable_tags) $s .= " , bo_disable_tags = '{$bo_disable_tags}' ";
if ($chk_sort_field) $s .= " , bo_sort_field = '{$bo_sort_field}' ";
if ($chk_write_min) $s .= " , bo_write_min = '{$bo_write_min}' ";
if ($chk_write_max) $s .= " , bo_write_max = '{$bo_write_max}' ";
if ($chk_comment_min) $s .= " , bo_comment_min = '{$bo_comment_min}' ";
if ($chk_comment_max) $s .= " , bo_comment_max = '{$bo_comment_max}' ";
if ($chk_upload_count) $s .= " , bo_upload_count = '{$bo_upload_count}' ";
if ($chk_upload_size) $s .= " , bo_upload_size = '{$bo_upload_size}' ";
if ($chk_include_head) $s .= " , bo_include_head = '{$bo_include_head}' ";
if ($chk_include_tail) $s .= " , bo_include_tail = '{$bo_include_tail}' ";
if ($chk_content_head) $s .= " , bo_content_head = '{$bo_content_head}' ";
if ($chk_content_tail) $s .= " , bo_content_tail = '{$bo_content_tail}' ";
if ($chk_insert_content) $s .= " , bo_insert_content = '{$bo_insert_content}' ";
if ($chk_use_search) $s .= " , bo_use_search = '{$bo_use_search}' ";
if ($chk_order_search) $s .= " , bo_order_search = '{$bo_order_search}' ";
for ($i=1; $i<=10; $i++) {
    if ($_POST["chk_{$i}"]) {
        $s .= " , bo_{$i}_subj = '".$_POST["bo_{$i}_subj"]."' ";
        $s .= " , bo_{$i} = '".$_POST["bo_{$i}"]."' ";
    }
}

if ($s) {
        $sql = " update {$g4['board_table']}
                    set bo_table = bo_table
                        {$s}
                  where gr_id = '$gr_id' ";
        sql_query($sql);
}


if ($_FILES['bo_image_head']['name']) {
    $bo_image_head_path = $board_path.'/'.$bo_image_head_urlencode;
    move_uploaded_file($_FILES['bo_image_head']['tmp_name'], $bo_image_head_path);
    chmod($bo_image_head_path, 0606);
}

if ($_FILES['bo_image_tail']['name']) {
    $bo_image_tail_path = $board_path.'/'.$bo_image_tail_urlencode;
    move_uploaded_file($_FILES['bo_image_tail']['tmp_name'], $bo_image_tail_path);
    chmod($bo_image_tail_path, 0606);
}

goto_url("./board_form.php?w=u&bo_table={$bo_table}&amp;{$qstr}");
?>
