묻고답하기
게시판 Page navigation 문제
2016.06.21 10:04
안녕하세요
게시판 하단에 보이는 page navigation 문제인데요
<< 1 2 3 4 5 6 7 8 9 >> 이런 상태에서 7 page를 누르면 화면 좌측 상단에 '7' 이라는 숫자만 나옵니다
사이트 링크는 http://www.homestaykorea.com/?mid=page_homestay_searchhost 입니다
http://www.homestaykorea.com/?mid=page_homestay_searchhost&page=7 이렇게 되면 결과값이 '7'만 나옵니다
특정 게시판에서만 나오는 문제가 아니라 XE Admin '회원관리' 같은 화면에서도 동일한 문제가 발생합니다
몇 주전에 이런 문제가 발생해서 문제 발생 전 소스로 복원을 했더니 문제가 없어졌는데 (그래서 DB 문제는 아니겠죠?)
내부적으로 Source 를 건드린 적이 없는데도 보름만에 다시 이런 문제가 발생하네요
현재 XE 1.4.4.4 버전이구요
XE 캐시파일 문제일까요?
보름 전 에러 발생 당시 root 에 php_error.log 파일에 보면
'PHP Fatal error: Call to a member function getNextPage() on a non-object in /home/hosting_users/sngutd/www/classes/template/TemplateHandler.class.php(220) : eval()"d code on line 91'이런 메시지가 있었는데 소스 데이타 복원 후에는 이런 메세지도 없었는데 다시 문제가 발생했네요 ㅠㅠ
꼭 답변 부탁드립니다~~
TemplateHandler.class.php 파일에서 line 91 부분은 아래와 같습니다
=====================================================
71 /**
72 * @brief compiles specified tpl file and execution result in Context into resultant content
73 * @param[in] $tpl_path path of the directory containing target template file
74 * @param[in] $tpl_filename target template file's name
75 * @param[in] $tpl_file if specified use it as template file's full path
76 * @return Returns compiled result in case of success, NULL otherwise
77 */
78 function compile($tpl_path, $tpl_filename, $tpl_file = '') {
79 // store the starting time for debug information
80 if(__DEBUG__==3 ) $start = getMicroTime();
82 // initiation
83 $this->init($tpl_path, $tpl_filename, $tpl_file);
85 // if target file does not exist exit
86 if(!$this->file || !file_exists($this->file)) return sprintf('Err : "%s" template file is not exists.', $this->file);
88 $source_template_mtime = filemtime($this->file);
89 $latest_mtime = $source_template_mtime>$this->handler_mtime?$source_template_mtime:$this->handler_mtime;
91 // cache controll
92 $oCacheHandler = &CacheHandler::getInstance('template');
94 // get cached buff
95 if($oCacheHandler->isSupport()){
$cache_key = 'template:'.$this->file;
$this->buff = $oCacheHandler->get($cache_key, $latest_mtime);
} else {
if(file_exists($this->compiled_file) && filemtime($this->compiled_file)>$latest_mtime) {
$this->buff = FileHandler::readFile($this->compiled_file);
}
}
if(!$this->buff) {
$this->parse();
if($oCacheHandler->isSupport()) $oCacheHandler->put($cache_key, $this->buff);
else FileHandler::writeFile($this->compiled_file, $this->buff);
}
$output = $this->_fetch();
// store the ending time for debug information
if(__DEBUG__==3 ) $GLOBALS['__template_elapsed__'] += getMicroTime() - $start;
return $output;
}
정확한건 소스를 뜯어보지 않는한 알수가 없지만
page 변수를 받았을때 목록추출하는 부분들에 오류가 있겠네요
딱 봐도 사이트가 document 모듈을 많이 고친 사이트같은데
( 현재 http://www.homestaykorea.com/?mid=page_homestay_searchhost 구조는 board 모듈과 document 모듈을 고쳐야만 작동하는 구조인듯해서 )
수정하신 부분들중에 오류가 있는게 아닐까 예상합니다
그 이상은 현재 상황에서 알 수가 없죠.
도저히 해결 안 되면 외주로 의뢰를 맡기시는 것도 한 방법일겁니다.