Q&A

타임라인 모듈 오류

2020.04.06 06:32
841
0
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

  • 2020.04.06 07:29 #1373492

    html/classes/module/ 폴더들 라이믹스 깃헙에서 최신버전 받아서 다시 올려보세요

     

    php7.3 버전 사용중인데 타임라인 모듈 문제 없어요~!

  • 2020.04.06 07:50 #1373509
    라이믹스 안 써도 거기서 다운 받으면 되나요?? 댓글 달아주셔서 감사해요!!ㅠㅠ
  • 2020.04.06 07:54 #1373529

    아 라이믹스 사용안하시는군요..

    라이믹스깃헙에서 받아서 올리면 안됩니다

     

    xe가 php7.3 타임라인 모듈이 지원되는지 모르겠습니다

    xe는 xe깃헙이나 xe공홈에서 받으셔야 될거에요..

    라이믹스는 타임라인모듈 php7.3에 정상동작합니다.

  • 2020.04.06 07:57 #1373534

    아마XE도 php7.2까지 정상 동작하던 것으로 기억하는데
    7.2이랑 7.3이랑 큰 차이는 없는 것 같더군요

    그래서 타임라인 모듈도 딱히 문제될 건 없는데

    에러난 폴더들 xe공홈에서 받아서 다시 업로드 해보세요

    (업로드전에 백업하시구요~)

  • 2020.04.06 07:58 #1373543
    정말 감사합니다!!!
  • 2020.04.06 07:59 #1373547
    /ModuleHandler.class.php

    1235라인이 뭔지도 올려주시면 다른분들이 무슨 문제인지 더 도움될거같네요

    xe 최신 깃헙 라인기준으로는

    // Set variables to the instance

    $oModule->setModule($module);

    $oModule->setModulePath($class_path);
     부분 문제같은데
  • 2020.04.06 07:58 #1373539
    타임라인 모듈 파일 모두 수정해야 하는데 어느곳이 수정이 안되었거나 할 것 같다에 한표 드립니다.
  • 2020.04.06 07:59 #1373551
    파일 내에 있는 php 파일들 다 수정했는데, 이제 모듈 설치가 되긴 하는데 이제 등록을 하려니까 안 되더라고요... 혹시 몰라서 몇 번 반복해봤는데 안 되네요ㅠㅠ
  • 2020.04.06 08:00 #1373555
    다 했다고 생각했는데 안된다면 다 했다고 생각한게 잘못된 것 입니다.
  • 2020.04.06 08:02 #1373559

    +1표 findinfiles 프로그램으로
    https://software.naver.com/software/summary.nhn?softwareId=GWS_000607


    통째로 파일 대상 올리신 다음에
    object 검색하셔서 baseobject로 안바뀐 파일들 찾아보세요~

  • 2020.04.06 08:02 #1373563
    반대로 고치면 안되는 곳을 고쳤을 수도 있구요,

    php7.3 에서는 BaseObject 로 잘 고치면 에러는 안나야 합니다.
  • 2020.04.06 08:03 #1373570
    타임라인 모듈, xe 기본 모듈들 뿐만아니라,다른 서드파티 모듈들도 에러가 안나려면 모두 빼먹지 않고 바꿔줘야해요
  • 2020.04.06 08:10 #1373576
    정말 감사합니다ㅠㅠㅠ!!!!
  • 2020.04.06 09:17 #1373592
    자꾸 질문 드려서 죄송합니다. 싹 다 지우고 다시 깔고 몇 번 반복하니까 설치 자체는 되는데 타임라인 게시판을 등록하니까


    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로 다시 바꿨습니다. 그러니까 위와같은 에러는 안 뜨는데 아예 등록이 안 되고 계속 새로고침만 되더라고요ㅠㅠ 정말 죄송하지만 도움 좀 주실 수 있을까요? 귀찮게 해드려 죄송합니다...
  • 2020.04.06 09:22 #1373600
    위에도 말씀드렸듯이 지금처럼 고치면 안되는 곳을 고친곳, 고쳐야할 곳이 누락된 곳 스스로 찾아서 고치셔야 합니다.

    에디터에서 검색 -> 바꾸기 이런식으로 하나씩 확인하면서 바꾸세요.

    이렇게 질문을 하셔도 지금 추가로 문제가 되는 곳을 아무도 찾을 수 없을 겁니다.
  • 2020.04.06 09:39 #1373610
    그렇군요ㅠㅠ 알려주셔서 감사합니다 좋은 저녁 되시길 바랍니다!
  • 2020.04.06 09:55 #1373621

    23번 53번째줄 확인해보세요
    이부분만 고치세요

    new Object() → new BaseObject()

    new Object(-1, 어쩌고저쩌고) → new BaseObject(-1, 어쩌고저쩌고

     

    if (!(is_baseobject($args)  이건 고치면 안됩니다

  • 2020.04.06 10:42 #1373646
    is_object 는 php 함수예요. 정해진 함수인데.. 고치시면 안 되죠

    보통 바꾸기 기능쓸때.. 대문자까지 구별해서 쓰면 유용합니다.
    지금 문제가 되는건 Object 이지, object 가 아니거든요.
    아니면 아예 new Object 이렇게 문장으로 바꾸거나..
  • 2020.04.06 11:18 #1373655
    제가 무지했네요ㅠㅠㅠ 다들 정말정말 감사합니다 덕분에 좋은 홈페이지를 만들 수 있을 것 같아요 이런 게 아예 처음이라 헤매는 부분이 많았는데 여기서 많은 걸 배웁니다 다들 좋은 저녁 되시길 바랄게요! 정말 감사합니다!!