아이콘샵 아이콘 출력 애드온 Creating default object from empty value 에러
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.4 |
addons/member_icon_print/member_icon_print.lib.php:20
addons/member_icon_print/member_icon_print.addon.php:17
files/cache/addons/pc.php:111
classes/display/DisplayHandler.class.php:87
classes/module/ModuleHandler.class.php:1163
index.php:52
디버그 내용에 출력되는 에러 내용 입니다.
<?php
/**
* @brief div 또는 span에 member_번호 가 있을때 해당 회원 번호에 맞는 대표아이콘으로 대체
**/
function IconshopMemberIconPrint($matches) {
if(strpos($matches[0],'icon_print="no"')!==false) return $matches[0];
// 회원번호를 추출하여 0보다 찾으면 본문중 text만 return
$member_srl = $matches[3];
// 회원이 아닐경우(member_srl = 0) 본문 전체를 return
if($member_srl<0) return $matches[5];
$nick_name = $matches[5];
// 아이콘샵 모델을 구해옴
$oIconshopModel = &getModel('iconshop');
// 전역변수에 미리 설정한 데이터가 있다면 그걸 return 하고, 없으면 구해옴
if(!$GLOBALS['_iconshopMember'][$member_srl]->cached) {
$GLOBALS['_iconshopMember'][$member_srl]->cached = true;
// 회원의 대표아이콘 구해옴
$icon_data = $oIconshopModel->getMemberIconBySelected($member_srl);
if($icon_data && file_exists($icon_data->file1)) $GLOBALS['_iconshopMember'][$member_srl]->icon = $icon_data;
else $icon_data = '';
} else {
$icon_data = $GLOBALS['_iconshopMember'][$member_srl]->icon;
}
$output = preg_replace_callback('!<(div|span|a)([^\>]*)member_([0-9]+)([^\>]*)>(.*?)\<\/(div|span|a)\>!is', 'IconshopMemberIconPrint', $output);
디버그 내용에 따라 파일을 열어보니 이쪽부분에 문제가 있는거 같은데
new stdClass()를 줘야하는 변수를 찾지를 못하겠습니다 ㅡ;;
염치 없지만 고수님들의 도움을 좀 받고싶습니다 ㅠ

댓글 5
저라면
$GLOBALS['_iconshopMember'][$member_srl]->cached = true;
위와 같은 패턴은 기존과 동일하게
$GLOBALS['_iconshopMember'][$member_srl] = new stdClass(); 라고 윗줄에 넣어보고 결과를 본다음 결과에 따라 대응해 볼 것 같습니다.
웹지기님께선 저가 생각하는 웹마스터에 교과서 같습니다.
더불어 아이콘출력 애드온을 사용하지 않으신다면 아이콘샵 모듈도 이용하지 않으시게 되는건가요?
네. 모듈 자체가 유지보수도 안되고 사용에도 애로가 많아 오래전부터 사이트에서 아이콘샵 제공하지 않고 있었습니다.
이번에 삭제했습니다.
$GLOBALS['_iconshopMember'][$member_srl]->cached = true; 코드 자체가 if 조건에 맞을때 읽혀지거든요.