웹마스터 팁

사이트에 접속하면 탭에 제목을 보여주는 부분이 있습니다.
XE의 경우 일반적으로 모듈의 이름이나 문서의 제목을 보여주게 되어있습니다.
이를 각 페이지마다 사이트제목과 함께 보여주는 간단한 애드온을 제작하는 방법을 살펴보겠습니다.

XE로 여러개의 사이트를 운영하고 있습니다. 이중 일반 게시판부분은 그래도 구분이 가능하지만 관리자페이지는 모든 제목이 "XE Admin Page'로 모두다 똑같습니다. 가끔 사이트를 착각해서 엉뚱한 작업을 하는 실수가 자주 생겨서 관리자페이지를 사이트마다 구분하는 방법을 찾다고 제작한 애드온입니다. 말이 프로그램이지 conf/info.xml과 12줄짜리 php로 구성된 초간단 애드온입니다. 제작하는데 테스트까지 해서 10분쯤 걸렸을겁니다.

st1.png st2.png

애드온을 적용하기 전에는 어떤 사이트인지 구분이 되지 않지만 애드온을 적용하면 사이트의 제목을 표시해주기 때문에 구분이 쉽고 실수도 적어질겁니다.

이미 비슷한 애드온도 있고 해서 정식배포보다는 제작법 소개를 올리도록 하겠습니다.

먼저 폴더이름을 만듭니다.
폴더이름은 애드온의 이름과 직결되기 때문에 이해하기 쉬운 것으로 하는 것이 좋을 것같습니다.
우선은 ./addons 폴더에 site_title이라는 폴더를 만듭니다.
새로 만들어진 site_title 폴더로 이동해서 conf 라는 폴더를 하나 만듭니다.

가장 먼저 해야할 일은 이 conf 폴더에 info.xml을 생성하는  것입니다.
info.xml은 XML 화일이기 때문에
<?xml version="1.0" encoding="utf-8"?>
<태그>
</태그> 의 기본 구조로 생성됩니다.
여기에서 태그는 XML의 속성을 나타내는 것으로 addon이기 때문에
<?xml version="1.0" encoding="utf-8"?>
<addon version="0.2">
</addon>
의 구조로 만들어집니다. 이것만으로도 기본요소는 갖추어져 있기 때문에 에러는 발생하지 않습니다.
관리자페이지에서 보면 제목없는 애드온이 하나 생겨있을 겁니다.
st3.png
기왕이면
<?xml version="1.0" encoding="utf-8"?>
<addon version="0.2">
    <title xml:lang="ko">사이트 제목변경</title>
</addon>
까지 해주면 애드온에 제목도 생기고 설정화면도 뜨게 됩니다.
다만 설명이나 제작자, 제작일자등의 정보가 다 누락되어있을겁니다.
sb4.png  K-20110325-152854-7.png


다음 소스가 info.xml의 완성된 모양입니다.

01.<?xml version="1.0" encoding="utf-8"?>
02.<addon version="0.2">
03.<title xml:lang="ko">사이트 제목변경</title>
04.<description xml:lang="ko">
05.업로드 되었으나 본문삽입을 하지 않은 이미지를 찾아서 강제로 출력시키는 애드온입니다.
06.</description>
07.<version>0.5.2</version>
08.<date>2011-3-18</date>
09.<author email_address="soonj@nate.com" link="http://www.wildgreen.co.kr">
10.<name xml:lang="ko">카르마</name>
11.</author>
13.<extra_vars>
14.<var name="site_title" type="text">
15.<title xml:lang="ko">사이트 이름</title>
16.<description xml:lang="ko">브라우저에 표시할 제목의 머릿말을 입력할 수 있습니다.</description>
17.</var>
18.</extra_vars>
19.</addon>


이제 폴더를 하나 위로 올라가서 php 화일을 만들어줘야할 때입니다.
폴더 제목이 site_title 인 경우 애드온 화일의 이름은 site_title.addon.php입니다.
만약 폴더 이름을 다른 것으로 사용하셨다면 이 또한 바뀌어야합니다.
예를 들어 xxx_aaa로 폴더 이름을 만들었다면 화일이름도 xxx_aaa.addon.php로 되어야합니다.

01.<?php
02.if(!defined("__ZBXE__")) exit();
03.// 화면에 디스플레이 할때만 동작
04.if($called_position != "before_display_content"return;
05. 
06./* 관리자페이지에서만 동작시키고 싶을때...
07.if(Context::get('module') !='admin') return;
08.*/
09. 
10.//모듈정보 가져오기...
11.$oAdminModuleModel = &getAdminModel('module');
12.$module_info=Context::get('module_info');
13. 
14.//설정에서 입력한 사이트제목을 선택한 언어설정에 맞게...
15.$title_arr $oAdminModuleModel->getLangCode(0, $addon_info->site_title);
16.$lang_type =Context::getLangType();
17.$title $title_arr[$lang_type];
18. 
19.// 제목변경
20.Context::setBrowserTitle($title.Context::getBrowserTitle());
21.?>

이상입니다.

사용시 주의사항은 현재 XE의 애드온을 관리자페이지에서만 동작하게 설정하는 방법이 아직 없습니다.
따라서 설정에서 어떤 모듈이든지 체크를 하게 되면 해당 모듈에서만 동작합니다.
기타모듈은 물론 관리자페이지에서도 동작하지 않습니다.
따라서 관리자페이지에서 사용하려면 모듈선택시 아무것도 체크하지 않아야합니다.

비록 간단해보이는 애드온이지만 선택한 언어에 맞춰서 제목도 변경되게 할 수 있습니다.
설정의 사이트제목 입력칸 우측의 수레바퀴를 클릭해서 언어별로 제목 입력이 가능합니다.K-20110325-151716-4.png K-20110325-153533-9.png http://backupxe.com/4111 
http://backupxe.com/relfeed/4100 참조