코드이그나이터 기반 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
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오톡으로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

팁&테크

번호 제목 글쓴이 날짜 조회수
공지 프리미엄 버전을 공개합니다. +15 icon 관리자 06-21 5,023
37 씨아이보드 날짜를 연도까지 나오게 하기.. 마젠토 9일전 67
36 씨아이보드 디렉토리 구조 이해하기 +2 icon 해피정 08-17 834
35 씨아이보드 utf8mb4 로 설치하기 (2017-08-11 수정) icon 해피정 08-11 394
34 씨아이보드 eclipse (neo, oxygen) 에서 CI, CIBOARD au… 하마쿵 07-25 450
33 씨아이보드 강제로 www 없애고 https로 이동하게 하기 +1 싸나이 07-17 534
32 씨아이보드 The action you have requested is not all… +1 싸나이 07-17 350
31 씨아이보드 CIBOARD 설치화면이 뜨지 않고 백지만 뜰 경우 해결방법 +1 싸나이 07-17 329
30 씨아이보드 베이직 1.6.7 이하 버전에서 씨아이보드 2.0 으로 업그레이드 방법 icon 관리자 06-21 639
29 씨아이보드 초보팁] 모든 페이지에서 로그인여부 검사하기 할때 주의 할점. 발자취 10-03 2,832
28 씨아이보드 게시판 추가필드로 검색하기( 커스터 마이징 ) 쎈돌 07-18 3,871
27 씨아이보드 휴대폰본인인증, 아이핀본인인증 기능 런칭 icon 관리자 04-08 13,080
26 씨아이보드 네이버 블로그 자동포스팅 기능 런칭 +1 icon 관리자 04-01 6,223
25 씨아이보드 씨아이보드 테이블구조 icon 관리자 03-22 14,077
24 씨아이보드 bit.ly 짧은 주소 적용하기 icon 관리자 02-19 4,974
23 씨아이보드 휴면계정 관리 기능 런칭 icon 관리자 02-06 3,172
22 씨아이보드 사이트맵 기능 런칭 icon 관리자 02-03 2,758
21 씨아이보드 스케쥴러 기능 런칭 icon 관리자 02-01 2,874
20 씨아이보드 프로파일링 기능 런칭 icon 관리자 01-26 2,294
19 씨아이보드 베이직 -> 프리미엄 업그레이드 방법 icon 관리자 12-24 2,663
18 코드이그나이터 mysqli 와 pdo 설정 방법 +1 icon 관리자 11-12 3,698