묻고답하기
Parse error: syntax error, unexpected '}' .... 문제
2011.12.16 14:27
이틀 전에 1.5로 업그레이드를 했습니다.
약간씩의 문제가 있는 것은 나름대로 해결했는데, 마지막 하나가 해결할 방법을 모르겠습니다.
Parse error: syntax error, unexpected '}' in /www/truespedu_org/classes/template/TemplateHandler.class.php(280) : eval()'d code on line 5
라는 메세지가 뜨는데요, XE홈의 여러곳을 검색해 보니, 비슷한 경우가 있었습니다. 하지만 이것들의 해법은 제게 맞지 않습니다.
예전에 "소마세월"님이 배포하셨던 졸졸이 스토커(alway_stalker)라는 위젯을 넣으면 문제가 발생합니다.
혹시 제가 사용하는 레이아웃에도 문제가 있을 것 같아서 새 페이지를 만들고 공식 배포된 1.5의 레이아웃을 덮은 후 테스트 해 봐도 똑같은 메세지가 뜨더군요. 나름대로 해당 위젯의 alway_stalker.class.php 파일을 출력해서 하나하나 봐도 .... 뭔지 모르겠습니다.^^
해당 alway_stalker.class.php 파일
<?php
/**
* @class alway_stalker
* @author 소마세월 (withgoodman@naver.com)
* @brief 졸졸 따라다녀요
* @version 0.1
**/
class alway_stalker extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
*
* ./widgets/위젯/conf/info.xml 에 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 레이아웃 형태
$widget_info->addon_position = (int)$args->addon_position;
if(!$widget_info->addon_position) $widget_info->addon_position = 1;
//졸졸이 동작
$widget_info->addon_hold = (int)$args->addon_hold;
// 움직임 기준점
$widget_info->addon_basic = (int)$args->addon_basic;
// 레이아웃 넓이
$widget_info->addon_width = (int)$args->addon_width ;
// 졸졸이 좌측 좌표
$widget_info->addon_left = $args->addon_left;
// 졸졸이 상단좌표
$widget_info->addon_top = (int)$args->addon_top;
// 졸졸이 하단 한계치
$widget_info->addon_bottom = (int)$args->addon_bottom;
// 졸졸이 스크롤시 상단 갭
$widget_info->addon_top_gap = (int)$args->addon_top_gap;
// 졸졸이 스크롤 속도
$widget_info->addon_scroll_speed = (int)$args->addon_scroll_speed;
// 졸졸이 스크롤 인식속도
$widget_info->addon_activate_speed = (int)$args->addon_activate_speed;
// 졸졸이 스크롤 간격
$widget_info->addon_scroll_move = (int)$args->addon_scroll_move;
if($widget_info->addon_scroll_move<1)$widget_info->addon_scroll_move=1;
//졸졸이 갯수 여러개 만들수 있도록 구분할 수 있는 숫자 생성
$time=rand(1,100000);
$widget_info->seq = $time;
//사용자 지정 html
$widget_info->addon_textarea = trim($this->unHtmlSpecialChars($args->addon_textarea));
//만약 아무것도 없으면..
Context::set('widget_info'+ ', $widget_info);
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
Context::set('colorset', $args->colorset);
// 템플릿 파일을 지정
$tpl_file = 'stalker';
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
$output = $oTemplate->compile($tpl_path, $tpl_file);
return $output;
}
function unHtmlSpecialChars( $string )
{
$string = str_replace ( '&', '&', $string );
$string = str_replace ( ''', '\'', $string );
$string = str_replace ( '"', '\"', $string );
$string = str_replace ( '<', '<', $string );
$string = str_replace ( '>', '>', $string );
return $string;
}
}
?>
전체 파일을 첨부했습니다.
어떻게 수정하면 될까요? 이 alway_stalker.class.php의 문제가 아니면 다른 파일의 문제일까요?
1.5로 변화되면서 무엇이 문제였는지 알고 싶습니다.(문제를 알아도 나중에 기억을 하지 못하지만 메모해 놓고 다른 위젯 등에 문제가 있을 때 스스로 한 번 수정해 보려고 합니다.)
혹시 이런 문제가 있을 때 쉽게 원인을 찾울 수 있는 툴은 없는지요?(이것도 궁금하네요.^^)
댓글 2
-
영구만세
2011.12.16 15:04
-
영구만세
2011.12.16 17:25
백성찬님의 홈(HappyScience)에서 svn으로 받은 최신 코어를 받아서 설치하니 그냥 해결되는군요..헐...
자답)^^
은동님 왈 php의 문제가 아니라 html의 문제라고 하는군요. 좀 더 알아보고 그때도 모르면 한 번 더 질문을 해 보겠습니다.
감사합니다.^^