코드이그나이터 기반 PHP 오픈소스 게시판 : 씨아이보드

디렉토리 구조 이해하기

  • 해피정
  • 4
  • 8,175
  • 글주소
  • 08-17

씨아이보드의 폴더 구조를 정리했습니다.
오타가 있을수 있습니다.

CIBOARD 2.01
├ _system   
│ 코드이그나이터에서 제공하는 소스파일의 core 파트입니다.
│   ├ core
│   │  └ compat
│   ├ database
│   │  └ drivers
│   │       ├ cubrid
│   │       ├ ibase
│   │       ├ mssql
│   │       ├ mysql
│   │       ├ mysqli
│   │       ├ oci8
│   │       ├ odbc
│   │       ├ pdo
│   │       ├ postgre
│   │       ├ sqlite
│   │       ├ sqlite3
│   │       └ sqlsrv
│   ├ fonts
│   ├ helpers
│   ├ language
│   │  └ english
│   └ libraries
│        ├ Cache
│        │  └ drivers
│        ├ Javascript
│        └ Session
│             └ drivers
├ application
│ 실제 MVC  중 V 를 제외한 M 과 C 및 다른 기타 부분을 이부분에서 담당하고 있습니다.
│ 원래 CodeIgniter 정식 배포판에서는 V 부분인 views 디렉토리도 application 디렉토리에 포함하여 배포하고 있으나,
│ view 부분을 application 디렉토리의 바깥으로 빼어 좀더 구별가게 하였습니다.
│   ├ cache
│   │ 파일 캐시를 사용하시는 경우 그 캐시 파일이 이 디렉토리에 저장되게 됩니다. 캐시파일은 주기적으로 삭제하시면 도움이 됩니다.
│   │  ├ board
│   │  ├ board_group
│   │  ├ board_group_meta
│   │  ├ board_meta
│   │  ├ cmall_item_meta
│   │  ├ faq_group
│   │  ├ latest
│   │  ├ latest_comment
│   │  ├ member_extra_vars
│   │  ├ member_group
│   │  ├ member_meta
│   │  ├ popup
│   │  ├ post_extra_vars
│   │  ├ post_meta
│   │  └ social_meta
│   ├ config
│   │ 환경설정을 담당하는 변수가 들어있는 디렉토리입니다.
│   │ 기본 배포버전에서 cb_admin_menu.php, cb_config.php 의 2개 파일이 추가되었습니다.
│   │ cb_admin_menu.php 는 관리자페이지 메뉴 구조를 저장하는 파일이며,  
│   │ cb_config.php 에서는 메일 발송관련 아이디와 패스워드가 저장되는 곳입니다.
│   ├ controllers
│   │ 실제 각 페이지의 주소부분과 컨트롤러 부분이 매칭이 됩니다. 
│   │ 예를 들면 마이페이지의 메인 주소는 http://mydomain/mypage 인데, 이는 application/Mypage.php 파일 안에 선언된 Mypage 클래스 안의 index 함수를 호출합니다.
│   │ 마이페이지의 포인트 페이지는 http://mydomain/mypage/point 인데, 이는 application/Mypage.php 파일 안에 선언된 Mypage 클래스 안의 ?point 함수를 호출합니다.
│   │ 그러나 항상 모든 주소와 컨트롤러명이 완벽하게 매칭되지는 않습니다.
│   │ application/config/routes.php 가 그런 역할을 담당하는데요.
│   │ routes.php 안에 특별한 몇개의 routes 를 선언하여 자주 사용하는 주소 (게시판목록, 게시판글열람, 글쓰기, 글수정, RSS, 일반문서, FAQ 등)
│   │ 페이지 등에 대하여 페이지 주소를 더 단축하여 깔끔하게 사용할 수 있게 도와주고 있습니다.
│   │  └ admin
│   │       ├ board
│   │       ├ cmall
│   │       ├ config
│   │       ├ deposit
│   │       ├ member
│   │       ├ page
│   │       ├ service
│   │       ├ sms
│   │       └ stat
│   ├ core
│   │ system/core 를 확장한 클래스들의 모음입니다. 
│   ├ events
│   ├ helpers
│   │ helper 는 클래스가 아닌 일반 함수들의 모음입니다.
│   │ CB_ 로 시작하는 helper 들은 기존에 system 디렉토리에서 선언된 helper 들을 확장한 경우인 것이고, 그 외의 helper 들은 새롭게 선언된 함수들의 모음입니다.
│   ├ hooks
│   │ 페이지가 로드될 때마다 공통적으로 실행하고 싶은 로직을 이 디렉토리 안에 선언하고 application/config/hooks.php 에서 선언해주면 됩니다.
│   ├ language
│   │ 언어 패키지가 담겨있습니다.
│   │ 아직 다국어를 정상적으로 지원하지 않습니다.
│   │  ├ english
│   │  └ korean
│   ├ libraries
│   │  ├ Requests
│   │  └ Scheduler
│   ├ logs
│   │ 로그 테이터가 쌓이는 곳입니다. 개발할 때 용이하게 활용할 수 있습니다.
│   │ log 데이터를 쌓이게 설정하실려면, application/config/config.php 안의 $config['log_threshold'] 의 값을 변경해주시면 됩니다.
│   ├ migrations
│   │ 디비 테이블 스키마 변경이 있을 시에 이 디렉토리에 그 변경내용을 저장하여 배포합니다.
│   │ 차후에 디비 테이블 스키마 변경이 있을 경우, 이 디렉토리에 그 내용을 기록해 배포할 예정입니다.
│   ├ models
│   │ controller 와 디비테이블을 연결해주는 다리입니다.
│   │ 즉 디비 쿼리들의 모음이라고 생각하시면 됩니다.
│   │ model 을 설계하는 방법에는 여러가지가 있을 수가 있겠지만, 1테이블=1model 이라는 원칙을 가지고 배포하게 되었습니다.
│   │ 즉, 설치된 테이블수 = 모델수 입니다.
│   └ thirs_party
├ assets
│   │ 공통적으로 사용하는 css, js, images 를 이 디렉토리에 배포합니다.
│   ├ css
│   ├ fonts
│   ├ images
│   └ js
│        ├ bxslider
│        ├ colorpicker
│        └ syntaxhighligter
├ plugin
│   │ 플러그인들의 모음입니다.
│   ├ browscap
│   ├ editor
│   │  ├ ckeditor
│   │  └ smarteditor
│   ├ htmlpurifier
│   ├ jwplayer
│   ├ pg
│   │  ├ inicis
│   │  ├ kcp
│   │  └ lg
│   ├ selfcert
│   │  ├ kcb
│   │  ├ kcp
│   │  └ lg
│   ├ social
│   │  └ libraries
│   │       ├ Facebook 
│   │       ├ google
│   │       └ twitter
│   ├ xmlrpc
│   └ xerolipboard
│ uploads
│   │ 사용자가 업로드한 모든 첨부파일은 이 디렉토리에 저장됩니다.
│   │ 아울러 자동으로 생성된 썸네일 이미지도 이 디렉토리 안에 cache 디렉토리에 저장이 됩니다.
│   ├ emoticon
│   ├ index.hmlt
│   └ noimage.gif
├ views
│   │ 스킨, 테마 등으로 불리우는 디렉토리입니다.
│   │ 즉 실제 사용자에게 보여지는 html 부분들이 들어있는 디렉토리입니다.
│   │ 관리자페이지에서 페이지별로 어떤 스킨을 사용할 것인지 쉽게 선택할 수 있게 하였습니다.
│   ├ _layout
│   │  ├ basic
│   │  │  ├ box
│   │  │  └ css
│   │  ├ cmall_basic
│   │  │  ├ box
│   │  │  └ css
│   │  ├ cmall_basic
│   │  │  ├ box
│   │  │  └ css
│   │  ├ cmall_bootstrap
│   │  │  ├ box
│   │  │  └ css
│   │  ├ cmall_mobile
│   │  │  ├ box
│   │  │  └ css
│   │  └ mobile
│   │       ├ box
│   │       └ css
│   │ 예를 들어 게시판 생성시 레이아웃, 스킨 을 선택할 수 있습니다.
│   │ 배포판에는 _layout 디렉토리 안에 3개의 디렉토리가 있습니다.
│   │ 즉 기본적으로 3개의 레이아웃 중에 하나를 선택하여 사용할 수 있다는 의미입니다.
│   ├ admin
│   │  └ basic
│   │       ├ board
│   │       │   ├ blame
│   │       │   ├ boardgroup
│   │       │   ├ boards
│   │       │   ├ comment
│   │       │   ├ editorimage
│   │       │   ├ filedownload
│   │       │   ├ fileupload
│   │       │   ├ like
│   │       │   ├ linkclick
│   │       │   ├ naversyndilog
│   │       │   ├ post
│   │       │   ├ posthistory
│   │       │   ├ tag
│   │       │   ├ trash
│   │       │   └ trash_comment
│   │       ├ cmall
│   │       │   ├ cmallcart
│   │       │   ├ cmallcategory
│   │       │   ├ cmallconfig
│   │       │   ├ cmallitem
│   │       │   ├ cmallorder
│   │       │   ├ cmallstat
│   │       │   ├ emailform
│   │       │   ├ itemdownload
│   │       │   ├ itemhistory
│   │       │   ├ linkclick
│   │       │   ├ orderlist
│   │       │   ├ pendingbank
│   │       │   ├ qna
│   │       │   ├ review
│   │       │   └ wishlist
│   │       ├ config
│   │       │   ├ browscpupdate
│   │       │   ├ cbonfigs
│   │       │   ├ cbversion
│   │       │   ├ cleanlog
│   │       │   ├ dbupgrade
│   │       │   ├ emailform
│   │       │   ├ layoutskin
│   │       │   ├ memberconfig
│   │       │   ├ optimize
│   │       │   ├ phpinfo
│   │       │   ├ preview
│   │       │   ├ rssconfig
│   │       │   ├ scheduler
│   │       │   └ testmail
│   │       ├ css
│   │       ├ deposit
│   │       │   ├ depositconfig
│   │       │   ├ depositlist
│   │       │   ├ depositstat
│   │       │   ├ emailform
│   │       │   └ pendingbank
│   │       ├ images
│   │       ├ member
│   │       │   ├ dormant
│   │       │   ├ loginlog
│   │       │   ├ memberfollow
│   │       │   ├ membergroup
│   │       │   ├ memberlevelhistory
│   │       │   ├ members
│   │       │   ├ nickname
│   │       │   └ points
│   │       ├ page
│   │       │   ├ banner
│   │       │   ├ bannerclick
│   │       │   ├ document
│   │       │   ├ faq
│   │       │   ├ faqgroup
│   │       │   ├ pagemenu
│   │       │   └ popup
│   │       ├ service
│   │       │   ├ attendanceconfig
│   │       │   ├ levelupconfig
│   │       │   ├ pointrankingconfig
│   │       │   └ pollconfig
│   │       ├ sms
│   │       │   ├ memberupdate
│   │       │   ├ phoegroup
│   │       │   ├ phonelist
│   │       │   ├ smsconfig
│   │       │   ├ smsfavorite
│   │       │   ├ smshistory
│   │       │   ├ smshistorynum
│   │       │   └ smssend
│   │       └ stat
│   │             ├ boardcounter
│   │             ├ currentvisitor
│   │             ├ registercounter
│   │             ├ registerlog
│   │             ├ searchkeyword
│   │             └ statcounter
│   ├ board
│   │ 게시판 스킨 파일 입니다.
│   │ views/board 안에 3개의 디렉토리가 있습니다.
│   │ 즉 3개의 게시판 스킨 중에 선택하여 사용할 수 있다는 의미입니다.
│   │ 스킨은 자유롭게 추가하여 사용 및 배포하실 수가 있습니다.
│   │  ├ basic
│   │  │  ├ css
│   │  │  └ images
│   │  ├ bootstrap
│   │  │  ├ css
│   │  │  └ images
│   │  └ mobile
│   │       ├ css
│   │       └ images
│   ├ cmall
│   │  ├ basic
│   │  │  ├ css
│   │  │  └ images
│   │  ├ bootstrap
│   │  │  ├ css
│   │  │  └ images
│   │  └ mobile
│   │       ├ css
│   │       └ images
│   ├ currentvisitor
│   │  ├ basic
│   │  ├ bootstrap
│   │  └ mobile
│   ├ deposit
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ document
│   │  ├ basic
│   │  ├ bootstrap
│   │  └ mobile
│   ├ emailform
│   │  └ cmall
│   ├ errors
│   │  ├ cli
│   │  └ html
│   ├ faq
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ findaccount
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ formmail
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ group
│   │  ├ basic
│   │  ├ bootstrap
│   │  └ mobile
│   ├ helptool
│   │  ├ basic
│   │  └ bootstrap
│   ├ install
│   │  ├ css
│   │  └ images
│   ├ latest
│   ├ levelup
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ login
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ main
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ mypage
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ note
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ notification
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ paymentlib
│   │  ├ images
│   │  ├ inicis
│   │  ├ kcp
│   │  └ lg
│   ├ pointranking
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ poll
│   │  ├ basic
│   │  ├ bootstrap
│   │  └ mobile
│   ├ popup
│   │  └ basic
│   │       └ css
│   ├ profile
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ register
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ search
│   │  ├ basic
│   │  │  └ css
│   │  ├ bootstrap
│   │  │  └ css
│   │  └ mobile
│   │       └ css
│   ├ selfcert
│   │  ├ kcb
│   │  ├ kcp
│   │  └ lg
│   └ tag
│        ├ basic
│        │  └ css
│        ├ bootstrap
│        │  └ css
│        └ mobile
│             └ css
├ CIBOARD_LICENSE
├ composer.json
├ contributing.md
├ index.php
├ pax_global_header
├ readme.rst
└ robots.txt



참고자료
http://www.ciboard.co.kr/tiptech/p/28