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

[씨아이보드] Event Trigger 기능 추가

안녕하세요

 

이번 씨아이보드에 Event Trigger 기능이 추가되었습니다. controller 의 파일들의 대부분에 필요하다고 생각되는 위치에 Trigger 기능을 추가하였습니다.

 

따라서 앞으로 Trigger 기능을 활용하면 배포되는 원본 controller 를 변경하지 않고 원하는 커스터마이징 함수를 추가할 수 있습니다.

 

https://github.com/nathanmac/CodeIgniter-Events 를 활용하였습니다.

 

사용방법을 설명하면, 예를 들어 contoller/Main.php 파일을 보시면 

// 이벤트 라이브러리를 로딩합니다
 
$eventname = 'event_main_index';
 
$this->load->event($eventname);
 
$view = array();
 
$view['view'] = array();
 
// 이벤트가 존재하면 실행합니다
$view['view']['event']['before'] = Events::trigger('before', $eventname);
 

부분이 있습니다. 이를 해석하자면, event_main_index 라는 이벤트를 로드하고, 그 안에 before 라는 이름으로 등록된 함수들을 순차적으로 실행합니다.

 

application/event/Event_main_index.php 파일을 생성하고 아래 내용을 입력합니다

 
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
class Event_main_index extends CI_Controller
{
 
	private $CI;
 
	function __construct()
	{
		$this->CI = & get_instance();
		Events::register('before', array($this, 'alert'));
		Events::register('before', array($this, 'alert2'));
	}
	
	public function alert() {
		
		$result = array();
 
		echo '<script>alert("이벤트 실행");</script>';
 
		$result['result'] = 'alert 함수를 통해 담겨진 내용입니다';
 
		return $result;
	}
 
	public function alert2() {
		
		$result = array();
 
		echo '<script>alert("이벤트 실행2");</script>';
 
		$result['result'] = 'alert2 함수를 통해 담겨진 내용입니다';
 
		return $result;
	}
}
 

위와 같이 저장한 후에 홈페이지를 브라우저에서 실행하여 보면, 2번의 alert 가 뜨는 것을 확인하실 수 있습니다. 반환형은 반드시 array 형으로 return 하셔야 합니다. return 할 내용이 없다 할지라도 빈 array 라도 return 해주시면 됩니다.

 

감사합니다. 

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오톡으로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

팁&테크

번호 제목 글쓴이 날짜 조회수
공지 프리미엄 버전의 판매는 중단 되었습니다. +13 icon 관리자 08-09 5,416
공지 휴대폰본인인증, 아이핀본인인증 기능 런칭 icon 관리자 04-08 6,683
공지 씨아이보드 테이블구조 icon 관리자 03-22 7,500
공지 PHP 7 지원 +3 icon 관리자 02-01 6,147
공지 씨아이보드 매뉴얼 +4 icon 어드민 08-31 7,797
공지 CI 3.0 한글 매뉴얼 +3 icon 어드민 08-24 7,020
27 씨아이보드 초보팁] 모든 페이지에서 로그인여부 검사하기 할때 주의 할점. 발자취 10-03 866
26 씨아이보드 게시판 추가필드로 검색하기( 커스터 마이징 ) 쎈돌 07-18 1,504
25 씨아이보드 네이버 블로그 자동포스팅 기능 런칭 +1 icon 관리자 04-01 3,467
24 씨아이보드 bit.ly 짧은 주소 적용하기 icon 관리자 02-19 2,765
23 씨아이보드 휴면계정 관리 기능 런칭 icon 관리자 02-06 1,740
22 씨아이보드 사이트맵 기능 런칭 icon 관리자 02-03 1,439
21 씨아이보드 스케쥴러 기능 런칭 icon 관리자 02-01 1,641
20 씨아이보드 프로파일링 기능 런칭 icon 관리자 01-26 1,223
19 씨아이보드 베이직 -> 프리미엄 업그레이드 방법 icon 관리자 12-24 1,521
18 코드이그나이터 mysqli 와 pdo 설정 방법 +1 icon 관리자 11-12 2,332
17 씨아이보드 PHP 5.5.x preg_replace() : The /e modifi… +11 매너달팽이 11-06 1,955
16 씨아이보드 CI nginx rewrite rules +1 철수킹 11-05 1,828
15 씨아이보드 Event Trigger 기능 추가 +4 icon 관리자 11-03 2,308
14 씨아이보드 배너관리 기능 +5 icon 관리자 10-05 1,609
13 씨아이보드 구글 래캡챠 (Google reCaptcha) 사용방법 +1 icon 관리자 09-21 3,979
12 씨아이보드 소셜로그인 - 카카오 연동방법 +1 icon 관리자 09-14 3,304
11 씨아이보드 소셜로그인 - 네이버 연동방법 icon 관리자 09-14 2,650
10 씨아이보드 소셜로그인 - 구글 연동방법 icon 관리자 09-14 4,625
9 씨아이보드 소셜로그인 - 트위터 연동방법 icon 관리자 09-14 2,482
8 씨아이보드 소셜로그인 - 페이스북 연동방법 +1 icon 관리자 09-14 4,347