어떡해야하나요?

 

문제되는 파일 ~~/ line 15

 

에서 15번째 줄을 보면

    <a href="#saved_document_{$val->document_srl}" onclick="jQuery('#saved_document_{$val->document_srl}').toggle(); return false;">{$val->getTitle()}</a>

 

라고 되어있습니다.

 

저 $val->getTitle() 에 띄어쓰기 or " "  이런식으로 넣었는데도 오류 메세지는 똑같았습니다.

 

위아래 코드를 가져오면

 

<td class="title">
                <a href="#saved_document_{$val->document_srl}" onclick="jQuery('#saved_document_{$val->document_srl}').toggle(); return false;">{$val->getTitle(" ")}</a>
                <div id="saved_document_{$val->document_srl}" class="savedContent" style="display:none;">{$val->getContent(false)}</div>
            </td>

 

이렇습니다.

 

따라서 불러오기를 눌러도

 

Error #0 "Call to a member function getRegdate() on null" in

 

modules/document/tpl/saved_list_popup.html on line 20

 

 

이런 에러가 뜹니다.

 

저 20번째 줄은

 

<td>{$val->getRegdate("Y-m-d H:i:s")}</td>

 

이거구요.

 

사실 테스트사이트에서는 잘되는데, 본 사이트에 이런 에러가 떴습니다.  버전을 확인해보니

 

테스트 서버는 Debian/ php 8.1

본 사이트 Ubuntu 20.04lts / php 7.4 

 

이라 차이가 납니다.

 

이에 php 를 업데이트 하려고 하는데, 제가 기존에 클플 연동 및 사이트 이것저것 수정을 많이 했습니다.

 

또한 php 7.4를 8로 업데이트 하기위해선 우분투도 업데이트 한다고 합니다.

 

파일 수정이야 하면된다지만 뭔가 서버에 문제가 생길까봐 걱정됩니다.

 

업데이트를 진행해도 될까요? 

  • Lv36

    PHP 버전에 따라 문법이 달라질 만한 부분은 아닙니다.

     

    기본적으로 $val이라는 변수가 존재하지 않는 상태에서 함수를 호출하려고 하는 것이 문제인데, 해당 템플릿명을 고려할 때 $val이라는 변수는 $document_list를 루프 돌리면서 가져오는 것입니다. $document_list는 코어에서 넣어주는 것이므로, 코어가 지원하는 범위 내의 서버 환경이라면 존재하지 않을 리가 없고요.

     

    만약 $document_list가 존재하지 않거나 엉뚱한 구조로 되어 있다면, 서드파티 자료가 끼어들어서는 안 되는 타이밍에 $document_list를 잘못 건드렸거나, DB 쪽에서 오류가 나서 제대로 불러오지 못했을 가능성이 높습니다. 테스트 서버와 본서버의 DB 내용이 100% 똑같지는 않을 테고, 서드파티 자료의 설치 상태나 설정도 미묘하게 다를 수 있으니까요.

  • Lv36 ? Lv2
    아 네. 저 부분에대해서 감이 안잡히네요.. 업데이트 문제가 아니라니 일단 한숨은 쉬었습니다.
    $document_list 에 관해서는 혹시 어느 파일을 봐야하는지 알 수 있을까요?
  • ? Lv2 Lv36
    문제가 일어나는 파일에서 $document_list를 사용하는 부분 바로 위에서 찍어보시는 것이 가장 확실합니다.

    코어에서 문서 목록을 생성하는 과정이 원체 복잡한데다가, 서드파티 자료가 조작했을 수도 있기 때문에 다른 시점에 찍어보는 것은 도움이 되지 않을 것 같아요.