8. 테이블 생성 코드 추가
• plugin.php 수정
• createTables() 메소드 추가 (Code1-1)
• install()에서 createTables() 실행 추가 (Code1-2)
• checkUpdated() 테이블이 있는지 체크하는 코드
추가 (Code1-3)
• update()에 createTables() 실행 추가 (Code1-4)
8
9. 플러그인 설치
• 플러그인 리스트에서 활성화
• 처음 활성화할 때 플러그인 install() 동작
• 관리자에서 설치에 대한 UI를 별도로 제공하지 않
음
• 플러그인 처음 활성화 할 때 install(), update() 코
드가 모두 동작됨
9
13. 어디를 가로챌까?
• UserController.php store() 에 글 등록 코드 확인
• Handler::add() 로 글 등록하는것 확인
• board/plugin.php 확인
• bindClasses() 메소드에서 인터셉션 프록시로 처리
된 class 확인
• Handler proxy 로 처리되어 있음
13
18. 해야할 것
• 관리페이지에 메뉴 만들어서 포인트 로그 확인할 수
있도록 함
• 컨텐츠 > point 로그 메뉴 생성
• src/Controller.php 을 추가하고 플러그인 boot() 할
때 라우트 등록 해서 연결
• 관리페이지 메뉴에 추가하고 라우트 연결
18
19. Route, Controller
• 메뉴에 연결하기 위해 request 를
• http://xpressengine.github.io/laravel-korean-
docs/docs/5.0/routing
• http://xpressengine.github.io/laravel-korean-
docs/docs/5.0/controllers
• https://xpressengine.gitbooks.io/xpressengine-
manual/content/ko/controllers.html
19
20. 관리페이지 메뉴 추가
• src/Controller.php 추가
• index() 메소드 추가
• plugin.php 수정
• registerSettingsMenu() 생성 (Code3-1)
• registerSettingsRoute() 생성 (Code3-2)
• boot() 에서 실행될 수 있도록 코드 추가 (Code3-3)
• https://xpressengine.gitbooks.io/xpressengine-
manual/content/ko/plugin-settings.html
20
22. 포인트 로그 확인
• src/Controller.php
• point_logs 테이블에서 데이터
가져와서 pagination 처리 및
검색 처리(Code3-4)
• http://xpressengine.github.io/l
aravel-korean-
docs/docs/5.0/requests
• XePresenter 로 반환
• blade 파일 경로 설정
• views/index.blade.php 추가
22
32. 설정 수정 처리
• plugin.php
• registerSettingsRoute() 에 댓글 등록 라우트 추가
(Code6-7)
• controller.php
• Controller::update() 메소드 추가 (Code6-8)
• Controller::index() 에 리턴 변경 (Code6-9)
• views/skin/index2.blade.php 참고
32
34. Translation
• langs/lang.php 추가
• skin/index3.blade.php 에서 사용할 다국어 추가
• 다국어 적용
• php artisan translation:import <plugin name>
• Controller.php
• Controller::index() 에서 views/skin/index3.blade.php 를 사용하도록 수정
(Code7-1)
• skin/index3.blade.php 에 다국어 사용 처리
• xe_trans(‘<nameSpace>::<itemName>’);
34
35. 다국어 적용
• xe_trans(‘<nameSpace>::<itemName>’);
• nameSpace
• 코어 다국어 : xe
• 플러그인 다국어 : 플러그인 이름
• 없는 itemName 인 경우 itemName 을 그대로 출력
• itemName 은 의미 전달이 가능한 수준으로 작성하길 권장함
• /resources/lang/common.php
• 코어 다국어 파일
35
39. Frontend javascript load
• assets/test.js 파일 추가
• index4.blade.php (Code8-4)
• XeFrontend::js(‘plugins/<pluginName>/assets/test
.js’)->load()
39
40. Frontend 다국어 사용
• skin/index4.blade.php (Code8-5)
• javascript 에서 사용할 다국어를 미리 설정
• XeFrontend::translation([‘nameSpace::itemName’
, …])
• assets/test.js 수정 (Code8-6)
• javascript
XE.Lang.trans('<nameSpace>::<itemName>')
40