위와 같이 작성한 클래스 파일을 컴포넌트를 담을 플러그인에 생성합니다. 파일의 위치는 플러그인 디렉토리 내의 어느 곳이든 상관없습니다. 다만 플러그인 디렉토리의 src/UIObjects/ImageUIObject.php에 생성하는 것을 권장합니다.
출력코드 작성하기
클래스를 생성하였다면, render 메소드를 구현합니다.
render 메소드에서는 입력된 파라미터를 사용하여 출력할 html 스트링을 생성한 다음, $this->template 변수에 저장합니다.
마지막으로는 반드시 return parent::render()를 해주어야 합니다. parent::render() 메소드는 $callback 입력이 있는지 검사하고, $callback를 자동으로 실행해주는 역할을 합니다.
UI오브젝트 등록하기
작성한 UI오브젝트 클래스는 다른 컴포넌트와 마찬가지로 XE에 등록해야 합니다. UI오브젝트는 uiobject/<plugin_name>@<pure_id> 형식의 컴포넌트 아이디를 지정해야 합니다. 여기에서는 uiobject/myplugin@image를 아이디로 사용하겠습니다.
등록 방법은 컴포넌트 등록 문서를 참고하시기 바랍니다.
성공적으로 등록되었는지 아래 코드로 테스트해 볼 수 있습니다.
alias 등록하기
위 예제에서 생성한 UI오브젝트의 아이디는 uiobject/myplugin@image로 꽤 복잡합니다. XE에서는 UI오브젝트에 별칭(alias)를 지정할 수 있습니다. 별칭이 지정된 UI오브젝트는 실제 아이디 대신 별칭을 사용할 수 있습니다. UI오브젝트의 별칭은 사이트 관리자가 config/xe.php의 uiobject > aliases 항목에 지정할 수 있으며, 코드상에서는 아래의 방법으로 지정할 수 있습니다.
위 예제에서 제작한 UI오브젝트에 image라는 별칭을 아래와 같이 지정할 수 있습니다.
위와 같이 지정한 이후부터는 별칭을 사용할 수 있습니다.
폼 관련 UI오브젝트
config/xe.php에 지정된 UI오브젝트의 별칭 목록입니다.
위 별칭 목록 중에 form*의 형식으로 등록된 UI오브젝트가 있습니다. 이 UI오브젝트들은 의미 그대로 폼을 구성할 때 사용할 수 있는 UI오브젝트들입니다. 이 UI오브젝트들은 테마나 스킨, 위젯와 같은 컴포넌트가 사이트 관리자에게 설정 폼을 출력할 때 사용됩니다. 폼 관련 UI오브젝트의 사용법은 폼 출력 문서에서 자세히 설명합니다.
폼 관련 UI오브젝트로 등록되는 UI오브젝트는 몇가지 규칙이 준수해야 합니다.
아래의 마크업 형식으로 출력해야 합니다. (이 마크업 형식은 bootstrap 형식을 따르고 있습니다.)
label, description 파라미터를 받아서 처리할 수 있어야 합니다. label은 폼요소의 라벨 문자열입니다. <label for=""></label>에 출력되어야 합니다. description은 <p class="help-block"></p>에 출력될 폼 요소에 대한 설명입니다.
id, name 필드를 파라미터로 받아서 처리할 수 있어야 합니다. 이 두 필드는 실제 폼 요소의 애트리뷰트로 지정됩니다. id 필드는 label의 for 애트리뷰트의 값으로도 지정해주어야 합니다.
values 파라미터를 받아서 처리할 수 있어야 합니다. values는 폼 요소에 지정할 값(value)입니다. values의 형식은 각 폼요소마다 다릅니다.