게시판 글 작성시 미리 입력된 글 다국어 출력 오류
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
스케치북 게시판, 기타 다른 게시판 모두 동일증상이네요 ㅠ
사이트 다국어 설정 중 확인된 사항인데... 이게 계속 그래왔던 것인지, 이번에 2.1.3 업데이트 진행 후에 생긴 것인지는 잘 모르겠습니다;
증상은 게시판 설정의 "글 작성시 미리 입력된 글 출력"
이 기능에 다국어로 작성을 하고 저장을 하면 게시판 글쓰기 화면에 작성했던 다국어 내용이 나타나지 않고 $user_lang 코드가 노출되는 현상입니다.
현재 2.1.3. '23.08.21 디벨롭 패치까지 모두 적용한 상태인데 어떻게 수정하면 좋을까요ㅠ
본스티커
Lv. 1
댓글 9
https://github.com/rhymix/rhymix-sketchbook/blob/f137bb37f24160e35501bd9f03973e9679a89e8c/write_form.html#L10
<input type="hidden" name="content" value="{escape($mi->content_default)}" />
이 행이 문제가 되는 건가요? 혹시 해결방법은 없을까요 ㅠㅠ?
<input type="hidden" name="content" value="{$mi->content_default}" />
느낌상 위와 같이 escape를 벗기면 될 것 같은데 이게 권장할 만한 방법인지는 잘 모르겠어요.
'미리 입력된 글'에 html 코드 같은 건 쓸 일이 없다 싶으시면 위의 코드처럼 처리를 해도 되긴 하겠지만...
예컨대 꺽쇠(< >) 같은 특수문자가 있을 때는 그걸 그냥 html 코드로 처리해버리는 문제가 있지 않나 싶어요.
어떻게 하는 게 좀 더 합리적일지는 다른 분께 패스하겠습니다;;;
그런데, 그런게 없는 test , 테스트 이런 단어들에도 오류를 뿜어서...
알려주신 코드대로 바꿔보겠습니다^^!!!
아, 이렇게 해보시겠어요?
<input type="hidden" name="content" value="{escape($mi->content_default, true, true)}" />
혹시나 해서 찾아봤는데 함수 자체에 다국어를 표현할 인수가 있는 것 같더라구요.
https://github.com/rhymix/rhymix/blob/91efe04d7db226647b6308a515a5ab3d37bcd1c9/common/functions.php#L186-L198
{escape(Context::replaceUserLang($mi->content_default))}
라이믹스 2.0.3 이상이라면 이렇게 명시적으로 다국어를 변환한 후 escape하는 방법도 있습니다.
위에 쓰신 방법대로 하더라도 다국어 코드를 "건드리지 않을 뿐", 실제로 그 코드에 맞는 메시지를 찾아서 치환까지 해주는 것은 아니기 때문에, 결국 어딘가에서 다시 치환해 주어야 하는데 그 부분이 불안정할 수 있어요.
아하 그렇겠네요.
어차피 html 코드조차 다국어 구문 안에 들어가는 것이니.
말씀하신대로 다국어 변환 후 escape이 가장 합리적인 선택인 것 같습니다.