포럼
1.5.0.4의 중요 버그 수정 - 테스트 부탁드립니다.
2011.10.11 09:52
안녕하세요, 행복한고니입니다.
먼저 믿고 사용해야 할 프로그램에 이런 물의를 일으켜 죄송하다는 말씀을 드립니다.
이번에 템플릿 엔진을 완전히 새로 만들면서 기존에 문제없이 사용했던 부분이 작동하지 않는 문제가 있었습니다.
주로 템플릿 문법과 사용자의 습관이 충돌하는 부분에서 발생했는데, 예를 들어...
<form onsubmit="jQuery(this).find('input').each({function(){if(this.title==this.value) this.value='';});">
와 같은 형태에서 에러가 발생했음을 확인했습니다.
아시다시피 {...}는 변수를 출력하는 템플릿 문법입니다. 템플릿 문법으로 해석하지 않으려면 { 뒤에 공백을 추가하면 되나, 그 전에는 이 부분에 대한 안내가 부족해서 저런 식으로 사용하셨던 것 같습니다. 공식 스킨에서는 이런 문법을 사용하지 않아 문제가 발생하지 않았던 것입니다.
우선은 템플릿 엔진을 수정하여 기존의 방식을 따르도록 해두었으나, 스펙에 의하면 문제가 생길 수도 있는 부분이므로 앞으로 제작하시는 분들은 가급적이면 스펙에 의해 작성해주시기를 부탁드립니다.
수정한 템플릿 엔진은 다시 배포하기 전에 먼저 테스트를 거치고자 합니다. 혹시 이 파일로 수정을 했는데도 문제가 계속된다 하시는 분은 사용 중인 레이아웃과 문제가 생긴 모듈의 스킨을 알려주시면 테스트 후 수정판을 배포하도록 하겠습니다.
첨부한 압축 파일을 풀면 TemplateHandler.class.php 파일이 나오는데 이 파일을 XE설치경로/classes/template 에 덮어씌운 후 정상적으로 동작하는지 확인해주시면 됩니다. 템플릿 엔진이 바뀌면 자동으로 캐시가 재생성되므로 캐시를 일부러 지우거나 새로 생성하지 않아도 됩니다.
감사합니다.
덧 // PHP4에서 실행시 버그가 발생하던 문제도 수정했습니다.
댓글 26
-
백성찬
2011.10.11 10:06
-
백성찬
2011.10.11 10:18
r9549
에러 동일.
참고로iis7.5
php는 5.3.8
mysql 5.5.16 입니다.
-
행복한고니
2011.10.11 10:19
제가 에러를 어떤 식으로 확인해볼 수 있을까요? ^^;
-
백성찬
2011.10.11 10:22
쪽지 보내겠습니다. 망가져도 상관없습니다. 즉 게시판이나 페이지등 모두 삭제해도 상관없습니다.
-
gayeon
2011.10.11 10:32
행복한고니님의 첨부파일을 사용하니...
board1.3.1 게시판의 xe official skin에서 발생하던 문제가 해결되었습니다.
하지만 파일 첨부 버튼은 여전히 먹통입니다.
그리고 bodex0.9.3(skin1.0)와 pxeboard.0.5.6는 오류가 발생합니다.
-
guny
2011.10.11 10:34
어차피 새 템플릿 엔진을 계속 사용하실거 아닌가요..
발생하는 문제 해결책을 구체적으로 알려주셔요..
아무리 봐도 어데다 빈칸을 더해줘야할지 모르겟네요...
-
행복한고니
2011.10.11 10:38
링크한 템플릿 문법 매뉴얼 '변수 이스케이프' 항목에 써있습니다.
위 본문에도 { 뒤에 공백을 추가하면 된다고 적어두었구요 ^^;
-
백성찬
2011.10.11 10:50
r9552
svn 업데이를 원하시면 마이피플로 쏘면 즉시 업데이트 하겠습니다. -
늘푸른나무2
2011.10.11 12:01
행복한고니님 안녕하세요,
위와 비슷한 if문이기는 하나... 아래는 for와 따옴표로 묶인 블럭제어문인 경우입니다.
추측되는 원인:(아래예문에서...)
<!--@end-->는 변환이 되었는데...
<!--@IF($pMonth == $i)--> 는 변환이 안되어 있습니다.
XE 버전: 1.5.0.4_beta (위에 올려준 패치 파일을 설치해도 결과는 동일 합니다.):
소스코드:
<!--@for($i=1; $i < 13; $i++)-->
<a style="float:left;" href="{$linkpath}&pYear={$pYear}&pMonth={$i}"><span class="month_button<!--@IF($pMonth == $i)-->_on<!--@end-->" title="{$i}월" >{$i}</span></a>
<!--@end-->
에러문:Parse error: syntax error, unexpected '}' in/host/home2/planner123/html/xe/files/cache/template_compiled/5fc8774d569ff1e49c2a5ffa12829185.compiled.php on line 55컴파일결과:
<?php for($__Context->i=1; $__Context->i < 13; $__Context->i++){ ?>
<a style="float:left;" href="<?php echo $__Context->linkpath ?>&pYear=<?php echo $__Context->pYear ?>&pMonth=<?php echo $__Context->i ?>"><span class="month_button<!--@IF($pMonth == $i)-->_on<?php } ?>"title="<?php echo $__Context->i ?>월" ><?php echo $__Context->i ?></span></a>
<?php } ?>
감사합니다.ksc -
늘푸른나무2
2011.10.11 13:49
원인을 찾았습니다.
대문자 @IF를 소문자 @if로 수정을 하니 작동이 됩니다.
흠... 앞으로는 대문자를 못쓰는 모양이지요?
감사합니다.
ksc
-
행복한고니
2011.10.11 14:30
네. 소문자만 허용합니다. ^^;
-
백성찬
2011.10.11 13:48
r9562
파일첨부 ok
게시판에서 로그인 ok
-
백성찬
2011.10.11 13:59
r9563
좌측의 글이 사라짐.
-
행복한고니
2011.10.11 15:30
r9576에서 수정되었습니다.
-
휘즈
2011.10.11 16:20
리비전 9577
레이아웃 편집 후 css파일 못읽어드립니다.
초기화 해도 마찬가집니다.
삭제후 재생성해야 한다는 . . .
다시해보니 초기화하면 다시 적용됩니다.
-
늘푸른나무2
2011.10.11 17:01
-
늘푸른나무2
2011.10.11 18:41
R9584로 수정되었다고 합니다.
감사합니다
ksc -
Cody
2011.10.11 17:11
패치하니까
1.5.0.4 업데이트 후 게시판 1.3.1 보드 스킨 중 XE Official 에서 일어나던 TemplateHandler 에러가 사라졌군요. 정상 작동합니다.
익스플로러8 사용 시 커서 안나타나던 문제 사라지고 이제는 정확하게만 찍으면 커서가 나타나는군요. 글도 써집니다.
공홈 메인페이지와 댓글목록 깨지는 현상은 여전한 것 같습니다.
-
이영제
2011.10.11 17:16
이미 파악을 하셨겠지만 게시판에서 분류를 사용하면 문제가 발생합니다. 확인결과 XE 기본 스킨에서만 문제가 없으며 다른 스킨들은 거의 문제를 일으킵니다.
-
Cody
2011.10.11 17:29
그렇군요. 분류 트리 상에서는 보여지지 않습니다만, 게시판에 들어가 목록을 확인해보면 생성한 분류가 나타나긴합니다.
분류생성 시 트리 구현 스크립트의 문제군요. 전에도 본 것 같은 현상입니다만, 이번 업데이트와도 연관이 있을지 모르겠네요.
패치 전 1.5.0.4에서는 어떤 현상이 있는지 미처 확인을 못해보았군요.
-
이영제
2011.10.11 17:31
'분류 관리'에서도 기존에 분류되어 있는 것이 보여지지 않습니다.
-
Cody
2011.10.11 18:05
네. 위에 적은 분류트리가 분류관리에서의 분류트리를 지칭한겁니다.
이 분류트리가 보여지지 않은 것은 1.5.0.4 업데이트로 인한 문제같군요.
1.5.0.3에서는 분류 트리가 2차, 3차까지 만드는대로 잘 보여지고 있습니다.
-
이영제
2011.10.11 17:38
게시판 관리에서 기존의 '확장변수' 지정된것도 안나타나는군요.
-
Cody
2011.10.11 18:00
확장변수는 1.5.0.3 때부터 1.5.0.4인 현재까지 추가하면 잘 나타나고 있습니다.
-
thisend
2011.10.11 18:18
공식사이트 댓글이 안달아짐.
근데 자기가쓴 게시물에 댓글은 달아짐.
다른사람 댓글의 답변댓글은 잘 적힘.
-
밧떼리
2011.10.11 19:22
헐.... 댓글 다는 에디터가 안보여서 글 작성을 못했는데..
그렇네요..
r9547
<form onsubmit="jQuery(this).find('input').each({function(){if(this.title==this.value) this.value='';});">
의 문제는 어제 해본 결과 위 소스가 없는 것으로 변경하면 되는 것인데, 파일첨부, 게시판 상단의 로그인 링크로 로그인(레이아웃의 좌측에 있는 로그인 폼은 잘 됨.) 등은 안됩니다.
이미 첨부 파일이 있는 게시물을 수정모드로 보면 첨부한 파일이 나타나지 않습니다.
설치 시 기본 레이아웃, 게시판도 기본(최상단), 에디터도 기본(엑스프레스)으로 있는 것입니다.
테스트용으로 설치 한 것이라 게시판 두개 페이지 추가로 하나 한 상태입니다.