SlideShare une entreprise Scribd logo
1  sur  118
Télécharger pour lire hors ligne
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
달리기
XE 모듈 개발
걸음마부터 날기까지
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
소개
신승엽 (난다날아)
NHN Entertainment
● SocialXE 개발
● XE Core 개발
(2011.7 ~ 2013.6)
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
이 강의는...
● 걸음마 - 개발환경 구축, XE 설치
● 걷기 - XE 모듈 개념, 간단한 모듈 개발
● 달리기 - 개발한 모듈 발전 시키기
(룰셋, 에디터, 쿼리, 자체 관리자 페이지)
● 날기 - 고급 주제
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋
● XE에서 입력값 검증 방법
○ 필터와 룰셋
● 필터: 클라이언트 사이드 검증만 가능
● 룰셋: 서버&클라이언트 사이드 체크 가능
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 - 이점
● 보안 향상
○ 클라이언트&서버 사이드 검증
● 유연함
○ 값에 따라 검증 방법을 다르게 할 수 있는 유연함
● 접근성 향상
○ 자바스크립트 불가능 환경에서도 검증 가능
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 - 작동 원리
● 룰셋XML > 자바스크립트 필터: 클라이언트
사이드 검증
● 룰셋 XML > PHP 코드: 서버 사이드 검증
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
● 서버 사이드 검증은 모듈로 제어가 넘어가기
전에 수행
룰셋 - 작동 원리
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML
● 각 모듈 폴더 아래 ruleset 폴더에 위치
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <ruleset>: 룰셋 최상위 노드
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <cumstomrules>: 커스텀 룰들
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <rule>: 커스텀 룰 정의
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <rule>의 name: 룰 이름. <field>의 rule 속성
에 사용
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <rule>의 type: 룰 형식
○ regex, enum, expr
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <rule>의 test: 규칙
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● regex 타입
○ 정규식 검사
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● enum 타입
○ 주어진 목록 중 하나의 값만 가능
○ 기본 구분자는 콤마(,)
■ delim 속성으로 변경 가능
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● expr 타입
○ 산술식 연산
○ $$: 필드의 값 의미
○ <, >, &는 &lt;, &gt;, &amp;로 사용해야 함
■ XML에서 특별한 의미를 가지는 문자이기 때문
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <message>: 해당 룰을 만족하지 않을 때 표
시할 메시지 내용
○ %s로 필드 이름을 사용할 수 있음
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● 생략 가능
● 기본 메시지: %s의 값이 올바르지 않습니다.
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <fields>: 검증을 수행할 필드들
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>: 각 필드에 대한 정의
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 name: 필드 이름
○ <input name=”phone” />
○ ?phone=...&other_field=...
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 required: 필수 여부
○ %s 값은 필수입니다.
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 rule: 적용할 룰
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● 미리 정의된 룰
이름 의미
email 메일 주소
userid 사용자 아이디 형식
url URL 형식
alpha 영문자
alpha_number 영문자로 시작하는 영문자 및 숫자, 언더스
코어
number 정수 숫자
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 length: 길이 규칙
○ %s의 글자 수를 맞추어 주세요.
○ 최소길이:최대길이
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 length: 길이 규칙
○ 최소길이:
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 length: 길이 규칙
○ :최대길이
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 length: 길이 규칙
○ 최소길이b:최대길이b - byte 단위
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 default: 기본 값
○ 필드가 필수가 아닐 경우 값이 없을 때 기본 값을 지
정 가능
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 equalto: 특정 필드와 값이 동일한
지 검증
○ %s이(가) 잘못되었습니다.
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <field>의 modifier: 검증 후 결과나 입력 값을
변경할 수 있는 기능
○ 현재 사용 가능한 값은 not 뿐
○ not: 검사 결과를 반대로 적용
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <title>: 메시지에 표시될 필드 이름
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <title>: 메시지에 표시될 필드 이름
● 생략 가능
● 생략할 경우 언어 변수에 name 속성과 동일
한 값이 있을 경우 언어 변수 값 사용
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <if>: 특정 조건에 따라 field 속성을 변경
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <if>의 test: 조건
○ 조건에서 사용하는 필드명은 반드시 $를 앞에 붙여야
함
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <if>의 attr: 변경할 속성 명
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
룰셋 XML 예제
● <if>의 value: 변경할 속성 값
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 글쓰기 룰셋 적용
● ruleset/write.xml 파일 생성
https://gist.github.com/flyskyko/3eeeaea1ffe7acd291bd/737497c3f891d2661eff38aca63fdb26e4946223
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 글쓰기 룰셋 적용
● conf/module.xml 수정
○ <action>에 ruleset 속성 추가
○ 값은 룰셋 XML 파일명
https://gist.github.com/flyskyko/19eebce5aa13e0b71209/eddb79bfb2c1b5cf51a65f2e95dc9b5229acfb8a#file-module-xml-L28
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 글쓰기 룰셋 적용
● skins/default/Write.html 수정
https://gist.github.com/flyskyko/e6e0eecf3cd49a10dfcc/198711d3423967fa0931abc749b44bacb2205a07
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 글쓰기 룰셋 적용
● skins/default/Write.html 수정
○ $XE_VALIDATOR_MESSAGE
■ 룰셋 검증이나 실행 오류 메시지가 담겨 있음
○ $XE_VALIDATOR_MESSAGE_TYPE
■ 오류 타입
○ $XE_VALIDATOR_ID
■ 한 페이지에 여러 폼이 존재할 경우 구별을 위해
사용
■ <input type=”hidden” name=”xe_validator_id” …>
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
이런 현상 방지를 위해 xe_validator_id 사용
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
● 템플릿 핸들러가 <form>에 자동으로
error_return_url이라는 hidden input을 추가
○ 템플릿에서 직접 지정할 수도 있음
● 룰셋 검증이나 실행 오류 시 XE는 앞서 살펴
본 변수에 값을 세팅한 후 error_return_url로
redirect
나의 게시판 - 글쓰기 룰셋 적용
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 글쓰기 룰셋 적용
● 룰셋 XML 생성
● <action>에 ruleset 속성 추가
○ module.xml
● 간단한 HTML 마크업 추가
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 클라이언트 사이드 검증
● skins/default/Write.html 수정
https://gist.github.com/flyskyko/e6e0eecf3cd49a10dfcc/5362fb55d45ac8c5ed53c3228e084d775426c2a8#file-write-html-L7
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 클라이언트 사이드 검증
● <form>에 ruleset 속성
추가
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 에디터 붙이기
● documentItem을 이용
● 직접 editor 모듈 사용
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 에디터 붙이기
● myboard.view.php 수정
https://gist.github.com/flyskyko/20e3243b16a380f2a848/6c5b3a53d47aa9dca0926f2737288ef8b471acdf#file-myboard-view-php-L29
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 에디터 붙이기
● skins/default/Write.html 수정
https://gist.github.com/flyskyko/e6e0eecf3cd49a10dfcc/1b6a5164a94b4f60cc70e6934147fab313785a47
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 에디터 붙이기
● skins/default/Write.html 수정
○ 내용 HTML을 담을 input 필요
■ content_key_name
■ documentItem을 이용했을 때 기본값은 content
○ 파일 첨부 시 발급되는 고유번호를 담을 input 필요
■ primary_key_name
■ documentItem을 이용했을 때 기본값은
document_srl
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 에디터 붙이기
● myboard.controller.php 수정
○ 파일 첨부 시 자동 발급되는 document_srl을 처리
https://gist.github.com/flyskyko/e9a8b0d121eaac6da226/18c2ffcf57b8491bc228f79f11867964058140ac#file-myboard-controller-php-L16
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
나의 게시판 - 에디터 붙이기
● documentItem::getEditor()를 이용하면 손 쉽
게 에디터 적용 가능
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
에디터 들여다 보기
에디터 설정
- 각 모듈별
- 문서, 댓글 별
editorModel::
getModuleEditor()
editorModel::
getEditor()
파일 모듈
Document 모듈
설정
primary_key_name
document_srl
upload_target_srl
content_key_name
content
에디터 마크업
각 모듈별
업로드 설정
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
에디터 들여다 보기
● editorModel::getModuleEditor()
○ 각 모듈별 && 문서/댓글 별 설정을 불러와 에디터 마
크업 반환
● editorModel::getEditor()
○ 에디터 설정을 직접 지정하여 에디터 마크업 반환
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
에디터 설정
● primary_key_name
○ 에디터를 적용할 대상 데이터의 고유번호 필드 이름
■ 문서를 예를 들면 document_srl이 됨
○ <input type=”hidden” name=”primary_key_name값”>
○ 파일 업로드 시 파일 모듈의 자동 발급된
upload_target_srl 값이 세팅 됨
■ 파일과 대상 데이터를 연결시켜주는 역할
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
에디터 설정
● content_key_name
○ 에디터에서 작성된 결과 HTML을 담을 <input> 이름
○ <input type=”hidden” name=”content_key_name값”>
○ 해당 <input>에 내용을 미리 넣어두면 에디터 시작 시
표시 됨
○ 에디터에서 편집된 내용이 <input>의 값으로 세팅 됨
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
에디터 설정
● editor_sequence
○ 한 페이지에 에디터 여러개를 사용할 경우 구별하기
위하여 사용
○ upload_target_srl이 설정되어 있을 경우
upload_target_srl이 사용 됨
● allow_fileupload
○ 파일 업로드 허용 여부
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
에디터 설정
● content_style
○ 문서 스타일 지정
● content_font
○ 기본 폰트 지정
● content_font_size
○ 기본 폰트 크기 지정
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
에디터 설정
● enable_autosave
○ 자동 저장 사용 여부
● enable_default_component
○ 에디터 기본 콤포넌트(글꼴, 크기 등) 사용 여부
● enable_component
○ 에디터 확장 콤포넌트(유튜브 동영상 등) 사용 여부
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
에디터 설정
● disable_html
○ HTML 편집 제한 여부
● height
○ 에디터 높이
● skin
○ 에디터 스킨
● colorset
○ 에디터 스킨 컬러셋
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
에디터 설정
● manual_start
○ 자바스크립트에 의한 에디터 초기화 자동 시작 여부
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리
● XE에서 쿼리는 XML을 이용하여 추상화 시켜
표현
● 쿼리 XML 덕에 여러 DBMS 지원 가능
○ XML 정보를 이용하는 DB 클래스만 작성
● 각 DBMS 만의 기능은 사용 불가
○ DB 클래스를 통해 코드 상에서 직접 쿼리 가능
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <query>: 최상 위 노드
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <query>의 id: 쿼리 id
○ 파일 명과 동일해야 함
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <query>의 select: 쿼리 타입
○ select, insert, delete, insert-select
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <table>: 테이블을 나타내는 노드
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <table>의 name: 테이블 이름
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <column>: 컬럼을 나타내는 노드
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <column>의 name: 컬럼 이름
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <condition>: where 절 조건을 나타내는 노드
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <condition>의 operation: 연산자
○ equal, more, excess, less, below, like_tail,
like_prefix, like, notlike_tail, notlike_prefix, notlike, in,
notin, or, xor, not, notequal, between, null, notnull
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <condition>의 column: 컬럼 이름
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <condition>의 default: 조건의 기본 값
○ default 속성이 없는 condition은 var 값이 파라미터에
없으면 쿼리에서 제외 됨
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <condition>의 var: 쿼리 파라미터의 사용할
변수 이름
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <condition>의 pipe: 조건을 이어 붙일 때 사
용할 연산자
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <group>: 여러 조건을 ()로 묶을 때 사용
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <navigation>: 쿼리 결과를 페이지에 따라 보
여줄 때 사용
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - select
● <index>: 정렬 기준을 나타내는 노드
● <list_count>: 한 페이지에 나타낼 row 수
● <page_count>: 한 페이지에 나타낼 페이지네
이션 페이지 개수
● <page>: 페이지
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - insert
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - insert
● <column>의 var: 해당 컬럼의 값
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - insert
● <column>의 notnull: 파라미터에 값이 없으면
에러
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - insert
● <column>의 filter: 값에 대한 검증을 함
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 XML 예제 - delete
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
더 많은 쿼리 예제
● XE tests에 더 많은 쿼리 예제가 있습니다
○ https://github.com/xpressengine/xe-
core/tree/master/tests/classes/db/db/xml_query/mys
ql/data
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
쿼리 고급 기능
● table join
● insert-select
● sub query
● index hint
● click count
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 목록 화면 만들기
● conf/module.xml 수정
https://gist.github.com/flyskyko/19eebce5aa13e0b71209/d14311b948a141c15b3c8939b62814e56837a067#file-module-xml-L23
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 목록 화면 만들기
● admin_index 속성
○ 관리자 초기 페이지를 나타내는 속성
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 목록 화면 만들기
● admin_index 속성
○ 관리자 초기 페이지를 나타내는 속성
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 목록 화면 만들기
● queries/getMyboardList.xml 생성
https://gist.github.com/flyskyko/671884bf6d3d194d1d02/65960cb58fbefbc1c5aa8130fd7768aecaa251e2
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 목록 화면 만들기
● myboard.admin.view.php 파일 생성
https://gist.github.com/flyskyko/bf01869b2ca20eeb2059/e2c945329cb0f7f0b8828589d74dbe82a4189d08
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 목록 화면 만들기
● executeQueryArray()
○ 쿼리 실행 함수
○ 결과는 array로 반환
■ 결과가 없어도 빈 array 반환
○ 쿼리 ID는 모듈명.쿼리ID 형식으로 지정
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 목록 화면 만들기
● 쿼리 파라미터
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 목록 화면 만들기
● tpl/List.html 파일 생성
https://gist.github.com/flyskyko/ca693faa6413c156d9c3/43d2a9ae9fbbdaf9e5db4054c2dc3857c2ef5a65
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 목록 화면 만들기
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 추가(수정) 화면 만들기
● conif/module.xml 파일 수정
https://gist.github.com/flyskyko/19eebce5aa13e0b71209/1c78be8d312247c1b29fc22da9dbbd459654ced5
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 추가(수정) 화면 만들기
● myboard.admin.view.php 파일 수정
https://gist.github.com/flyskyko/bf01869b2ca20eeb2059/3eb15bbb568b92892cef71c4e8535424185b80aa#file-myboard-admin-view-php-L49
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 추가(수정) 화면 만들기
● moduleModel::getSkins()
○ 해당 폴더의 skins 폴더를 조사해 스킨 목록을 반환
● layoutModel::getLayoutList()
○ 레이아웃 목록을 반환
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 추가(수정) 화면 만들기
● myboard.admin.controller.php 파일 수정
https://gist.github.com/flyskyko/b85488d4585f9d27585b/cf794ab3aa5f7ed761216467aadbd9e49b64fd74#file-myboard-admin-controller-php-
L24
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 추가(수정) 화면 만들기
● moduleController::insert(update)Module()
○ 모듈 생성, 수정 메소드
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 추가(수정) 화면 만들기
● tpl/Insert.html 파일 생성
https://gist.github.com/flyskyko/9359751990c21239c77a/da4f5de1e548ab1567b8506d95deebc1258c90e6
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
모듈 추가(수정) 화면 만들기
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
관리자 메뉴에 추가
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
관리자 메뉴에 추가
● conf/module.xml 파일 수정
https://gist.github.com/flyskyko/19eebce5aa13e0b71209/b196d0ea1e287448e3c811a627fde8f1a1a15f83
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
관리자 메뉴에 추가
● <menu>: 관리자 메뉴를 나타내는 노드
● name: <action>에서 사용할 이름
● <title>: 화면에 표시될 이름
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
관리자 메뉴에 추가
● <action>의 menu_name
○ 해당 액션이 속한 메뉴 명
● <action>의 menu_index
○ 해당 메뉴의 초기 액션 표시
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
관리자 메뉴에 추가
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
정리
● 룰셋
○ xml 하나로 클라이언트&서버 사이드 검증
● 에디터
○ primary_key_name, content_key_name
● 쿼리
○ xml로 추상화
○ executeQuery(), executeQueryArray()
● 관리자 페이지
○ 모듈의 생성, 수정
○ 관리자 메뉴 추가
XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
한번 해보세요
● 관리자 페이지
○ 상세 설정 페이지
○ 스킨 설정
○ 에디터 설정 등
○ board 모듈을 참고해보세요
● 모듈 삭제

Contenu connexe

Tendances

Sitrain s7 1200 (exercicios)
Sitrain s7 1200 (exercicios)Sitrain s7 1200 (exercicios)
Sitrain s7 1200 (exercicios)confidencial
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Takeshi Hirosue
 
Rit 8.5.0 integration testing training student's guide
Rit 8.5.0 integration testing training student's guideRit 8.5.0 integration testing training student's guide
Rit 8.5.0 integration testing training student's guideDarrel Rader
 
Threads and Callbacks for Embedded Python
Threads and Callbacks for Embedded PythonThreads and Callbacks for Embedded Python
Threads and Callbacks for Embedded PythonYi-Lung Tsai
 
discovering the functionality of the plantpax library of process object140625...
discovering the functionality of the plantpax library of process object140625...discovering the functionality of the plantpax library of process object140625...
discovering the functionality of the plantpax library of process object140625...Shashi Ranjan Singh
 
Jvm分享20101228
Jvm分享20101228Jvm分享20101228
Jvm分享20101228lunfu zhong
 
Android Security Internals
Android Security InternalsAndroid Security Internals
Android Security InternalsOpersys inc.
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用nagise
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチMr. Vengineer
 
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsC#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsYoshifumi Kawai
 
UIDのことわかってますか? -フォーマット編-
UIDのことわかってますか? -フォーマット編-UIDのことわかってますか? -フォーマット編-
UIDのことわかってますか? -フォーマット編-Natsuhiko Suwamura
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミングPreferred Networks
 
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察貴仁 大和屋
 
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기Daehee Kim
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewGünter Obiltschnig
 
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてDart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてKosuke Saigusa
 
電子署名(PKI)ハンズオン資料 V1.00
電子署名(PKI)ハンズオン資料 V1.00電子署名(PKI)ハンズオン資料 V1.00
電子署名(PKI)ハンズオン資料 V1.00Naoto Miyachi
 

Tendances (20)

Sitrain s7 1200 (exercicios)
Sitrain s7 1200 (exercicios)Sitrain s7 1200 (exercicios)
Sitrain s7 1200 (exercicios)
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
 
Rit 8.5.0 integration testing training student's guide
Rit 8.5.0 integration testing training student's guideRit 8.5.0 integration testing training student's guide
Rit 8.5.0 integration testing training student's guide
 
Threads and Callbacks for Embedded Python
Threads and Callbacks for Embedded PythonThreads and Callbacks for Embedded Python
Threads and Callbacks for Embedded Python
 
discovering the functionality of the plantpax library of process object140625...
discovering the functionality of the plantpax library of process object140625...discovering the functionality of the plantpax library of process object140625...
discovering the functionality of the plantpax library of process object140625...
 
Jvm分享20101228
Jvm分享20101228Jvm分享20101228
Jvm分享20101228
 
Android Security Internals
Android Security InternalsAndroid Security Internals
Android Security Internals
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチ
 
Phpcon2015
Phpcon2015Phpcon2015
Phpcon2015
 
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive ExtensionsC#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
 
UIDのことわかってますか? -フォーマット編-
UIDのことわかってますか? -フォーマット編-UIDのことわかってますか? -フォーマット編-
UIDのことわかってますか? -フォーマット編-
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
 
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
 
Linux boot-time
Linux boot-timeLinux boot-time
Linux boot-time
 
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてDart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
 
電子署名(PKI)ハンズオン資料 V1.00
電子署名(PKI)ハンズオン資料 V1.00電子署名(PKI)ハンズオン資料 V1.00
電子署名(PKI)ハンズオン資料 V1.00
 

Similaire à XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기

XE 모듈 개발 - 걸음마부터 날기까지 - 날기
XE 모듈 개발 - 걸음마부터 날기까지 - 날기XE 모듈 개발 - 걸음마부터 날기까지 - 날기
XE 모듈 개발 - 걸음마부터 날기까지 - 날기승엽 신
 
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기XpressEngine
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기Sungbum Hong
 
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개XpressEngine
 
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기경원 홍
 
PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약정아 손
 
Xe 구조에 대한 이해
Xe 구조에 대한 이해Xe 구조에 대한 이해
Xe 구조에 대한 이해Dong Hyun Kim
 
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XpressEngine
 
Selenium for-ui-test
Selenium for-ui-testSelenium for-ui-test
Selenium for-ui-test승훈 오
 
Node.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdfNode.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdfSeung kyoo Park
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Kyoung Up Jung
 
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기승훈 오
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 

Similaire à XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기 (15)

XE 모듈 개발 - 걸음마부터 날기까지 - 날기
XE 모듈 개발 - 걸음마부터 날기까지 - 날기XE 모듈 개발 - 걸음마부터 날기까지 - 날기
XE 모듈 개발 - 걸음마부터 날기까지 - 날기
 
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기
 
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
 
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
 
PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약
 
Xe 구조에 대한 이해
Xe 구조에 대한 이해Xe 구조에 대한 이해
Xe 구조에 대한 이해
 
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
 
Selenium for-ui-test
Selenium for-ui-testSelenium for-ui-test
Selenium for-ui-test
 
Electron forge
Electron forgeElectron forge
Electron forge
 
Node.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdfNode.js 20버전에 변경된 점들.pdf
Node.js 20버전에 변경된 점들.pdf
 
ES6 for Node.js Study 2주차
ES6 for Node.js Study 2주차ES6 for Node.js Study 2주차
ES6 for Node.js Study 2주차
 
Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기
 
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 

Plus de XpressEngine

Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2XpressEngine
 
Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3XpressEngine
 
XE3 SEO를 다루기 - XE Open seminar #2
XE3 SEO를 다루기 - XE Open seminar #2XE3 SEO를 다루기 - XE Open seminar #2
XE3 SEO를 다루기 - XE Open seminar #2XpressEngine
 
XE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXpressEngine
 
[XECon2016] B-1 안정수 라라벨 Scout을 활용한 검색 기능 둘러보기
[XECon2016] B-1 안정수 라라벨 Scout을 활용한 검색 기능 둘러보기[XECon2016] B-1 안정수 라라벨 Scout을 활용한 검색 기능 둘러보기
[XECon2016] B-1 안정수 라라벨 Scout을 활용한 검색 기능 둘러보기XpressEngine
 
[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩
[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩
[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩XpressEngine
 
[XECon2016] C-4 한성민 AngularJS 1, 2 그리고 실무환경 적용 이야기
[XECon2016] C-4 한성민 AngularJS 1, 2 그리고 실무환경 적용 이야기[XECon2016] C-4 한성민 AngularJS 1, 2 그리고 실무환경 적용 이야기
[XECon2016] C-4 한성민 AngularJS 1, 2 그리고 실무환경 적용 이야기XpressEngine
 
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들XpressEngine
 
[XECon2016] C-2 홍성범 XE3 Theme 제작 - 자유롭게, 그리고 편하게
[XECon2016] C-2 홍성범 XE3 Theme 제작 - 자유롭게, 그리고 편하게[XECon2016] C-2 홍성범 XE3 Theme 제작 - 자유롭게, 그리고 편하게
[XECon2016] C-2 홍성범 XE3 Theme 제작 - 자유롭게, 그리고 편하게XpressEngine
 
[XECon2016] C-1 오승훈 XE3로 웹사이트 만들기
[XECon2016] C-1 오승훈 XE3로 웹사이트 만들기[XECon2016] C-1 오승훈 XE3로 웹사이트 만들기
[XECon2016] C-1 오승훈 XE3로 웹사이트 만들기XpressEngine
 
[XECon2016] B-4 변종원 CodeIgniter와 PHP7
[XECon2016] B-4 변종원 CodeIgniter와 PHP7[XECon2016] B-4 변종원 CodeIgniter와 PHP7
[XECon2016] B-4 변종원 CodeIgniter와 PHP7XpressEngine
 
[XECon2016] B-3 성기진 XE1 가지치기와 오픈소스 생태계의 미래
[XECon2016] B-3 성기진 XE1 가지치기와 오픈소스 생태계의 미래[XECon2016] B-3 성기진 XE1 가지치기와 오픈소스 생태계의 미래
[XECon2016] B-3 성기진 XE1 가지치기와 오픈소스 생태계의 미래XpressEngine
 
[XECon2016] B-2 정광섭 Laravel로 스타트업 기술 스택 구성하기
[XECon2016] B-2 정광섭 Laravel로 스타트업 기술 스택 구성하기[XECon2016] B-2 정광섭 Laravel로 스타트업 기술 스택 구성하기
[XECon2016] B-2 정광섭 Laravel로 스타트업 기술 스택 구성하기XpressEngine
 
[XECon2016] A-3 박형식 Frontend stack의 변화 : jQuery, BackboneJS, ReactJS 중심으로
[XECon2016] A-3 박형식 Frontend stack의 변화 : jQuery, BackboneJS, ReactJS 중심으로[XECon2016] A-3 박형식 Frontend stack의 변화 : jQuery, BackboneJS, ReactJS 중심으로
[XECon2016] A-3 박형식 Frontend stack의 변화 : jQuery, BackboneJS, ReactJS 중심으로XpressEngine
 
[XECon2016] A-2 임형주 Webpack 실무 적용전략
[XECon2016] A-2 임형주 Webpack 실무 적용전략[XECon2016] A-2 임형주 Webpack 실무 적용전략
[XECon2016] A-2 임형주 Webpack 실무 적용전략XpressEngine
 
[XECon2016] A-4 조정현 GitHub + Jenkins + Docker로 자동배포 시스템 구축하기
[XECon2016] A-4 조정현 GitHub + Jenkins + Docker로 자동배포 시스템 구축하기[XECon2016] A-4 조정현 GitHub + Jenkins + Docker로 자동배포 시스템 구축하기
[XECon2016] A-4 조정현 GitHub + Jenkins + Docker로 자동배포 시스템 구축하기XpressEngine
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXpressEngine
 
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XpressEngine
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXpressEngine
 
XECon2015 :: [1-2] 이현석 - Learning Laravel
XECon2015 :: [1-2] 이현석 - Learning LaravelXECon2015 :: [1-2] 이현석 - Learning Laravel
XECon2015 :: [1-2] 이현석 - Learning LaravelXpressEngine
 

Plus de XpressEngine (20)

Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2
 
Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3
 
XE3 SEO를 다루기 - XE Open seminar #2
XE3 SEO를 다루기 - XE Open seminar #2XE3 SEO를 다루기 - XE Open seminar #2
XE3 SEO를 다루기 - XE Open seminar #2
 
XE Open seminar #2 - keynote
XE Open seminar #2 - keynoteXE Open seminar #2 - keynote
XE Open seminar #2 - keynote
 
[XECon2016] B-1 안정수 라라벨 Scout을 활용한 검색 기능 둘러보기
[XECon2016] B-1 안정수 라라벨 Scout을 활용한 검색 기능 둘러보기[XECon2016] B-1 안정수 라라벨 Scout을 활용한 검색 기능 둘러보기
[XECon2016] B-1 안정수 라라벨 Scout을 활용한 검색 기능 둘러보기
 
[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩
[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩
[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩
 
[XECon2016] C-4 한성민 AngularJS 1, 2 그리고 실무환경 적용 이야기
[XECon2016] C-4 한성민 AngularJS 1, 2 그리고 실무환경 적용 이야기[XECon2016] C-4 한성민 AngularJS 1, 2 그리고 실무환경 적용 이야기
[XECon2016] C-4 한성민 AngularJS 1, 2 그리고 실무환경 적용 이야기
 
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
 
[XECon2016] C-2 홍성범 XE3 Theme 제작 - 자유롭게, 그리고 편하게
[XECon2016] C-2 홍성범 XE3 Theme 제작 - 자유롭게, 그리고 편하게[XECon2016] C-2 홍성범 XE3 Theme 제작 - 자유롭게, 그리고 편하게
[XECon2016] C-2 홍성범 XE3 Theme 제작 - 자유롭게, 그리고 편하게
 
[XECon2016] C-1 오승훈 XE3로 웹사이트 만들기
[XECon2016] C-1 오승훈 XE3로 웹사이트 만들기[XECon2016] C-1 오승훈 XE3로 웹사이트 만들기
[XECon2016] C-1 오승훈 XE3로 웹사이트 만들기
 
[XECon2016] B-4 변종원 CodeIgniter와 PHP7
[XECon2016] B-4 변종원 CodeIgniter와 PHP7[XECon2016] B-4 변종원 CodeIgniter와 PHP7
[XECon2016] B-4 변종원 CodeIgniter와 PHP7
 
[XECon2016] B-3 성기진 XE1 가지치기와 오픈소스 생태계의 미래
[XECon2016] B-3 성기진 XE1 가지치기와 오픈소스 생태계의 미래[XECon2016] B-3 성기진 XE1 가지치기와 오픈소스 생태계의 미래
[XECon2016] B-3 성기진 XE1 가지치기와 오픈소스 생태계의 미래
 
[XECon2016] B-2 정광섭 Laravel로 스타트업 기술 스택 구성하기
[XECon2016] B-2 정광섭 Laravel로 스타트업 기술 스택 구성하기[XECon2016] B-2 정광섭 Laravel로 스타트업 기술 스택 구성하기
[XECon2016] B-2 정광섭 Laravel로 스타트업 기술 스택 구성하기
 
[XECon2016] A-3 박형식 Frontend stack의 변화 : jQuery, BackboneJS, ReactJS 중심으로
[XECon2016] A-3 박형식 Frontend stack의 변화 : jQuery, BackboneJS, ReactJS 중심으로[XECon2016] A-3 박형식 Frontend stack의 변화 : jQuery, BackboneJS, ReactJS 중심으로
[XECon2016] A-3 박형식 Frontend stack의 변화 : jQuery, BackboneJS, ReactJS 중심으로
 
[XECon2016] A-2 임형주 Webpack 실무 적용전략
[XECon2016] A-2 임형주 Webpack 실무 적용전략[XECon2016] A-2 임형주 Webpack 실무 적용전략
[XECon2016] A-2 임형주 Webpack 실무 적용전략
 
[XECon2016] A-4 조정현 GitHub + Jenkins + Docker로 자동배포 시스템 구축하기
[XECon2016] A-4 조정현 GitHub + Jenkins + Docker로 자동배포 시스템 구축하기[XECon2016] A-4 조정현 GitHub + Jenkins + Docker로 자동배포 시스템 구축하기
[XECon2016] A-4 조정현 GitHub + Jenkins + Docker로 자동배포 시스템 구축하기
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
 
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
XECon2015 :: [1-2] 이현석 - Learning Laravel
XECon2015 :: [1-2] 이현석 - Learning LaravelXECon2015 :: [1-2] 이현석 - Learning Laravel
XECon2015 :: [1-2] 이현석 - Learning Laravel
 

XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기

  • 1. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 달리기 XE 모듈 개발 걸음마부터 날기까지
  • 2. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 소개 신승엽 (난다날아) NHN Entertainment ● SocialXE 개발 ● XE Core 개발 (2011.7 ~ 2013.6)
  • 3. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 이 강의는... ● 걸음마 - 개발환경 구축, XE 설치 ● 걷기 - XE 모듈 개념, 간단한 모듈 개발 ● 달리기 - 개발한 모듈 발전 시키기 (룰셋, 에디터, 쿼리, 자체 관리자 페이지) ● 날기 - 고급 주제
  • 4. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 ● XE에서 입력값 검증 방법 ○ 필터와 룰셋 ● 필터: 클라이언트 사이드 검증만 가능 ● 룰셋: 서버&클라이언트 사이드 체크 가능
  • 5. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 - 이점 ● 보안 향상 ○ 클라이언트&서버 사이드 검증 ● 유연함 ○ 값에 따라 검증 방법을 다르게 할 수 있는 유연함 ● 접근성 향상 ○ 자바스크립트 불가능 환경에서도 검증 가능
  • 6. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 - 작동 원리 ● 룰셋XML > 자바스크립트 필터: 클라이언트 사이드 검증 ● 룰셋 XML > PHP 코드: 서버 사이드 검증
  • 7. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 ● 서버 사이드 검증은 모듈로 제어가 넘어가기 전에 수행 룰셋 - 작동 원리
  • 8. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML ● 각 모듈 폴더 아래 ruleset 폴더에 위치
  • 9. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <ruleset>: 룰셋 최상위 노드
  • 10. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <cumstomrules>: 커스텀 룰들
  • 11. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <rule>: 커스텀 룰 정의
  • 12. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <rule>의 name: 룰 이름. <field>의 rule 속성 에 사용
  • 13. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <rule>의 type: 룰 형식 ○ regex, enum, expr
  • 14. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <rule>의 test: 규칙
  • 15. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● regex 타입 ○ 정규식 검사
  • 16. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● enum 타입 ○ 주어진 목록 중 하나의 값만 가능 ○ 기본 구분자는 콤마(,) ■ delim 속성으로 변경 가능
  • 17. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● expr 타입 ○ 산술식 연산 ○ $$: 필드의 값 의미 ○ <, >, &는 &lt;, &gt;, &amp;로 사용해야 함 ■ XML에서 특별한 의미를 가지는 문자이기 때문
  • 18. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <message>: 해당 룰을 만족하지 않을 때 표 시할 메시지 내용 ○ %s로 필드 이름을 사용할 수 있음
  • 19. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● 생략 가능 ● 기본 메시지: %s의 값이 올바르지 않습니다.
  • 20. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <fields>: 검증을 수행할 필드들
  • 21. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>: 각 필드에 대한 정의
  • 22. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 name: 필드 이름 ○ <input name=”phone” /> ○ ?phone=...&other_field=...
  • 23. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 required: 필수 여부 ○ %s 값은 필수입니다.
  • 24. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 rule: 적용할 룰
  • 25. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● 미리 정의된 룰 이름 의미 email 메일 주소 userid 사용자 아이디 형식 url URL 형식 alpha 영문자 alpha_number 영문자로 시작하는 영문자 및 숫자, 언더스 코어 number 정수 숫자
  • 26. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 length: 길이 규칙 ○ %s의 글자 수를 맞추어 주세요. ○ 최소길이:최대길이
  • 27. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 length: 길이 규칙 ○ 최소길이:
  • 28. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 length: 길이 규칙 ○ :최대길이
  • 29. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 length: 길이 규칙 ○ 최소길이b:최대길이b - byte 단위
  • 30. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 default: 기본 값 ○ 필드가 필수가 아닐 경우 값이 없을 때 기본 값을 지 정 가능
  • 31. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 equalto: 특정 필드와 값이 동일한 지 검증 ○ %s이(가) 잘못되었습니다.
  • 32. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <field>의 modifier: 검증 후 결과나 입력 값을 변경할 수 있는 기능 ○ 현재 사용 가능한 값은 not 뿐 ○ not: 검사 결과를 반대로 적용
  • 33. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <title>: 메시지에 표시될 필드 이름
  • 34. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <title>: 메시지에 표시될 필드 이름 ● 생략 가능 ● 생략할 경우 언어 변수에 name 속성과 동일 한 값이 있을 경우 언어 변수 값 사용
  • 35. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <if>: 특정 조건에 따라 field 속성을 변경
  • 36. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <if>의 test: 조건 ○ 조건에서 사용하는 필드명은 반드시 $를 앞에 붙여야 함
  • 37. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <if>의 attr: 변경할 속성 명
  • 38. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 룰셋 XML 예제 ● <if>의 value: 변경할 속성 값
  • 39. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 글쓰기 룰셋 적용 ● ruleset/write.xml 파일 생성 https://gist.github.com/flyskyko/3eeeaea1ffe7acd291bd/737497c3f891d2661eff38aca63fdb26e4946223
  • 40. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 글쓰기 룰셋 적용 ● conf/module.xml 수정 ○ <action>에 ruleset 속성 추가 ○ 값은 룰셋 XML 파일명 https://gist.github.com/flyskyko/19eebce5aa13e0b71209/eddb79bfb2c1b5cf51a65f2e95dc9b5229acfb8a#file-module-xml-L28
  • 41. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 글쓰기 룰셋 적용 ● skins/default/Write.html 수정 https://gist.github.com/flyskyko/e6e0eecf3cd49a10dfcc/198711d3423967fa0931abc749b44bacb2205a07
  • 42. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 글쓰기 룰셋 적용 ● skins/default/Write.html 수정 ○ $XE_VALIDATOR_MESSAGE ■ 룰셋 검증이나 실행 오류 메시지가 담겨 있음 ○ $XE_VALIDATOR_MESSAGE_TYPE ■ 오류 타입 ○ $XE_VALIDATOR_ID ■ 한 페이지에 여러 폼이 존재할 경우 구별을 위해 사용 ■ <input type=”hidden” name=”xe_validator_id” …>
  • 43. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 이런 현상 방지를 위해 xe_validator_id 사용
  • 44. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 ● 템플릿 핸들러가 <form>에 자동으로 error_return_url이라는 hidden input을 추가 ○ 템플릿에서 직접 지정할 수도 있음 ● 룰셋 검증이나 실행 오류 시 XE는 앞서 살펴 본 변수에 값을 세팅한 후 error_return_url로 redirect 나의 게시판 - 글쓰기 룰셋 적용
  • 45. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 글쓰기 룰셋 적용 ● 룰셋 XML 생성 ● <action>에 ruleset 속성 추가 ○ module.xml ● 간단한 HTML 마크업 추가
  • 46. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 클라이언트 사이드 검증 ● skins/default/Write.html 수정 https://gist.github.com/flyskyko/e6e0eecf3cd49a10dfcc/5362fb55d45ac8c5ed53c3228e084d775426c2a8#file-write-html-L7
  • 47. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 클라이언트 사이드 검증 ● <form>에 ruleset 속성 추가
  • 48. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 에디터 붙이기 ● documentItem을 이용 ● 직접 editor 모듈 사용
  • 49. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 에디터 붙이기 ● myboard.view.php 수정 https://gist.github.com/flyskyko/20e3243b16a380f2a848/6c5b3a53d47aa9dca0926f2737288ef8b471acdf#file-myboard-view-php-L29
  • 50. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 에디터 붙이기 ● skins/default/Write.html 수정 https://gist.github.com/flyskyko/e6e0eecf3cd49a10dfcc/1b6a5164a94b4f60cc70e6934147fab313785a47
  • 51. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 에디터 붙이기 ● skins/default/Write.html 수정 ○ 내용 HTML을 담을 input 필요 ■ content_key_name ■ documentItem을 이용했을 때 기본값은 content ○ 파일 첨부 시 발급되는 고유번호를 담을 input 필요 ■ primary_key_name ■ documentItem을 이용했을 때 기본값은 document_srl
  • 52. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 에디터 붙이기 ● myboard.controller.php 수정 ○ 파일 첨부 시 자동 발급되는 document_srl을 처리 https://gist.github.com/flyskyko/e9a8b0d121eaac6da226/18c2ffcf57b8491bc228f79f11867964058140ac#file-myboard-controller-php-L16
  • 53. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 나의 게시판 - 에디터 붙이기 ● documentItem::getEditor()를 이용하면 손 쉽 게 에디터 적용 가능
  • 54. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 에디터 들여다 보기 에디터 설정 - 각 모듈별 - 문서, 댓글 별 editorModel:: getModuleEditor() editorModel:: getEditor() 파일 모듈 Document 모듈 설정 primary_key_name document_srl upload_target_srl content_key_name content 에디터 마크업 각 모듈별 업로드 설정
  • 55. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 에디터 들여다 보기 ● editorModel::getModuleEditor() ○ 각 모듈별 && 문서/댓글 별 설정을 불러와 에디터 마 크업 반환 ● editorModel::getEditor() ○ 에디터 설정을 직접 지정하여 에디터 마크업 반환
  • 56. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 에디터 설정 ● primary_key_name ○ 에디터를 적용할 대상 데이터의 고유번호 필드 이름 ■ 문서를 예를 들면 document_srl이 됨 ○ <input type=”hidden” name=”primary_key_name값”> ○ 파일 업로드 시 파일 모듈의 자동 발급된 upload_target_srl 값이 세팅 됨 ■ 파일과 대상 데이터를 연결시켜주는 역할
  • 57. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 에디터 설정 ● content_key_name ○ 에디터에서 작성된 결과 HTML을 담을 <input> 이름 ○ <input type=”hidden” name=”content_key_name값”> ○ 해당 <input>에 내용을 미리 넣어두면 에디터 시작 시 표시 됨 ○ 에디터에서 편집된 내용이 <input>의 값으로 세팅 됨
  • 58. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 에디터 설정 ● editor_sequence ○ 한 페이지에 에디터 여러개를 사용할 경우 구별하기 위하여 사용 ○ upload_target_srl이 설정되어 있을 경우 upload_target_srl이 사용 됨 ● allow_fileupload ○ 파일 업로드 허용 여부
  • 59. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 에디터 설정 ● content_style ○ 문서 스타일 지정 ● content_font ○ 기본 폰트 지정 ● content_font_size ○ 기본 폰트 크기 지정
  • 60. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 에디터 설정 ● enable_autosave ○ 자동 저장 사용 여부 ● enable_default_component ○ 에디터 기본 콤포넌트(글꼴, 크기 등) 사용 여부 ● enable_component ○ 에디터 확장 콤포넌트(유튜브 동영상 등) 사용 여부
  • 61. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 에디터 설정 ● disable_html ○ HTML 편집 제한 여부 ● height ○ 에디터 높이 ● skin ○ 에디터 스킨 ● colorset ○ 에디터 스킨 컬러셋
  • 62. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 에디터 설정 ● manual_start ○ 자바스크립트에 의한 에디터 초기화 자동 시작 여부
  • 63. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 ● XE에서 쿼리는 XML을 이용하여 추상화 시켜 표현 ● 쿼리 XML 덕에 여러 DBMS 지원 가능 ○ XML 정보를 이용하는 DB 클래스만 작성 ● 각 DBMS 만의 기능은 사용 불가 ○ DB 클래스를 통해 코드 상에서 직접 쿼리 가능
  • 64. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select
  • 65. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <query>: 최상 위 노드
  • 66. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <query>의 id: 쿼리 id ○ 파일 명과 동일해야 함
  • 67. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <query>의 select: 쿼리 타입 ○ select, insert, delete, insert-select
  • 68. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <table>: 테이블을 나타내는 노드
  • 69. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <table>의 name: 테이블 이름
  • 70. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <column>: 컬럼을 나타내는 노드
  • 71. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <column>의 name: 컬럼 이름
  • 72. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <condition>: where 절 조건을 나타내는 노드
  • 73. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <condition>의 operation: 연산자 ○ equal, more, excess, less, below, like_tail, like_prefix, like, notlike_tail, notlike_prefix, notlike, in, notin, or, xor, not, notequal, between, null, notnull
  • 74. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <condition>의 column: 컬럼 이름
  • 75. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <condition>의 default: 조건의 기본 값 ○ default 속성이 없는 condition은 var 값이 파라미터에 없으면 쿼리에서 제외 됨
  • 76. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <condition>의 var: 쿼리 파라미터의 사용할 변수 이름
  • 77. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <condition>의 pipe: 조건을 이어 붙일 때 사 용할 연산자
  • 78. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <group>: 여러 조건을 ()로 묶을 때 사용
  • 79. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <navigation>: 쿼리 결과를 페이지에 따라 보 여줄 때 사용
  • 80. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - select ● <index>: 정렬 기준을 나타내는 노드 ● <list_count>: 한 페이지에 나타낼 row 수 ● <page_count>: 한 페이지에 나타낼 페이지네 이션 페이지 개수 ● <page>: 페이지
  • 81. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - insert
  • 82. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - insert ● <column>의 var: 해당 컬럼의 값
  • 83. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - insert ● <column>의 notnull: 파라미터에 값이 없으면 에러
  • 84. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - insert ● <column>의 filter: 값에 대한 검증을 함
  • 85. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 XML 예제 - delete
  • 86. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 더 많은 쿼리 예제 ● XE tests에 더 많은 쿼리 예제가 있습니다 ○ https://github.com/xpressengine/xe- core/tree/master/tests/classes/db/db/xml_query/mys ql/data
  • 87. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 쿼리 고급 기능 ● table join ● insert-select ● sub query ● index hint ● click count
  • 88. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 목록 화면 만들기 ● conf/module.xml 수정 https://gist.github.com/flyskyko/19eebce5aa13e0b71209/d14311b948a141c15b3c8939b62814e56837a067#file-module-xml-L23
  • 89. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 목록 화면 만들기 ● admin_index 속성 ○ 관리자 초기 페이지를 나타내는 속성
  • 90. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 목록 화면 만들기 ● admin_index 속성 ○ 관리자 초기 페이지를 나타내는 속성
  • 91. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 목록 화면 만들기 ● queries/getMyboardList.xml 생성 https://gist.github.com/flyskyko/671884bf6d3d194d1d02/65960cb58fbefbc1c5aa8130fd7768aecaa251e2
  • 92. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나
  • 93. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 목록 화면 만들기 ● myboard.admin.view.php 파일 생성 https://gist.github.com/flyskyko/bf01869b2ca20eeb2059/e2c945329cb0f7f0b8828589d74dbe82a4189d08
  • 94. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나
  • 95. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나
  • 96. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 목록 화면 만들기 ● executeQueryArray() ○ 쿼리 실행 함수 ○ 결과는 array로 반환 ■ 결과가 없어도 빈 array 반환 ○ 쿼리 ID는 모듈명.쿼리ID 형식으로 지정
  • 97. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 목록 화면 만들기 ● 쿼리 파라미터
  • 98. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 목록 화면 만들기 ● tpl/List.html 파일 생성 https://gist.github.com/flyskyko/ca693faa6413c156d9c3/43d2a9ae9fbbdaf9e5db4054c2dc3857c2ef5a65
  • 99. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나
  • 100. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 목록 화면 만들기
  • 101. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 추가(수정) 화면 만들기 ● conif/module.xml 파일 수정 https://gist.github.com/flyskyko/19eebce5aa13e0b71209/1c78be8d312247c1b29fc22da9dbbd459654ced5
  • 102. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 추가(수정) 화면 만들기 ● myboard.admin.view.php 파일 수정 https://gist.github.com/flyskyko/bf01869b2ca20eeb2059/3eb15bbb568b92892cef71c4e8535424185b80aa#file-myboard-admin-view-php-L49
  • 103. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나
  • 104. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 추가(수정) 화면 만들기 ● moduleModel::getSkins() ○ 해당 폴더의 skins 폴더를 조사해 스킨 목록을 반환 ● layoutModel::getLayoutList() ○ 레이아웃 목록을 반환
  • 105. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 추가(수정) 화면 만들기 ● myboard.admin.controller.php 파일 수정 https://gist.github.com/flyskyko/b85488d4585f9d27585b/cf794ab3aa5f7ed761216467aadbd9e49b64fd74#file-myboard-admin-controller-php- L24
  • 106. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나
  • 107. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 추가(수정) 화면 만들기 ● moduleController::insert(update)Module() ○ 모듈 생성, 수정 메소드
  • 108. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 추가(수정) 화면 만들기 ● tpl/Insert.html 파일 생성 https://gist.github.com/flyskyko/9359751990c21239c77a/da4f5de1e548ab1567b8506d95deebc1258c90e6
  • 109. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나
  • 110. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 모듈 추가(수정) 화면 만들기
  • 111. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 관리자 메뉴에 추가
  • 112. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 관리자 메뉴에 추가 ● conf/module.xml 파일 수정 https://gist.github.com/flyskyko/19eebce5aa13e0b71209/b196d0ea1e287448e3c811a627fde8f1a1a15f83
  • 113. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나
  • 114. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 관리자 메뉴에 추가 ● <menu>: 관리자 메뉴를 나타내는 노드 ● name: <action>에서 사용할 이름 ● <title>: 화면에 표시될 이름
  • 115. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 관리자 메뉴에 추가 ● <action>의 menu_name ○ 해당 액션이 속한 메뉴 명 ● <action>의 menu_index ○ 해당 메뉴의 초기 액션 표시
  • 116. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 관리자 메뉴에 추가
  • 117. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 정리 ● 룰셋 ○ xml 하나로 클라이언트&서버 사이드 검증 ● 에디터 ○ primary_key_name, content_key_name ● 쿼리 ○ xml로 추상화 ○ executeQuery(), executeQueryArray() ● 관리자 페이지 ○ 모듈의 생성, 수정 ○ 관리자 메뉴 추가
  • 118. XE 모듈 개발 걸음마부터 날기까지 - 달리기 5월 XE 오픈 세미나 한번 해보세요 ● 관리자 페이지 ○ 상세 설정 페이지 ○ 스킨 설정 ○ 에디터 설정 등 ○ board 모듈을 참고해보세요 ● 모듈 삭제