https://github.com/xpressengine/xe-core/issues/2237

 

물론 서버세팅은 전문가님이 해주시고 알려진 조치는 모두 한 상태이지만..

 

cond 문법이 안먹혀서 if 문으로 고치는 경우가 종종 생깁니다.

어라.. 이상하다.. 저게 왜 출력되지 ??? 보면 cond

 

이거 코어에서 해결이 안되는 건가요... 

  • ?
    https://github.com/xpressengine/xe-core/issues/2220
  • ? profile
    아직 진행중인가요 ? 이거 오래된 문제인데 해결이 안되고 있어서요.
  • profile ?
    코스트가 다른 이슈에 비해 비중이 커서 해결하는데 오래걸릴것 같아요.
  • profile

    저게 은근히 고치기 힘들어요 ㅜㅜ

    서버 환경, 템플릿 파일의 정확한 내용, 경로 등이 모두 일치해야 증상 재현이 가능합니다.

  • profile profile

    저번에 포인트러쉬 모듈 처럼 굉장히 긴 템플릿 의 경우 문제가 발생하고
    그리고 이상없던 템플릿에서도 랜덤하게 발생한는 듯 합니다. 저번에 프로필 이미지 관련 코드를 질문하게 된 이유가..

    오늘도 댓글출력 파일 안에 cond 조건에 프로필이미지가 있다면 이라는 조건으로 작성해 놓은 코드가 조건이 먹지 않아 프로필이미지가 없는 회원들이 엑박으로 나오더군요. if 문으로 바꿔서 처리했습니다.

    cond"조건"

    조건의 글자수가 길어도 영향을 받지 않을까 하는 상상도 하게 됩니다.

  • profile profile
    정확히 어떤 태그 구조에서 어떤 cond를 사용하셨는지 알려주실 수 있으면 도움이 되겠습니다. 템플릿 용량이 크지 않은데도 문제가 생긴다면 중간에 들어간 ' " < > { } 등의 특수문자가 혼란을 일으키고 있을 가능성이 큽니다.
  • profile profile
    cond="$comment->getProfileImage()"

    () 이부분이 문제인 것 같아요. 이게 한번이 아니고 여러번 다른 템플릿에서 문제가 되는 듯 합니다.
  • ?
    이 문제...
    서버에 따라서 발생하는건데 ( 서버의 어느 설정때문인지는 제가 서버는 잘 몰라서 )
    소스 길이에 따라 발생하는 현상입니다.
    소스가 길때는 XE 신문법을 해석을 제대로 못하는 경우가 생기더군요.
    ( 같은 소스로 다른 서버에서는 정상 작동하거든요. 이때까지 이런 서버 딱 2번 봤어요 )

    신문법을 구문법으로 다 교체하거나.. ( cond 를 if 로 변경하면 당연히 해결되고 )
    아니면 주석처리했거나 안 쓰는 부분들을 지워서 소스의 길이를 줄이면 해결되거나..
    기억이 조금 가물한데, 긴 소스의 일부를 다른 파일로 옮기고 include 로 처리해도 해결되었던걸로 기억합니다.

    그래서 전 처음에는 신문법을 좀 쓰려다가, 어느순간부터 신문법을 아예 안 씁니다. 이 경우 때문에..
  • ? profile
    말씀하신 부분은 저도 같은 상황이긴 하지만 개발해서 사용하는 개발자라면 회피해서 만들면 되지만 저 같은 사용자는 다양한 제작자분이 만든 자료를 사용해야해서 문제가 발생할때 고쳐서 쓰거나 못하면 자료를 포기해야 하는 경우가 생기죠.

    빠른 해법이 나오면 좋겠습니다.
  • ? profile
    소스 길이와 관련된 설정은 pcre.backtrack_limit인데, 이걸 넉넉하게 해놔도 해석을 잘못해서 꼬이는 경우가 있는 것 같더군요.

    cond와 loop는 해당 태그가 끝나는 지점을 정규식으로 찾아야 하는데, 중간에 다른 태그와 각종 XE 문법, CSS, JS 등이 끼어들면 끝나는 지점을 찾기가 쉽지 않으니 불안정할 수밖에 없는 기능이지요 ㅠㅠ 제대로 지원하지 못할 거면 처음부터 만들지 말았어야 하는데...
  • profile ?
    이게 명확치가 않더라고요.
    복잡한 cond 이 아니라 그냥 정말 단순한 cond 구문 인데도 이런 현상으로 에러날때는
    문법이 아닌 일반 html 부분만 지워 소스 길이를 줄여버려도 정상작동을 다시 해요 ( 정확히 길이 문제였어요. 에러나는 길이를 딱 찾아서 단어 하나 추가했다가 뺐다하면 에러가 났다가 안 났다가 했어요 )
    즉, 신문법이 복잡해 꼬이는 현상이 아닐수도 있다는거죠. 전 서버의 해석능력이라 생각했었는데 그것도 아닌가보네요

    신문법이 좀 더 소스를 줄이고 가독성을 높이기 위해 만들어졌다지만..
    elseif 가 안 되고, if 내부에 다시 if 문을 추가로 넣지 못하는 한계들 때문에
    이런 오류가 없어도 개인적으로는 아예 안 쓰는 문법이되어버렸죠. (
  • profile profile
    저희가 넉넉히 해도 굉장히 긴 템플릿은 문제가 되서 별도파일로 옮기고 해결했던 케이스죠....