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>" 태그를 입력하기 너무 번거롭기 때문에 이렇게 작성되어있지만 아예 위즈윅에디터를 적용했기 때문에 자동으로 줄넘김 태그로 변환해줄 필요가 없기 때문.


Posted by freezn