a-blog cms에서 IF 블록이 제대로 작동하지 않거나 페이지가 깨진 경우의 원인

1928 단어 ablogcmsCMS

잠시 빠져서 공유합니다.
다음 조건에서 IF 블록이 제대로 작동하지 않습니다.
  • 조건부 분기 = IF 블록 인수에 사용자 정의 필드를 사용합니다.
  • 사용자 정의 필드 값의 줄 바꿈 코드를 제거하지 않았습니다.

  • 즉, 해당 IF 블록을 레이아웃에 사용하면 입력 내용에 개행 코드가 들어가면 페이지가 무너집니다.

    경위



    발단



    리드 문장을 만드는 템플릿을 만들었습니다. 맞춤 입력란은 {sample_text}로 가정합니다.

    다중 행 필드 {sample_text}에는 문자 크기 조정 등으로 span 요소가 들어갈 가능성이 있어 굳이 인코딩하고 있지 않습니다 (교정 옵션 [raw] 을 부여하고 있습니다).
    또한 제목을 사용하지 않을 수 있으므로 IF 블록에 내용이 입력되었는지 여부를 결정합니다.

    acms_if_not_delnl.html
    <!-- BEGIN_IF [{sample_text}/nem] -->
    <div class="sample-text">{sample_text}[raw]</div>
    <!-- END_IF -->
    

    문제 발생



    당초는 이것으로 문제 없었습니다만, 코드를 읽기 쉽게 하기 위해 개행을 넣으면, 사이트 전체가 무너졌습니다.

    해결



    a-blog cms의 교정 옵션에는 줄 바꿈 코드를 제거하는 [delnl]이 있습니다. 이것을 IF 블록의 인수의 필드에 부여했는데 버그가 해소되었습니다.
    「하늘이 아닌」 것이 판명하면 좋기 때문에, 처음부터 이렇게 해 두어야 했습니다. 오히려 HTML 태그도 제거할 수 있습니다.

    acms_if_delnl.html
    <!-- BEGIN_IF [{sample_text}[delnl]/nem] -->
    <div class="sample-text">{sample_text}[raw]</div>
    <!-- END_IF -->
    

    참고


  • IF 블록
  • 교정 옵션
  • 좋은 웹페이지 즐겨찾기