Q&A

CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 7.4

위젯에서 홑따옴표 ' 가 ' 로 출력이 되는데 해결 방법이 있을까요?

 

{$item->getTitle($widget_info->subject_cut_size)} 이부분을

{$item->getTitle()} 이와 같이 수정하고  css에서  text-overflow: ellipsis; 로 처리를 하긴 했는데

 

$widget_info->subject_cut_size 이부분이 들어가면 특수문자가 출력되네요. 

 

 

똑띠 Lv. 6

댓글 8

  • 2025.05.13 21:05 #1907672

    매뉴얼 https://rhymix.org/manual/theme/template_v1#%EC%B6%9C%EB%A0%A5_%ED%95%84%ED%84%B0

    에서 안내처럼 {$item->getTitle($widget_info->subject_cut_size)|noescape} 이렇게 처리하면 되지않을까요?

  • 2025.05.13 23:33 #1907681

    아.. {htmlspecialchars_decode($item->getTitle($widget_info->subject_cut_size))} 이렇게 해결을 해서 사용했는데, 안되다가 다시되네요..ㅠ.ㅠ

    다른 사이트에 신규로 셋팅하고 테스트 하니 됩니다. 

    {$item->getTitle($widget_info->subject_cut_size)|noescape} 는 안되구요.

  • 2025.05.13 21:44 #1907676

    라이믹스 최신 버전에 기본 포함된 content 위젯인가요? 아니면 다른 위젯인가요?

     

    2016년 초에 제목 escape하는 방식이 바뀌었는데, 거기에 맞추어 수정하지 않은 위젯이나 위젯 스킨이라면 일부 특수문자가 이중으로 escape될 수 있습니다. 게시판 스킨도 오래된 것을 사용하면 글을 수정할 때마다 특수문자가 계속 붙는 경우가 있고요.

  • 2025.05.13 23:34 #1907685

    최신버전에서 테스트 하고 안되어서 질문 남겼는데, 신규로 사이트 셋팅하고 신규셋팅한 곳에 기존처럼

     {htmlspecialchars_decode($item->getTitle($widget_info->subject_cut_size))}  로 변경하니 되네요. 

    컴퓨터 캐시문제였는지...

  • 2025.05.14 00:17 #1907690

    htmlspecialchars_decode를 넣는다면 당연히 될 겁니다. 제목에 해괴한 특수문자가 들어 있을 수도 있으니, 뒤에 |autoescape 하나 더 붙여 주면 안성맞춤이고요.

     

    그러나 최신 라이믹스에서 content 위젯을 사용하면 (기본 스킨 기준) 그냥 getTitle($widget_info->subject_cut_size)만 해도 정확하게 나오는 것이 정상이거든요. 혹시 다른 스킨인가요?

  • 2025.05.14 00:58 #1907694

    사무실 컴퓨터가 일하기 싫은가 보네요..ㅡㅡ;;

    집에와서 테스트 해보니 기본 content 위젯에서 getTitle($widget_info->subject_cut_size) 이걸로도 잘 노출 됩니다. 

  • 2025.05.14 01:23 #1907698

    저도 인지 못하고 있다가 사용자분중 한분이 알려 주셔서 알게된 부분인데. 

    일반적인 게시글 제목은 문제 없지만 댓글을 불러오는 경우 엔티티가 깨져서 나오는 경우가 있더라구요. 저는  html_entity_decode 로 해결하긴 했는데. 뭔가 신경이 쓰이는 느낌은 남네요. 

  • 2025.05.14 02:47 #1907702

    html_entity_decode 후에 autoescape 필터를 붙이거나,

    escape(내용, false) 이렇게 이중 인코딩되지 않는 방법으로 한 번 걸러 주면 안전합니다.