File name: welboard2/BDcreate (7,135 bytes) Text file viewer v1.2
    1 : #!/bin/wel
    2 : 
    3 : /* file: BDcreate
    4 : 
    5 :    게시판 생성 프로그램 (author: 서광현)
    6 : 
    7 :    Copyright (c) 2001/03/25 by Wesoft
    8 :    All Rights Reserved.
    9 : */
   10 : 
   11 : timeout(0);
   12 : pos= strfind(WelVersion, " ");
   13 : if(pos<1) version= "V"~WelVersion; else version= "V"~left(WelVersion,pos-1);
   14 : if(version<"V0.9")
   15 :  {
   16 :     print("Wel version error! (require Wel V0.9)\n");
   17 :     return;
   18 :  }
   19 : 
   20 : path= argv[0];
   21 : if(right(path,8)=="BDcreate") path= left(path, len(path) - 8);
   22 : if(path!="" && path!="./") chdir(path);
   23 : 
   24 : CREATE_TABLE=
   25 : {[
   26 :  create table {$db} (
   27 :     selno    int4      DEFAULT '0' NOT NULL AUTO_INCREMENT PRIMARY KEY,
   28 :     grpno    int4      DEFAULT '0' NOT NULL,  # 원본 게시물의 번호(selno)
   29 :     answer   varchar(20) DEFAULT '' NOT NULL, # 답변글 index
   30 :     subject  tinytext  DEFAULT '' NOT NULL,  # 게시물 제목
   31 :     content  text      DEFAULT '' NOT NULL,  # 게시물 내용
   32 :     attfile  tinytext  DEFAULT '' NOT NULL,  # 첨부파일
   33 :     fileseq  int4      DEFAULT '0' NOT NULL, # 첨부파일 중복시 순번
   34 :     readcnt  int4      DEFAULT '0' NOT NULL, # 읽은 횟수
   35 :     downcnt  int4      DEFAULT '0' NOT NULL, # 다운 횟수
   36 :     linecnt  int4      DEFAULT '0' NOT NULL, # 내용 줄수
   37 :     postpass tinytext  DEFAULT '' NOT NULL,  # 게시물 삭제/수정 암호
   38 :     wdtime   tinytext  DEFAULT '' NOT NULL,  # 작성 일시
   39 :     wip      tinytext  DEFAULT '' NOT NULL,  # 작성자 ip
   40 :     whost    tinytext  DEFAULT '' NOT NULL,  # 작성자 host
   41 :     wname    tinytext  DEFAULT '' NOT NULL,  # 작성자 name
   42 :     wemail   tinytext  DEFAULT '' NOT NULL,  # 작성자 email
   43 :     mdtime   tinytext  DEFAULT '' NOT NULL,  # 최후 수정일시
   44 :     mip      tinytext  DEFAULT '' NOT NULL,  # 최후 수정 ip
   45 :     mhost    tinytext  DEFAULT '' NOT NULL,  # 최후 수정 host
   46 :     mname    tinytext  DEFAULT '' NOT NULL,  # 최후 수정 name
   47 :     memail   tinytext  DEFAULT '' NOT NULL   # 최후 수정 email
   48 : )
   49 : ]}
   50 : CONF_FORM={[{&}
   51 : // {$db}.conf
   52 : board_wdtime= "{$board_wdtime}"; // 최초생성
   53 : board_mdtime= "{$board_mdtime}"; // 최후수정
   54 : 
   55 : board_admin_id= "{$board_admin_id}"; // 관리자 ID
   56 : board_admin_pass= "{$board_admin_pass}"; // 관리자 암호
   57 : board_name= "{$board_name}"; // 게시판 이름
   58 : board_comment= "{$board_comment}"; // 게시판 설명
   59 : board_admin_email= "{$board_admin_email}"; // 관리자 email#1
   60 : board_admin_email2= ""; // 관리자 email#2
   61 : board_admin_email3= ""; // 관리자 email#3
   62 : home_url= "/"; // 홈으로가기
   63 : home_target= "_top"; // 홈으로가기 target frame
   64 : back_url= ""; // 뒤로가기
   65 : back_target= ""; // 뒤로가기 target frame
   66 : mail_to_admin= 1; // 게시물 작성시 관리자에게 통보 여부
   67 : mail_to_answer= 1; // 답변글 작성시 게시자에게 통보 여부
   68 : write_only_admin= 0; // 관리자만 게시물 작성 여부
   69 : write_answer= 1; // 답변글 쓰기 여부
   70 : ignore_center= 0; // 가운데 정렬 무시 여부
   71 : file_upload= 1; // 파일 업로드 허용 여부
   72 : max_upload_ksize= 0; // 파일 업로드 용량제한
   73 : board_width= "700"; // 게시판 폭
   74 : skin_code= 1; // 스킨 코드
   75 : titlecolor= "#FFFFFF"; // 게시판 이름 글자색
   76 : titlebgcolor= "#25648F"; // 게시판 이름 배경색
   77 : bar_board_bgcolor= "#E8C0B0"; // 게시판 상하 배경색
   78 : board_bgcolor= "#FFFFFF"; // 게시판 배경색
   79 : board_background= ""; // 게시판 배경 그림
   80 : board_cpright= ""; // 게시판 하단의 copyright
   81 : list_few_content= 1; // 게시물 목록에서 내용 인용 여부
   82 : list_admin_help= 0; // 목록의 관리자 문의 표시 여부
   83 : list_rec= 15; // 목록 개수
   84 : list_head_color= "#FFFFFF"; // 목록 제목 글자색
   85 : list_head_bgcolor= "#6090B8"; // 목록 제목 배경색
   86 : list_mover_bgcolor= "#D0F8D0"; // 마우스 포인터 위치색
   87 : list_focus_bgcolor= "F8D0D0"; // 최후 목록 위치색
   88 : view_board= 1; // 내용 보기시 게시물 목록 출력 여부
   89 : accept_html= 1; // HTML tag 허용 여부
   90 : view_subject_color= "#000000"; // 보기 제목 글자색
   91 : view_subject_bgcolor= "#F8E0E0"; // 보기 제목 배경색
   92 : view_download_bgcolor= "#E8F8E8"; // 다운로드 배경색
   93 : view_content_bgcolor= "#F8F8E8"; // 보기 내용 배경색
   94 : board_htflag= 0; // 머리 꼬릿말 설정 적용여부
   95 : board_header={$FUNSTR1}{$FUNSTR2}; // 게시판 HTML 두문부
   96 : board_tailer={$FUNSTR1}{$FUNSTR2}; // 게시판 HTML 미문부
   97 : return;
   98 : ]}
   99 : 
  100 : string FUNSTR1= "{[", FUNSTR2= "]}";
  101 : 
  102 : function cancel_message(string msg)
  103 :  {
  104 :     if(msg!="") print("\n ERROR: ", msg, "\n");
  105 :     print(" Board creation is cancelled.\n\n");
  106 :     return;
  107 :  }
  108 : 
  109 : print("<<--- WelBoard V2.0.4 board creation --->>\n\n");
  110 : 
  111 : if(argc>1)
  112 :   {
  113 :      db= argv[1];
  114 :      print("1. New board table: ", db, "\n");
  115 :   }
  116 :  else
  117 :   {
  118 :     while(1)
  119 :      {
  120 :         print("1. New board table: "); db= lrtrim(input()); print();
  121 :         if(db=="") { cancel_message(""); return; }
  122 :         len= len(tolower(db));
  123 :         if(len>0 && (strkind(db)&0xFFF1)==0) break;
  124 :         print("Bad new board name! (Usable charater: 0~9, A~Z, a~z)\n");
  125 :      }
  126 :   }
  127 : 
  128 : conf= "conf/" ~ db ~ ".conf";
  129 : if(fexist(conf))
  130 :  {
  131 :     cancel_message("Already exist!, board name: " ~ db);
  132 :     return;
  133 :  }
  134 : 
  135 : print("2. Board name(title): "); board_name= lrtrim(input()); print();
  136 : print("3. Board comment: "); board_comment= lrtrim(input()); print();
  137 : print("4. Administrator email: "); board_admin_email= lrtrim(input()); print();
  138 : while(1)
  139 :  {
  140 :     print("5. Administrator user id: ");
  141 :     board_admin_id= tolower(left(lrtrim(input()),12)); print();
  142 :     len= len(tolower(board_admin_id));
  143 :     if(len>0 && (strkind(board_admin_id)&0xFFF1)==0) break;
  144 :     print("Bad administrator user id! (Usable charater: 0~9, A~Z, a~z)\n");
  145 :  }
  146 : while(1)
  147 :  {
  148 :     print("6. Administrator password: ");
  149 :     board_admin_pass= lrtrim(input()); print();
  150 :     len= len(tolower(board_admin_pass));
  151 :     if(len>0 && (strkind(board_admin_pass)&0xFFF1)==0) break;
  152 :     print("Bad administrator password! (Usable charater: 0~9, A~Z, a~z)\n");
  153 :  }
  154 : print("\n-------------------------------------\n");
  155 : print("  Board       table name: ", db, "\n");
  156 : print("  Board      name(title): ", board_name, "\n");
  157 : print("  Board          comment: ", board_comment, "\n");
  158 : print("  Administrator    email: ", board_admin_email, "\n");
  159 : print("  Administrator  user id: ", board_admin_id, "\n");
  160 : print("  Administrator password: ", board_admin_pass, "\n");
  161 : print("-------------------------------------\n\n");
  162 : 
  163 : sel= choice(" Do you want to continue?(Y/n) ", "Yy\nNn");
  164 : if(sel==3) print("Y");
  165 : print("\n\n");
  166 : if(sel>3) { cancel_message(""); return; }
  167 : 
  168 : break_on= -1;
  169 : include("include/board.inc");
  170 : message_form= "";
  171 : board_admin_pass= encode(board_admin_pass, encodekey(), "", decode_variable);
  172 : 
  173 : print("1. Creating board table: ", db, "\n");
  174 : rt= mysql_connection("");
  175 : if(rt==MYSQL_ERR)
  176 :  {
  177 :     if(mysql==MYSQL_ERR) msg= "MySQL connection error!";
  178 :       else msg= "MySQL select db error! (DB=" ~ mydb ~ ")";
  179 :     cancel_message(msg);
  180 :     return disconnect();
  181 :  }
  182 : qstr= strform(CREATE_TABLE);
  183 : rt= mysql_query(mysql, qstr);
  184 : if(rt==MYSQL_ERR)
  185 :  {
  186 :     msg= "MySQL table creation error! (DB=" ~ mydb ~ ", TABLE=" ~ db ~ ")";
  187 :     cancel_message(msg);
  188 :     return disconnect();
  189 :  }
  190 : print("2. Creating board configuration file: ", conf, "\n");
  191 : fp= fopen(conf, "w");
  192 : if(fp==FILE_OPEN_ERR)
  193 :  {
  194 :     cancel_message(conf ~ " file write error!");
  195 :     mysql_query(mysql, "drop table " ~ db);
  196 :     return disconnect();
  197 :  }
  198 : board_wdtime= date(1) ~ " " ~ left(time(1),5);
  199 : fprint(fp, strform(CONF_FORM));
  200 : fclose(fp);
  201 : chmod(conf, 0c666);
  202 : print("\n >>> Created ", db, " board.\n");
  203 : print(" >>> http://YOUR-INSTALL-DIR/welboard2/board.wel?db=", db, "\n");
  204 : return disconnect();
File name: welboard2/BDcreate (7,135 bytes) Wesoft Corp. ⓒ 2001 All rights reserved.