처음시작 util_iboard.php 설명서         Back
  util_iboard.php 는 테크노트PHP 프로그램을 사용하기 위해 반드시 필요한 파일은 아닙니다만,
  테크노트PHP 를 활용한 홈페이지 제작시 상당히 유용하게 사용할 수 있는 파일이기에 별도의 설명서를 작성했습니다.
  본 설명서를 통해 util_iboard.php 를 어느정도 이해하게 되면 여러 가지 용도확장,응용 방법이 스스로 떠오를 것입니다.
  소스 내에도 많은 주석문이 포함되어 있지만 그것은 코드블록에 대한 지엽적인 설명이고 본 설명서는util_iboard.php 의
  전체적인 이해를 위한 설명서 입니다.   util_iboard.php 파일은 사용할 필요가 없다면 삭제해 버려도 되고,
  더 필요하다면 파일명을 변경해서 여러개 복사해서 사용해도 됩니다.


기본기능
  *  메인 홈페이지 안에 공지사항, 또는 특정 게시판을 작은 형태(이하 'i보드' 로 호칭함)로 재구성해서 삽입시킬 수 있다.
  *  테크노트에서 생성한 여러 보드들을 한 페이지 안에서 체계적으로 정리해 보여 줄 수 있다.
  *  회원로그인 여부에 따라 상황에 맞게 '로그인폼'이 출력되거나 '로그아웃' 버튼이 출력되게 할 수 있다.
  *  여러 보드를 통합 검색할 수 있다.
  *  비정형화 된 상태이므로 내장된 코드를 적절히 이용하면 다른 기능으로 용도확장 시킬 수 있다.


소스 전체구성 살펴보기
   소스를 열어 보면 다음과 같이 여러 블록으로 구분되어 있는 것을 볼 수 있다.(번호 표시는 실제 소스에 있는 번호임)
util_iboard.php   소스 설 명
  include_once './lib.php'; 메인 설정 및 library 파일을 인클루드 한다.
[1] i보드출력형태 기본값 설정

  $Table_Default_set=array(
    TABLE_open_function => "TABLE_open",  
     ....................
     ....................
  );
[1] i보드출력형태 기본값 설정
i보드의 기본적인 출력값(출력형태,속성)을 설정한다.
여러개의 설정옵션 값이 배열변수로 저장된다.
설정 항목이 더 필요한 경우에는 배열요소를 추가해서 지정하면 된다.
각 설정옵션에 대한 설명은 아래 단원에서 설명함.

[2] i보드출력형태 설정셋트 생성

  // ▨ 설정SET 1 - 공지사항 형식의 단순형태
  $Notice_style_set=array(
    ............
  );

  // ▨ 설정SET 2 - 일반적인 글목록 형태
  $Public_style_set=array(
    .............
  );

[2] i보드출력형태 설정셋트 생성
실제 i보드 출력에 적용될 설정옵션을 '설정셋트' 화 한다.
설정셋트는 여러 i보드에서 공동으로 사용할 수 있게 된다.
여럿의 여행객(i보드)을 위해 다양한 형태의 교통수단(설정셋트)을
미리 준비해 놓는 것과 같다.

[1] 항목의 설정과 다르게 설정하고자 하는 옵션만 지정하면 된다.
지정하지 않은 옵션은 [1] 에서 지정한 값이 자동 적용된다.

설정셋트는 원하는 만큼 추가로 작성해 넣을 수 있다.
[3] html 출력 시작

  <HTML>
    ..............

  * [보드출력 지정예: 단순형태]
   <? iBoard_Print_Here('freeboard',$Notice_style_set); ?>

    * [출력 지정예: 로그인/아웃 폼]
    <?LoginForm_Print_Here('mymember');?>

    * 통합검색폼 작성예
     <form>.......</form>

    * [보드 출력 지정예: 일반 , 앨범 등 ....]
   <? iBoard_Print_Here('freeboard',$Public_style_set); ?>

    * [카운타 정보 출력 지정예]
      <? board_count_print('freeboard'); ?>
    ..............

  </HTML>

[3] html 출력 시작
실제 웹부라우저 화면에 출력될 내용을 작성한다.
i보드, 회원로그인폼,카운타정보 등을 삽입하고자 하는 위치에는
해당 함수를 삽입해 주면 된다.

* 보드출력 지정예: 단순형태 <? iBoard_Print_Here('freeboard',$Notice_style_set); ?>
  $Notice_style_set 설정셋트를 적용해서 'freeboard' 를 출력한다.
  $Notice_style_set 는 "[2] i보드출력형태 설정셋트생성" 에서
  미리 만들어 놓은 설정값이다.
  보드명을 'freeboard/databoard' 와 같이 여러개 지정하면 여러 보드가
  1개 목록으로 합쳐져 출력된다.(필드구성이 동일한 보드끼리만 가능)

* 출력지정 예 로그인/아웃 폼: <?LoginForm_Print_Here('mymember');?>
   mymember 라는 회원등록관리 보드에 연동되는 회원등록폼이 출력된다.
   로그인폼 태그는 "[9] 로그인/ 로그아웃 폼 태그" 블록에 들어 있다.

* 통합검색폼 출력: <form>.......</form>통함검색폼을 삽입한다.
  이 검색도구는 본 소스 내에 출력 지정된 i보드들을 통합 검색 출력한다.

* 보드 출력 지정예: 일반 , 앨범 등: <? iBoard_Print_Here('freeboard',$Public_style_set); ?>
  $Public_style_set 설정셋트를 적용해서 'freeboard' 를 출력한다.

* 카운타 정보 출력예: <? board_count_print('freeboard'); ?>
  'freeboard' 의 카운타 정보를 출력한다. 출력될 태그는
  "[8] 보드 카운타 정보 출력" 블록에 들어 있다.
[4] 글목록 테이블 상단 출력

  function TABLE_head(){ .........
[4] 글목록 테이블 상단 출력
  i보드출력 테이블 상단에 보드명,글등록수,방문자수 등을 출력하는 태그부분이다.
  이것 대신 다른 출력형태의 function 을 추가 작성해 넣어 주고
  "[2] i보드출력형태 설정셋트 생성" 에서 해당 function 을 지정해 줄 수 있다.
[5] 글목록 테이블 시작

  function TABLE_open(){...........
[5] 글목록 테이블 시작
  i보드출력 테이블의 <table ..> 태그부분이다.
  이것 대신 다른 출력형태의 function 을 추가 작성해 넣어 주고
  "[2] i보드출력형태 설정셋트 생성" 에서 해당 function 을 지정해 줄 수 있다.
[6] 글목록 테이블 종료

  function TABLE_close(){..........
[6] 글목록 테이블 종료
  i보드출력 테이블의 </table> 태그부분이다.
  다른 출력형태의 function 을 추가 작성해 넣어 주고
  "[2] i보드출력형태 설정셋트 생성" 에서 해당 function 을 지정해 줄 수 있다.
[7] <tr> 글목록 각 라인에 적용

  function TABLE_tr(){......
[7] <tr> 글목록 각 라인에 적용
  i보드출력 테이블의 각 행에 해당되는 <tr> 태그 부분이다.
  이것 대신 다른 출력형태의 function 을 추가 작성해 넣어 주고
  "[2] i보드출력형태 설정셋트 생성" 에서 해당 function 을 지정해 줄 수 있다.
[8] 보드 카운타 정보 출력

  function board_count_print($board_name){......
[8] 보드 카운타 정보 출력
  보드카운타 정보를 출력하는 태그이다.
[9] 로그인/ 로그아웃 폼 태그

  function LoginForm_Print_Here($mboard_name){....
[9] 로그인/ 로그아웃 폼 태그
  회원 로그인/로그아웃 폼 출력태그 이다.
[10] 글목록 <td>셀 출력 function()

  글번호
  function TD_no(){.........

  글제목
  function TD_subject(){........

  작성자 이름
  function TD_name(){............

  ........... 기타 function ....
[10] 글목록 <TD>셀 출력
  i보드출력 테이블의 각 셀을 구성하는 <td>..</td><td>..</td> 부분이다.
  "[2] i보드출력형태 설정셋트 생성 " 항목의
  TD_function_set => ""  옵션의 설정에 의해 이 <td>..</td> 들이
   여럿 붙여져서 하나의 행이 구성된다.

  기본적으로 들어 있는것 외에 새로 function 을 작성해 넣어 주고
  해당 function 이름을 출력 설정에서 지정할 수 있다.

 
  function setPreparatin(){.......
  function get_Board_Count(){...........

[11] 실행function
  실행 부분이다. 이 부분은 수정하지 않는 것이 좋다.
   



요약 분석
  위 소스구성 표에서 알 수 있듯이 util_iboard.php 가 실제 화면에 출력하는 것은 소스내의 [3] html 출력.. 부분이고 그곳에 삽입할
  아이템 요소(i보드,로그인폼등..)들을 만들어 내기 위해 그 외의 코드블록들이 존재한다 라고 쉽게 이해하면 된다.

   [1] i보드출력형태 기본값 설정 : i보드 출력을 위한 기본값을 설정하는 블록이다.
   [2] i보드출력형태 설정셋트 생성 : 실제 i보드출력시 사용할 설정셋트를 작성하는 블록이다. 기본값과 다른 설정옵션을 지정한다.
   [3] html 출력 : 화면에 출력될 html 태그이다.
      * i보드 삽입: <? iBoard_Print_Here('freeboard',$Notice_style_set); ?> 식으로 출력될 '보드명'과 [2]에서 작성한 '설정셋트'를 출력함수에 넣는다.
          만약 2개 이상의 보드를 1개의 목록으로 믹싱한 형태로 출력시키려면
          <? iBoard_Print_Here('freeboard/qaboard/databoard',$Album_style_set); ?> 식으로 / 로 구분해서 보드명을 여러개 넣으면 된다.
      * 회원로그인폼 삽입 :<?LoginForm_Print_Here('mymember');?> 식으로 회원등록관리 보드명을 출력함수에 넣는다.
      * 통합검색폼 삽입 : 직접 <form >...</form> 태그를 넣는다.
      * 보드 카운타정보 삽입 : <? board_count_print('freeboard'); ?> 식으로 보드명을 출력함수에 넣는다.
   [4] 글목록 테이블 상단 출력 : i보드 상단에 방문자수,글등록수 등의 정보를 출력하는 function
   [5] 글목록 테이블 시작 : i보드 의 <table  .... > 출력 function
   [6] 글목록 테이블 종료 : i보드 의 </table> 출력 function
   [7] <tr> 글목록 각 라인에 적용 : i보드 의 행에 적용되는 <tr..> 출력 function
   [8] 보드 카운타 정보 출력 : 보드의 카운타정보를 출력 function
   [9] 로그인/ 로그아웃 폼 태그 : 회원로그인/아웃 폼을 출력 function
   [10] 글목록 <td>셀 출력 function() : i보드의 각 행을 구성하는 <td>..</td><td>..</td> 출력 function
   [11] 실행코드 function


소스수정, 편집 작업순서
   1, 전체화면 구성 : 소스내의 html 부분을 편집하여 전체적인 레이아웃을 잡는다. util_iboard.php 소스에서 직접 작업하거나
     별도의 .html 파일로 작업후 태그를 복사-붙여 넣기 해도 된다. 자바스크립트 함수 부분은 원래의 것을 그대로 유지해야 한다.
   2, 기본값 설정 : '[1] i보드출력형태 기본값 설정' 에서 i보드의 기본값을 설정한다.
   3, 설정셋트 작성 : '[2] i보드출력형태 설정셋트 생성' 에서 원하는 출력형태의 설정셋트를 작성한다.
   4, i보드 함수 삽입 : html 부분에 i보드 출력 함수를 삽입한다. 회원등록폼, 검색폼, 등의 필요한 함수도 삽입한다.
   5, 출력확인 : 부라우저에로 출력 상태를 확인하며 추가적인 작업을 완료한다.



i보드 설정 옵션  
    소스내의 [1] i보드출력형태 기본값 설정 , [2] i보드출력형태 설정셋트 생성 에서 사용되는 각 설정옵션에 대한 설명이다.
      :  새로운 function 을 작성해 넣고 해당 function 이름으로 대체해 지정할 수 있다는 표시임.
      :  'none' 또는 공백(스페이스 없이)을 지정해서 해당 출력을 없앨 수 있다는 표시임.

TABLE_open_function    ■
i보드 테이블 태그의 시작인 <table ....> 태그를 출력할 function 의 이름을 지정한다.
기본적으로는 'TABLE_open' 으로 되어 있는데 다른 function 을 추가로 작성해 넣고 그것을 지정해도 된다.

TABLE_head_function    
i보드 테이블 상단에 '보드명','글등록 개수','방문자수' 등의 정보를 출력할 function 이름을 지정한다.
기본적으로는 'TABLE_head' 으로 되어 있는데 다른 function 을 추가로 작성해 넣고 그것을 지정해도 된다.

TR_function  
각 행의 <tr> 태그를 출력할 function 이름을 지정한다.

TD_function_set 
각 행의 <td>..</td> 구성요소 function 이름들을 지정한다.
소스내의 [10] 글목록 <td>셀 출력 function() 블록을 보면 20개 이상의 여러 가지의 출력셀이 준비되어 있는데
그중에서 출력하고자 하는 function 의 이름을 슬래쉬(/) 로 구분해서 죽 붙여 넣으면 된다.
또 새로운 funnction 을 추가작성해 넣어 주고 그 function 이름을 지정해도 된다.

TABLE_close_function 
테이블 태그 끝인 </table> 태그를 출력할 function 이름을 지정한다.

table_width 
테이블 너비를 지정한다. 숫자로만 지정하면 픽셀단위 지정이 되고 숫자에 % 기호를 붙이면 비율로 지정된다.

subject_width  
글제목 출력칸 (<td>제목</td>) 의 너비를 지정한다.

subject_length  
글제목 문자열의 출력길이를 지정한다.

subject_icon
글제목 앞에 출력될 아이콘의 URL 을 지정한다. "http://myhome.net/img/xxicon.gif" 식으로 직접 url 주소 대입하면 된다.

index_many
목록 출력 개수를 지정한다.

cols_repeat
행의 반복출력 횟수를 지정한다.
만약,  행 설정을 [제목/이름/날짜] 로 출력되도록 설정한 상태에서
이 'cols_repeat' 를 3 으로 지정했다면 출력결과는 [제목/이름/날짜/제목/이름/날짜/제목/이름/날짜] 가 된다.
그림앨범 형태의 i보드 구성시 그림을 적절히 배치할 때에도 유용하다.

new_icon_time 
글등록후 얼마 동안 new 아이콘이 붙게 할 것인가를 시간단위로 지정한다.

line_color
행의 가로선 색상을 지정한다.

notice_print
관리자에 의해 '공지글'로 지정된 글이 있다면 해당글을 출력 목록에 포함 시킬것인가를 지정한다.
포함 시키려면 1을 대입한다.

album_click_after
그림앨범 형식과 이미지가 출력되도록 지정한 경우 이미지를 클릭했을때의 출력동작을 지정한다.
1 : 팝업창으로 원본그림을 출력한다.
2 : 팝업창으로 본문글을 출력한다.(글목록 제외)
3 : 현재창으로 본문글을 출력한다.(글목록 포함)
4 : 아무런 동작이 없게 한다.

notice_print
관리자에 의해 '공지글'로 지정된 글이 있다면 해당글을 출력 목록에 포함 시킬것인가를 지정한다.
포함 시키려면 1을 대입한다.

index_reverse
목록 출력순서를 거꾸로 하려면 1을 대입한다.

category
특정 카테고리로 지정된 글만 출력되게 하려면 해당 카테고리 번호를 지정한다.
카테고리 번호는 보드설정페이지의 [4-14] 에서 지정한 카테고리 옵션을 지정순서에 의해 1부터 계산하면 된다.
즉 보드설정 [4-14] 에 '일반/질문/잡담/건의' 라고 카테고리를 지정해 놓았다면
'잡담' 에 해당되는 카테고리 번호는 3 이다.

config
글제목을 클릭했을때 본문출력이 되는데 이때의 본문 링크URL 에 멀티설정번호를 포함시키려면 멀티설정 번호를 지정한다.
멀티설정의 개념에 대해서는 보드설정페이지 상단의 [멀티설정] 을 참조.

mysql_where
DB 에서 보드 글목록을 select 할 때 where 절에 어떤 조건을 주고자 한다면 그 조건을 여기에 대입하면 된다.
예를 들어
* 글 조횟수가 100 이상인 글만 출력되도록 조건을 주려면 " hit>99" 을 대입한다.
* 비공개 지정된 글은 출력에서 제외 시키려면 " secret != 1 "  을 대입한다.
* 회원사진이 등록된 글만 출력시키려면 " mphoto != '' " 를 대입한다.
여러 조건을 복합적으로 지정할 때는 'and' 로 연결 시키면 된다.
'hit', 'secret' ,'name' ... 등과 같은 key 는 매뉴얼->"14 . 활용 변수/함수" 의 글목록 출력변수의 key 을 참조.
또는 종합관리->DB관리 에서 보드 글목록 테이블의 컬럼명 참조.

mysql_orderby
DB 에서 보드 글목록을 select 할 때 정렬조건 order by 절에 조건을 주고자 한다면 정렬기준 컬럼명을 여기에 대입하면 된다.
예를 들어 조회수 순으로 정렬시키려면 " hit " 를 대입하면 되고, 댓글수 순으로 정렬시키려면 " comment " 를 대입하면 된다.
무작위로 랜덤 정렬 하려면 " rand() " 를 지정하면 된다.
'hit', 'comment' ... 등과 같은 key 는 매뉴얼->"14 . 활용 변수/함수" 의 글목록 출력변수의 key 을 참조.
또는 종합관리->DB관리 에서 보드 글목록 테이블의 컬럼명 참조.

cache_sec
출력 속도를 향상시킬 수 있는 옵션이다. 0보다 큰 수를 지정하면 지정한 초단위로 캐쉬가 생성-적용된다.
글 목록수, 접속자가 수에 비례하여 출력속도는 느려 지는데 캐쉬적용은 이 문제를 해결하기 위한 방법이다.
캐쉬를 지정하면 출력때마다 매번 글목록을 새로 추출하는것이 아니라
캐쉬적용 시간(초) 경과 이전에 동일한 출력요청이 들어오면 이전에
이미 추출-조합해 놓은 글목록 출력 html 을 다시 가져와서 재 출력시킨다.
보드에서 글등록/수정/삭제 동작이 있으면 캐쉬는 바로 초기화 된다.
글 목록 수가 많고 접속자수도 많아서 속도가 느린 보드에 필요한 기능이다.


   옵션을 사용자가 새로 추가 하려면 ?
    새로은 옵션을 사용자가 직접 추가 하려면 소스내의 [1] i보드출력형태 기본값 설정 에 기본적으로 들어 있는
    옵션지정 형태를 참조해서 그와 동일한 형태로 배열을 추가하면 된다. 즉,
    abcde_option  => "value",   형태로 새 옵션을 추가 추가하면 된다. 이 경우 이 옵션지정 값을 가지는 변수는
    $Print_option[abcde_option] 이다. 이 변수를 소스내의 각 function 에서 global 변수로서 사용할 수 있다.



  기 타

  통합검색폼
     통합 검색폼 태그는 util_iboard.php 원본 소스에 들어 있는 것을 사용하거나 form_search.html 의 것을 사용해도 된다.
     검색결과 출력페이지를 별도로 작성하려면 원본 util_iboard.php 파일을 다른 파일명으로 복사-저장 해서 작성하면 되고
     검색폼 태그 <form ....  action="util_iboard.php"> 에서 action="" 에 대입된 경로도 새로 작성한 파일경로로 지정하면 된다.


  보드스킨 내에 util_iboard.php 페이지를 삽입하려면?
     'myboard' 라는 보드가 있고 이 보드는 홈페이지 구성형태의 'abcde'  라는 보드스킨을 사용하고 있다고 하자.
     이 경우 'myboard' 보드를 출력하면 'abcde' 스킨의 구성틀 안에 'myboard'  보드가 삽입된 형태로 출력되는데
     만약, 보드가 삽입되는 자리에 util_iboard.php 가 삽입된 형태로 출력 시키려면,
     util_iboard.php 파일을 ....technote/other_insert/  디렉토리 내에 넣어 주고
      접속URL 을 board.php?board=myboard&&command=other_insert&exe=util_iboard  으로 접속(또는 링크) 하면 된다.
     (파일명이 util_iboard4.php 라면 board.php?board=myboard&&command=other_insert&exe=util_iboard4  식으로 접속)
     또는 다음과 같이 스킨디렉토리내에 직접 넣을 수도 있다
      util_iboard.php 파일을 스킨 디렉토리  ....technote/skin_board/abcde/  내에 넣어 주고
     접속URL 을 board.php?board=myboard&&command=skin_insert&exe=util_iboard 로 접속(또는 링크) 하면 된다.    
      자세한 설명은 10 . 스킨 제작 페이지를 참조.


  외부의 다른 php 파일내에 util_iboard.php 를 삽입하려면 ?
      삽입하고자 하는 위치에 <? include_once "./technote6/util_iboard.php"; ?>
      과 같은 식으로 include 코드를 작성해 넣어 주면 된다.



 

                 Back


          copyrightⓒ : TECHNOTE INC , www.technote.co.kr