제가 제작한 게시판에서 광범위 하게 사용되는 내용이여서 hooks를 이용하는게 좋겠다는 판단에서..
아래와 같이 제작했습니다.
controllers에서 $this->admin_view_article 나 $this->id 형태로 값을 불러 오는데 오류가 있습니다.
처음 hooks를 사용하다보니 어렵게 느껴 지네요... 잘못된 부분 지적 부탁 드립니다.
오류 내용
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Board::$admin_view_article
Filename: controllers/board.php
Line Number: 40
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Board::$id
Filename: controllers/board.php
Line Number: 41
config/hooks.php
$hook['post_controller_constructor'] = array(
'class' => '_Common',
'function' => 'index',
'filename' => 'Common.php',
'filepath' => 'hooks'
);
hooks/Common.php
<?
class _Common {
function index() {
$CI =& get_instance();
$CI->load->model('board_model');
$CI->load->helper(array('form', 'url'));
$CI->load->library('tank_auth');
$CI->load->helper('alert');
$CI->load->database();
//게시판 세그먼트 값 상수 선언(전역적 사용)
define('BOARD_NUM', $this->seg_value('num'));
define('BOARD_ID', $this->seg_value('id'));
define('BOARD_PAGE', $this->seg_value('page'));
$this->id = BOARD_ID;//get id값
$this->page = BOARD_PAGE;//get page값
$this->num = BOARD_NUM;//get num값
if(!$this->page)$this->page=1;
//관리자 테이블값 가져와서 상수선언(전역적 사용)
$id = $this->id;
$CI->db->select("*");
$CI->db->where('id', $id);
$query = $CI->db->get('board_admin');
$row = $query->row_array();{
define('ADMIN_ID', $row['id']);
define('ADMIN_BOARD_NAME', $row['board_name']);
define('ADMIN_BOARD_SKIN', $row['board_skin']);
define('ADMIN_READ_LEVEL', $row['read_level']);
define('ADMIN_WRITE_LEVEL', $row['write_level']);
define('ADMIN_REPLY_LEVEL', $row['reply_level']);
define('ADMIN_COMMENT_LEVEL', $row['comment_level']);
define('ADMIN_VIEW_ARTICLE', $row['view_article']);
define('ADMIN_WIDTH', $row['width']);
define('ADMIN_TITLE', $row['title']);
define('ADMIN_PHOTO_COLS', $row['photo_cols']);
define('ADMIN_PHOTO_HEIGHT', $row['photo_height']);
$this->admin_id = ADMIN_ID;//테이블명
$this->admin_board_name = ADMIN_BOARD_NAME;//게시판명
$this->admin_board_skin = ADMIN_BOARD_SKIN;//게시판 스킨명
$this->admin_read_level = ADMIN_READ_LEVEL;//
$this->admin_write_level = ADMIN_WRITE_LEVEL;//
$this->admin_reply_level = ADMIN_REPLY_LEVEL;//
$this->admin_comment_level = ADMIN_COMMENT_LEVEL;//
$this->admin_view_article = ADMIN_VIEW_ARTICLE;//
$this->admin_width = ADMIN_WIDTH;//게시판 폭
$this->admin_title = ADMIN_TITLE;//게시판 타이틀
$this->admin_photo_cols = ADMIN_PHOTO_COLS;//리스트 이미지 1줄갯수
$this->admin_photo_height = ADMIN_PHOTO_HEIGHT;//리스트 이미지 높이
}
// 세그먼트값 찾기 (id/test 일때 id=test)
function seg_value($key,$segment=NULL)
{
if($segment == NULL) {
$segment = $this->uri->segment_array();
}
$this->seg_exp = array_values($segment);
$arr_key = array_keys($this->seg_exp, $key);
if($arr_key){
$arr_val = $arr_key[0] + 1;
} else {
$arr_val = 200;
}
if(count($this->seg_exp) > $arr_val){
return $this->seg_exp[$arr_val];
}
}
//세그먼트 위치값 (id/test 일때 test의 세그먼트 위치값)
function seg_index($key,$segment=NULL)
{
if($segment == NULL) {
$segment = $this->uri->segment_array();
}
$this->seg_exp = array_values($segment);
$arr_key = array_keys($this->seg_exp, $key);
$tot =count($arr_key);
if($tot > 0) {
$arr_val = $arr_key[0] + 2;
return $arr_val;
} else {
return "";
}
}
}
}
?>