웹마스터 팁

Firefox에서 코드 하이라이터로 되어있는 글을 긁어왔더니 줄과 줄 사이에 너무 큰 여백이 생겨버립니다. 
그리고 코드 하이라이터가 적용되어 있던 부분은 줄 바꿈이 무시되네요.;; 긁지 말고 손수 공들여 쓰라는 계시인가봐요. 어후어후.

팁이라고 하기엔 고수분들이나 문법 변경 내역을 아는 분들에게는 별로 도움이 되지 않는 내용입니다만, 
그래도 모르시는 분들이 있을 것 같아 적어봅니다. (질답게시판에 꾸준히 질문이 올라오고 있기도 하고요.) 
도움이 되었으면 좋겠네요. :)


1. [레이아웃 설정]의 선택상자 항목이 나타나지 않는 경우


선택상자 항목 오류는 XE 코어 1.4.5.x 버전으로 업데이트 후 제일 자주 보고되었던 레이아웃 오류로,
자유게시판의 sejin7940님께서 해결책을 제시해주셨습니다.
오류가 발생하는 레이아웃의 info.xml (혹은 conf/info.xml) 을 텍스트에디터로 열어 제일 윗 줄을 살펴 보시면 아래와 같은 소스가 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<layout version="1.0">


이 소스를 아래와 같이 바꿔줍니다.

<?xml version="1.0" encoding="UTF-8"?> <layout version="0.2">
<version>1.0</version>


수정 후 info.xml을 저장하고 FTP로 계정에 접속하여 기존 레이아웃의 info.xml에 덮어씌워주신 후
캐시파일 재생성을 해주시면 정상적으로 선택상자 항목이 나타납니다.


2. [레이아웃 설정]의 선택상자 항목이 하나만 나타나는 경우

업데이트 후 레이아웃의 컬러셋 등의 항목이 하나만 나타나 선택을 할 수 없게 되는 경우입니다.
(참고 : 이 때에는 설정을 따로 건드리기 전까진 기존 설정이 그대로 유지됩니다.
그러나, 실수로라도 [저장]을 눌러 설정을 변경하게 되면 선택상자에 나타나는 항목들로 레이아웃 설정이 모두 변경됩니다.)
오류가 발생하는 레이아웃의 info.xml을 텍스트에디터로 열어 선택항목을 찾습니다.
type="select"를 검색하시거나, 각 항목의 메뉴 이름을 확인해서 찾으시면 됩니다.
선택항목의 option 부분을 보시면 아래와 같이 작성이 되어 있습니다.
(예제는 컬러셋 항목으로, 언어 설정 부분은 생략하였습니다.)

<options name="default"> <!-- 선택항목 default의 이름 -->
<title xml:lang="ko">기본</title>

<value>default</value> <!-- 선택항목 default의 값 -->

</options>

<options name="gray"> <!-- 선택항목 gray의 이름 -->

<title xml:lang="ko">검은색</title>

<value>gray</value> <!-- 선택항목 gray의 값 -->

</options>


소스를 보시면 <options name="~">과 <value>로 항목이 정의되어 있습니다.
여기서 <value>~</value>는 삭제하시고 <options name="~">은 <options value="~">로 바꿔줍니다.
수정 후의 소스는 아래와 같습니다.

<options value="default">
<title xml:lang="ko">기본</title>

</options>

<options value="gray">

<title xml:lang="ko">검은색</title>

</options>


수정한 info.xml을 FTP로 기존 레이아웃 info.xml에 덮어씌운 후 캐시를 정리하시면 레이아웃 설정의 항목이 제대로 나타납니다.


3. 레이아웃의 컬러셋이 적용되지 않고 기본으로만 나오는 경우

업데이트 후 레이아웃의 컬러셋 설정을 무시하고 무조건 기본 컬러셋으로만 나타나는 오류입니다.
이 경우에는 레이아웃 설정을 건드리지 않았더라도 무조건 기본 컬러셋으로 변경되어 나타납니다.
(HTML에 작성된 소스에 따라서는 기본 컬러셋이 아닌 컬러셋 항목 중 마지막 컬러셋이 적용되어 나타나는 경우도 있습니다.)
관리자 페이지 > [레이아웃] > [레이아웃 편집] 메뉴를 열어 HTML 소스 제일 윗 부분, js와 css를 불러오는 구문을 찾습니다.

<!-- js 파일 import -->
<!--%import("js/xe_test_1.0.js")-->
 

<!-- 레이아웃과 연동될 css 파일 import -->

<!--@if($layout_info->colorset == "gray")-->

<!--%import("css/gray.css")-->

<!--@else-->

<!--%import("css/default.css")-->

<!--@end-->

<!--@if(!$layout_info->colorset)-->

{@$layout_info->colorset = "default"}

<!--@end-->


예제는 gray와 default 두 개의 컬러셋을 사용하고 있는 레이아웃의 소스입니다.
위의 소스와 비슷한 부분을 찾으신 후, <!--%import("js폴더/js파일명")-->을 <load target="js폴더/js파일명" />으로 수정합니다.
그리고 컬러셋에 따른 css호출 부분 (!--@if에서 !--@end까지의 구문) 을
<load target="css폴더명/css파일명" cond="$layout_info->colorset=='컬러셋이름(value)'" />로 수정
합니다.
컬러셋의 항목을 하나하나 load target으로 불러줘야 하기 때문에 load target은 컬러셋의 수 만큼 있어야 합니다.
예제의 소스를 수정한 뒤의 모습은 아래와 같습니다.

<!-- js 파일 load -->
<load target="js/xe_test_1.0.js" />


<!-- 레이아웃과 연동될 css 파일 load -->

<load target="css/default.css" cond="$layout_info->colorset=='default'" />

<load target="css/gray.css" cond="$layout_info->colorset=='gray'" />