어떡해야하나요?
문제되는 파일 ~~/ 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로 업데이트 하기위해선 우분투도 업데이트 한다고 합니다.
파일 수정이야 하면된다지만 뭔가 서버에 문제가 생길까봐 걱정됩니다.
업데이트를 진행해도 될까요?
PHP 버전에 따라 문법이 달라질 만한 부분은 아닙니다.
기본적으로 $val이라는 변수가 존재하지 않는 상태에서 함수를 호출하려고 하는 것이 문제인데, 해당 템플릿명을 고려할 때 $val이라는 변수는 $document_list를 루프 돌리면서 가져오는 것입니다. $document_list는 코어에서 넣어주는 것이므로, 코어가 지원하는 범위 내의 서버 환경이라면 존재하지 않을 리가 없고요.
만약 $document_list가 존재하지 않거나 엉뚱한 구조로 되어 있다면, 서드파티 자료가 끼어들어서는 안 되는 타이밍에 $document_list를 잘못 건드렸거나, DB 쪽에서 오류가 나서 제대로 불러오지 못했을 가능성이 높습니다. 테스트 서버와 본서버의 DB 내용이 100% 똑같지는 않을 테고, 서드파티 자료의 설치 상태나 설정도 미묘하게 다를 수 있으니까요.