Q&A

게시판 글 작성시 미리 입력된 글 다국어 출력 오류

2023.08.24 12:05
86
0
CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 7.4

스케치북 게시판, 기타 다른 게시판 모두 동일증상이네요 ㅠ 

 

사이트 다국어 설정 중 확인된 사항인데... 이게 계속 그래왔던 것인지, 이번에 2.1.3 업데이트 진행 후에 생긴 것인지는 잘 모르겠습니다;

 

증상은 게시판 설정의 "글 작성시 미리 입력된 글 출력"
이 기능에 다국어로 작성을 하고 저장을 하면 게시판 글쓰기 화면에 작성했던 다국어 내용이 나타나지 않고  $user_lang 코드가 노출되는 현상입니다.

 

현재 2.1.3. '23.08.21 디벨롭 패치까지 모두 적용한 상태인데 어떻게 수정하면 좋을까요ㅠ

 

1692878405681.png

1692878403512.png

 

본스티커 Lv. 1

댓글 9

  • 2023.08.24 14:44 #1782320
    여기 있는 escape 함수로 인해 생긴 문제 같네요.
    https://github.com/rhymix/rhymix-sketchbook/blob/f137bb37f24160e35501bd9f03973e9679a89e8c/write_form.html#L10
  • 2023.08.25 07:06 #1782522

    <input type="hidden" name="content" value="{escape($mi->content_default)}" />

    이 행이 문제가 되는 건가요? 혹시 해결방법은 없을까요 ㅠㅠ?

  • 2023.08.25 07:26 #1782535

    <input type="hidden" name="content" value="{$mi->content_default}" />

    느낌상 위와 같이 escape를 벗기면 될 것 같은데 이게 권장할 만한 방법인지는 잘 모르겠어요.
    '미리 입력된 글'에 html 코드 같은 건 쓸 일이 없다 싶으시면 위의 코드처럼 처리를 해도 되긴 하겠지만...
    예컨대 꺽쇠(< >) 같은 특수문자가 있을 때는 그걸 그냥 html 코드로 처리해버리는 문제가 있지 않나 싶어요.

    어떻게 하는 게 좀 더 합리적일지는 다른 분께 패스하겠습니다;;;

  • 2023.08.25 07:32 #1782540
    미리 입력된 글에 </br> 태그라던지 bold, color 등 요소를 넣긴 했었습니다.
    그런데, 그런게 없는 test , 테스트 이런 단어들에도 오류를 뿜어서...
    알려주신 코드대로 바꿔보겠습니다^^!!!
  • 2023.08.25 07:47 #1782546

    아, 이렇게 해보시겠어요?
    <input type="hidden" name="content" value="{escape($mi->content_default, true, true)}" />

    혹시나 해서 찾아봤는데 함수 자체에 다국어를 표현할 인수가 있는 것 같더라구요.
    https://github.com/rhymix/rhymix/blob/91efe04d7db226647b6308a515a5ab3d37bcd1c9/common/functions.php#L186-L198

  • 2023.08.25 07:52 #1782551

    {escape(Context::replaceUserLang($mi->content_default))}
    라이믹스 2.0.3 이상이라면 이렇게 명시적으로 다국어를 변환한 후 escape하는 방법도 있습니다.

    위에 쓰신 방법대로 하더라도 다국어 코드를 "건드리지 않을 뿐", 실제로 그 코드에 맞는 메시지를 찾아서 치환까지 해주는 것은 아니기 때문에, 결국 어딘가에서 다시 치환해 주어야 하는데 그 부분이 불안정할 수 있어요.

  • 2023.08.25 07:59 #1782561
    알려주신 방법대로 하니html 코드까지 완벽하게 잘 나타납니다. 감사합니다^^!!!
  • 2023.08.25 09:06 #1782610

    아하 그렇겠네요.
    어차피 html 코드조차 다국어 구문 안에 들어가는 것이니.
    말씀하신대로 다국어 변환 후 escape이 가장 합리적인 선택인 것 같습니다. yes

  • 2023.08.25 08:00 #1782565
    감사합니다^^!!!