PHP

그누보드 여분필드 늘리기

creat1ve 2019. 12. 3. 16:04
반응형

 1. adm/board_form_update.php에 아래와 같이 여분필드 추가 부분 지정후 저장
    2. 관리자 화면의 "게시판관리" 에서
        - 신규게시판 : "게시판추가" 클릭하면 추가한 여분필드가 추가된 상태의 신규 게시판 생성됨
        - 기존게시판 : 여분필드 추가할 기존 게시판 "수정" 클릭 후 게시판 수정화면에서 "확인"만 클릭하면 여분필드 추가됨
    ※ 여분필드 추가가 필요 없을 경우 추가된 부분 주석처리 필요(특히 기존 게시판에 대하여 여분필드를 모두 추가 하였을 경우 
      } else if ($w == 'u') { 이하에 지정한 부분은 더 이상 필요하지 않으므로 주석처리 또는 삭제를 하시기 바랍니다.

 

<?php
// 중간 생략
//     :
//     :
if ($w == '') {
    $row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where bo_table = '{$bo_table}' ");
    if ($row['cnt'])
        alert($bo_table.' 은(는) 이미 존재하는 TABLE 입니다.');
    $sql = " insert into {$g5['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 = $g5['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);
 
// ■ 신규 생성 게시판 여분필드 추가 필드 지정 (예시: wr_11 ~ wr_30 추가할 경우)
// 여기부터~
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_11` varchar(255) NOT NULL DEFAULT '' AFTER `wr_10` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_12` varchar(255) NOT NULL DEFAULT '' AFTER `wr_11` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_13` varchar(255) NOT NULL DEFAULT '' AFTER `wr_12` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_14` varchar(255) NOT NULL DEFAULT '' AFTER `wr_13` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_15` varchar(255) NOT NULL DEFAULT '' AFTER `wr_14` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_16` varchar(255) NOT NULL DEFAULT '' AFTER `wr_15` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_17` varchar(255) NOT NULL DEFAULT '' AFTER `wr_16` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_18` varchar(255) NOT NULL DEFAULT '' AFTER `wr_17` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_19` varchar(255) NOT NULL DEFAULT '' AFTER `wr_18` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_20` varchar(255) NOT NULL DEFAULT '' AFTER `wr_19` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_21` varchar(255) NOT NULL DEFAULT '' AFTER `wr_20` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_22` varchar(255) NOT NULL DEFAULT '' AFTER `wr_21` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_23` varchar(255) NOT NULL DEFAULT '' AFTER `wr_22` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_24` varchar(255) NOT NULL DEFAULT '' AFTER `wr_23` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_25` varchar(255) NOT NULL DEFAULT '' AFTER `wr_24` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_26` varchar(255) NOT NULL DEFAULT '' AFTER `wr_25` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_27` varchar(255) NOT NULL DEFAULT '' AFTER `wr_26` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_28` varchar(255) NOT NULL DEFAULT '' AFTER `wr_27` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_29` varchar(255) NOT NULL DEFAULT '' AFTER `wr_28` ", false);
    sql_query(" ALTER TABLE `{$create_table}` ADD `wr_30` varchar(255) NOT NULL DEFAULT '' AFTER `wr_29` ", false);
// ~여기까지
 
} else if ($w == 'u') {
// ■ 기존 게시판 여분필드 추가할 필드 지정 (예시: wr_11 ~ wr_30 추가할 경우)
// 여분필드 추가가 필요할 경우 관리자>게시판관리에서 '수정'->'확인'만 하면 원하는 여분필드 만큼 DB table에 필드가 추가 됨.(임시 사용후 주석 처리할 것!)
// 여기부터~
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_11` varchar(255) NOT NULL DEFAULT '' AFTER `wr_10` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_12` varchar(255) NOT NULL DEFAULT '' AFTER `wr_11` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_13` varchar(255) NOT NULL DEFAULT '' AFTER `wr_12` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_14` varchar(255) NOT NULL DEFAULT '' AFTER `wr_13` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_15` varchar(255) NOT NULL DEFAULT '' AFTER `wr_14` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_16` varchar(255) NOT NULL DEFAULT '' AFTER `wr_15` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_17` varchar(255) NOT NULL DEFAULT '' AFTER `wr_16` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_18` varchar(255) NOT NULL DEFAULT '' AFTER `wr_17` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_19` varchar(255) NOT NULL DEFAULT '' AFTER `wr_18` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_20` varchar(255) NOT NULL DEFAULT '' AFTER `wr_19` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_21` varchar(255) NOT NULL DEFAULT '' AFTER `wr_20` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_22` varchar(255) NOT NULL DEFAULT '' AFTER `wr_21` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_23` varchar(255) NOT NULL DEFAULT '' AFTER `wr_22` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_24` varchar(255) NOT NULL DEFAULT '' AFTER `wr_23` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_25` varchar(255) NOT NULL DEFAULT '' AFTER `wr_24` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_26` varchar(255) NOT NULL DEFAULT '' AFTER `wr_25` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_27` varchar(255) NOT NULL DEFAULT '' AFTER `wr_26` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_28` varchar(255) NOT NULL DEFAULT '' AFTER `wr_27` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_29` varchar(255) NOT NULL DEFAULT '' AFTER `wr_28` ", false);
    sql_query(" ALTER TABLE `{$g5['write_prefix']}{$bo_table}` ADD `wr_30` varchar(255) NOT NULL DEFAULT '' AFTER `wr_29` ", false);
// ~여기까지
    // 게시판의 글 수
    $sql = " select count(*) as cnt from {$g5['write_prefix']}{$bo_table} where wr_is_comment = 0 ";
    $row = sql_fetch($sql);
    $bo_count_write = $row['cnt'];
// 이하 생략
//     :
//     :
?>

 

 

bbs/write.php, write_update.php에서
for ($i=1; $i<=10; $i++) {
10을 추가한 필드 갯수(예, 30개까지 추가할 경우 30으로 변경)로 변경 
그리고

write_update.php에서
    $sql = " insert into $write_table
                :
                    wr_11 = '$wr_11',
                    wr_12 = '$wr_12',
                    wr_13 = '$wr_13',
                    wr_14 = '$wr_14',
                    wr_15 = '$wr_15',
                    wr_16 = '$wr_16',
                    wr_17 = '$wr_17',
                    wr_18 = '$wr_18',
                    wr_19 = '$wr_19',
                    wr_20 = '$wr_20',
                    wr_21 = '$wr_21',
                    wr_22 = '$wr_22',
                    wr_23 = '$wr_23',
                    wr_24 = '$wr_24',
                    wr_25 = '$wr_25',
                    wr_26 = '$wr_26',
                    wr_27 = '$wr_27',
                    wr_28 = '$wr_28',
                    wr_29 = '$wr_29',
                    wr_30 = '$wr_30' ";
    $sql = " update {$write_table}
                      :
                    wr_11 = '{$wr_11}',
                    wr_12 = '{$wr_12}',
                    wr_13 = '{$wr_13}',
                    wr_14 = '{$wr_14}',
                    wr_15 = '{$wr_15}',
                    wr_16 = '{$wr_16}',
                    wr_17 = '{$wr_17}',
                    wr_18 = '{$wr_18}',
                    wr_19 = '{$wr_19}',
                    wr_20 = '{$wr_20}',
                    wr_21 = '{$wr_21}',
                    wr_22 = '{$wr_22}',
                    wr_23 = '{$wr_23}',
                    wr_24 = '{$wr_24}',
                    wr_25 = '{$wr_25}',
                    wr_26 = '{$wr_26}',
                    wr_27 = '{$wr_27}',
                    wr_28 = '{$wr_28}',
                    wr_29 = '{$wr_29}',
                    wr_30= '{$wr_30}'

 

 

 

스킨 write_update.skin

 

<?
if(!$wr_comment) {  // 코멘일때는 저장하면 안됨.
$sql = " update $write_table 
set wr_11 = '$wr_11',
 wr_12 = '$wr_12',
 wr_13 = '$wr_13',
 wr_14 = '$wr_14',
 wr_15 = '$wr_15',
 wr_16 = '$wr_16',
 wr_17 = '$wr_17',
 wr_18 = '$wr_18',
 wr_19 = '$wr_19',
 wr_20 = '$wr_20',
 wr_21 = '$wr_21', 
 wr_22 = '$wr_22', 
 wr_23 = '$wr_23', 
 wr_24 = '$wr_24', 
 wr_25 = '$wr_25', 
 wr_26 = '$wr_26', 
 wr_27 = '$wr_27', 
 wr_28 = '$wr_28',
 wr_29 = '$wr_29',
 wr_30 = '$wr_30'   
 where wr_id = '$wr_id' " ; 
sql_query($sql); 

?>

반응형