타임라인 모듈 오류
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.3 |
타임라인 모듈을 깔고, 'object'와 관련된 것들은 모두 'baseobject'로 바꾸어주었습니다. 그런데 이 뒤로
Fatal error: Uncaught Error: Call to undefined method timelineController::setModule() in /host/home1/도메인이름/html/classes/module/ModuleHandler.class.php:1235 Stack trace: #0 /host/home1/도메인이름/html/config/func.inc.php(81): ModuleHandler::getModuleInstance('timeline', 'controller', 'svc') #1 /host/home1/도메인이름/html/classes/module/ModuleHandler.class.php(1329): getModule('timeline', 'controller') #2 /host/home1/도메인이름/html/classes/module/ModuleHandler.class.php(101): ModuleHandler->triggerCall('moduleHandler.i...', 'before', Object(ModuleHandler)) #3 /host/home1/도메인이름/html/index.php(53): ModuleHandler->__construct() #4 {main} thrown in /host/home1/도메인이름/html/classes/module/ModuleHandler.class.php on line 1235
이렇게 뜹니다...ㅠㅠ 대체 뭘 바꿔야하는 걸까요? 완전 초보라 검색을 해도 단어를 잘못 썼는지 검색도 잘 안 되고... 도움 부탁드립니다ㅠㅠ
댓글 19
html/classes/module/ 폴더들 라이믹스 깃헙에서 최신버전 받아서 다시 올려보세요
php7.3 버전 사용중인데 타임라인 모듈 문제 없어요~!
아 라이믹스 사용안하시는군요..
라이믹스깃헙에서 받아서 올리면 안됩니다
xe가 php7.3 타임라인 모듈이 지원되는지 모르겠습니다
xe는 xe깃헙이나 xe공홈에서 받으셔야 될거에요..
라이믹스는 타임라인모듈 php7.3에 정상동작합니다.
아마XE도 php7.2까지 정상 동작하던 것으로 기억하는데
7.2이랑 7.3이랑 큰 차이는 없는 것 같더군요
그래서 타임라인 모듈도 딱히 문제될 건 없는데
에러난 폴더들 xe공홈에서 받아서 다시 업로드 해보세요
(업로드전에 백업하시구요~)
1235라인이 뭔지도 올려주시면 다른분들이 무슨 문제인지 더 도움될거같네요
xe 최신 깃헙 라인기준으로는
// Set variables to the instance
$oModule->setModule($module);
$oModule->setModulePath($class_path);
부분 문제같은데
+1표 findinfiles 프로그램으로
https://software.naver.com/software/summary.nhn?softwareId=GWS_000607
통째로 파일 대상 올리신 다음에
object 검색하셔서 baseobject로 안바뀐 파일들 찾아보세요~
php7.3 에서는 BaseObject 로 잘 고치면 에러는 안나야 합니다.
Fatal error: Uncaught Error: Call to undefined function is_baseobject() in /host/home/도메인/html/modules/timeline/timeline.controller.php:23 Stack trace: #0 /host/home/도메인/html/modules/timeline/timeline.admin.controller.php(53): timelineController->insertTimelineInfo(Object(stdClass)) #1 /host/home/도메인/html/classes/module/ModuleObject.class.php(443): timelineAdminController->procTimelineAdminInsert() #2 /host/home/도메인/html/classes/module/ModuleHandler.class.php(863): ModuleObject->proc() #3 /host/home/도메인/html/index.php(59): ModuleHandler->procModule() #4 {main} thrown in /host/home/도메인/html/modules/timeline/timeline.controller.php on line 23
이렇게 뜨더라고요... 그래서 해당 부분을 찾아보니까
// 인자 유효성 검증
if (!(is_baseobject($args) && $args->module_srl))
{
return new BaseObject(-1, 'msg_timeline_no_module_srl');
}
$oDB = DB::getInstance();
$oDB->begin();
이거길래 "if (!(is_baseobject" 부분을 object로 다시 바꿨습니다. 그러니까 위와같은 에러는 안 뜨는데 아예 등록이 안 되고 계속 새로고침만 되더라고요ㅠㅠ 정말 죄송하지만 도움 좀 주실 수 있을까요? 귀찮게 해드려 죄송합니다...
에디터에서 검색 -> 바꾸기 이런식으로 하나씩 확인하면서 바꾸세요.
이렇게 질문을 하셔도 지금 추가로 문제가 되는 곳을 아무도 찾을 수 없을 겁니다.
23번 53번째줄 확인해보세요
이부분만 고치세요
new Object() → new BaseObject()
new Object(-1, 어쩌고저쩌고) → new BaseObject(-1, 어쩌고저쩌고
if (!(is_baseobject($args) 이건 고치면 안됩니다
보통 바꾸기 기능쓸때.. 대문자까지 구별해서 쓰면 유용합니다.
지금 문제가 되는건 Object 이지, object 가 아니거든요.
아니면 아예 new Object 이렇게 문장으로 바꾸거나..