XE, XpressEngine 1.8.20 기준.
사진 파일 첨부를 위해 ckeditor를 적용했고,
[xe, xpressengine - 모바일 ckeditor적용, 사진 파일 첨부]
ckeditor를 적용하니 ckeditor가 자연스럽게 적용되지 않아 모바일 여부 확인하여 툴바를 접고 높이를 줄이도록 하였다.
[xe, xpressengine - 모바일에서 ckeditor 크기줄이기, 툴바접기]
하지만 또 발생하는 문제는
ckeditor로 글을 작성할 경우 기본적으로 html 모드이고
모든 엔터가 nl2br 처리 되어 두번엔터된 효과가 나타났다.
해결은 글 입력/수정 시 모바일여부를 확인하고 nl2br을 붙여주는 부분을 수정한다.
파일 : xe/modules/document/document.controller.php
2곳을 고쳐야한다.
위 파일을 열어 Mobile로 검색해보면, 284라인(insertDocument)과 486라인(updateDocument) 근처에 다음과 같이 되어있다.
if(Mobile::isFromMobilePhone())
{
if($obj->use_html != 'Y')
{
$obj->content = htmlspecialchars($obj->content, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);
}
$obj->content = nl2br($obj->content);
}
아래처럼 if문 안으로 수정한다.
if(Mobile::isFromMobilePhone())
{
if($obj->use_html != 'Y')
{
$obj->content = htmlspecialchars($obj->content, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);
$obj->content = nl2br($obj->content);
}
}
모바일에서 html 모드일 경우 "<br>" 태그를 입력하기 너무 번거롭기 때문에 이렇게 작성되어있지만 아예 위즈윅에디터를 적용했기 때문에 자동으로 줄넘김 태그로 변환해줄 필요가 없기 때문.