4. 주요 모듈

조회 수 622 추천 수 0 2009.07.27 14:23:11
*.13.26.107

edit애드온 (addon)

애드온은 사용자가 페이지 요청 ~ 결과 출력 중 아래 4군데에서 요청이 되어 실행이 됩니다.
애드온으로 요청된 모듈의 제어나 결과의 변경등이 가능합니다.

애드온 내부에서는 $called_position의 값들을 이용하여 요청된 위치를 파악하며 이 위치는 다음과 같습니다.

  • before_module_init

    • 모듈 객체 생성 이전 : 사용자의 요청으로 필요한 모듈을 찾은후 모듈의 객체를 생성하기 이전을 의미합니다.
  • before_module_proc

    • 모듈 실행 이전 : 모듈의 객체를 실행하고 모듈의 실행을 하기 이전을 의미합니다.
  • after_module_proc

    • 모듈의 동작 이후 : 생성된 모듈 객체를 실행하고 결과를 얻은 바로 후를 의미합니다.
  • before_display_content

    • 결과 출력 이전 : 모듈의 결과물과 레이아웃의 적용을 끝내고 출력하기 바로 이전을 의미합니다.

위 4가지 단계는 사용자(관리자)가 선택할 수 없고 애드온의 개발자가 해당 애드온의 동작해야할 시점을 정하여 개발하여야 합니다.
예를 들어 스팸필터링 같은 경우는 before_module_proc 에 동작이 되어 요청된 모듈이 게시판이고 action이 글쓰기일때 Context를 통해 제목/글을 확인하고 접속자의 IP를 체크한 후 문제가 있을 시 모듈의 동작을 중지 시키는 방법으로 동작을 하게 됩니다.
사용자(관리자)는 관리자페이지에서 애드온 모듈을 선택후 동작하기를 원하는 모듈의 enable/disable만 선택 가능하며 상세한 설정이 필요할 경우 해당 애드온과 연동되는 모듈을 찾아 설정하셔야 합니다.

 

edit위젯 (widget)

위젯은 화면에 표시되는 작은 프로그램 개념입니다.
최근게시물이나 회원정보(로그인 폼)등 모듈과 연동된 위젯도 있고 외부 open api와 통신하는 위젯도 있습니다.
위젯은 레이아웃이나 페이지모듈에서 유용하게 사용하실 수 있으며 다양한 결과물을 만드실 수 있습니다.

위젯은 img 태그를 이용하여 아래와 같이 정의합니다.

  1. <img src="" widget="위젯이름" 속성="값" ... />

위의 위젯코드는 컨텐츠를 출력하기 직전에 Context::transContent() 를 통해서 변환이 됩니다.

widget="위젯이름" 의 위젯이름을 이용해서 ./widgets/위젯이름 에 해당하는 대상을 찾고 이 대상에 나머지 속성들을 넘겨주어서 완성된 결과를 받아 img 태그를 대체하게 됩니다.

 

edit레이아웃 (layout)

XE에서 레이아웃은 컨텐츠(모듈)를 감싸는 둘레를 의미합니다.
레이아웃은 단독으로 사용될수도 있고 레이아웃 제작자가 정한 메뉴 (menu)모듈과 연동하여 사용이 가능합니다.
레이아웃 템플릿 파일에는 위젯/에디터컴포넌트의 코드를 직접 이용하여 꾸밀 수 있습니다.

레이아웃은 XE의 template 문법을 이용해도 되고 안 해도 됩니다.

단지 내용이 나올 영역에 {$content} 라는 문구를 넣어주는 것만으로도 동작을 합니다.

skin.xml 을 통해서 다양한 사용자 정의 값을 입력받고 활용할 수도 있습니다.

 

edit메뉴 (menu)

메뉴는 트리메뉴 구조를 이용하여 네이게이션을 구축하는 기능을 가지고 있습니다.
메뉴를 설정하는 자체로는 아무런 동작을 하지 않지만 레이아웃 (layout)에 지정을 하게 되면 실제 화면에 표시도 되고 속성에 따라 동작도 하게 됩니다.
무한대의 depth(깊이)를 가진 메뉴를 만들 수 있지만 레이아웃을 어떻게 만들었냐에 따라서 모두 표시가 될 수도 표시가 되지 않을 수도 있습니다.

 

edit에디터 컴포넌트 (editor component)

에디터 컴포넌트는 글 편집기와 연동되어 내/외부의 데이터를 손쉽게 가공하고 적용할 수 있는 편집기 전용 프로그램입니다.
글 작성/수정시에 에디터컴포넌트의 결과물을 더블클릭하시면 수정을 하실 수 있어 글작성시 편리함을 제공합니다.
에디터 컴포넌트는 그 성격상 한계가 없는 구조이기에 내부 데이터나 외부 open api의 연동을 통한 컨텐츠 제작을 쉽고 강력하게 할 수 있습니다.

에디터 컴포넌트는 위젯과 같이 특정 태그의 특정 속성을 이용해서 결과값으로 치환하는 구조를 가집니다.

역시 Context::transContent() 를 통해서 에디터 컴포넌트의 결과를 추출 치환을 하게 됩니다.

보통 div, img 태그에 대해서 아래와 같이 정의를 하여 사용할 수 있습니다.

  1. <div editor_component="에디터컴포넌트이름" 속성="값".. />

에디터컴포넌트이름으로 ./modules/editor/components/에디터컴포넌트 를 찾아서 실행을 시키고 결과를 받아 치환합니다.

엮인글 :
공헌자 :