PHP8에서 어떻게 수정하면 되나요?
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 8.0 |
PHP7.4는 괜찮은데 8.0에서 아래와 같은 오류가 나타납니다.
Error #0 "Attempt to assign property "subject_cut_size" on null" in widgets/ideationPopular/ideationPopular.class.php on line 22
// $widget_info->subject_cut_size = (int)$args->subject_cut_size;
해당 줄은 위와 같습니다.
PHP8에서 어떻게 수정하면 되나요?
에러는 자세히 보면 이렇습니다.
AH01071: Got error 'PHP message: PHP Exception: Error #0 "Attempt to assign property "subject_cut_size" on null" in widgets/ideationPopular/ideationPopular.class.php on line 22\n#0 /var/www/vhosts/eond.com/httpdocs/modules/widget/widget.controller.php(392): ideationPopular->proc()\n#1 /var/www/vhosts/eond.com/httpdocs/modules/widget/widget.controller.php(471): widgetController->getCache()\n#2 /var/www/vhosts/eond.com/httpdocs/modules/widget/widget.controller.php(290): widgetController->execute()\n#3 unknown(0): widgetController->transWidget()\n#4 /var/www/vhosts/eond.com/httpdocs/modules/widget/widget.controller.php(266): preg_replace_callback()\n#5 /var/www/vhosts/eond.com/httpdocs/modules/widget/widget.controller.php(248): widgetController->transWidgetCode()\n#6 /var/www/vhosts/eond.com/httpdocs/classes/module/ModuleHandler.class.php(1239): widgetController->triggerWidgetCompile()\n#7 /var/www/vhosts/eond.com/httpdocs/classes/display/DisplayHandler.class.php(85): ModuleHandler::triggerCall()\n#8 /var/www/vhosts/eond.com/htt...'
#추가문의
$imgno=count($attachedfile);
$fileidx = mt_rand(0,$imgno-1);
이 부분이 또 오류를 뱉네요.
TypeError #0 "count(): Argument #1 ($var) must be of type Countable|array, null given
ValueError #0 "mt_rand(): Argument #2 ($max) must be greater than or equal to argument #1 ($min)" in widgets/contentsmedia/contentsmedia.class.php on line 1046
위에 부분은 count를 countobj로 고치면 넘어가는데, 아래에서 또 막히는데 mt_rand 저 부분은 뭐가 잘못된 걸까요..
앞에 값이 min이 0이고 뒤에 값이 max값인데 아마 뒷값이 -1로 들어가서 그런게 아닌가 싶은데요..
$imgno의 최소값을 1로 지정해줘야하는건지.. 어떻게 적어주면 될까요.
$imgno=countobj($attachedfile);
if($imgno == 1)
$fileidx = 1;
else if($imgno > 1)
$fileidx = mt_rand(0,$imgno-1);
else
이렇게 해서 이건 넘어갔는데요 ㅠㅠ
#추가문의2
Error #0 "Attempt to assign property "title" on null" in widgets/contentextended/contentextended.class.php on line 1058
$filename = strtolower($attachedfile[$fileidx]->source_filename);
$srcname = substr($attachedfile[$fileidx]->uploaded_filename, 2);
$srcname = getSiteUrl().$srcname; if($srcname && !preg_match('/^([a-z]+):\/\//i',$srcname))
$srcname = 'http://'.$srcname;
1058은 2번째줄인데 title은 안보이는데 -_-; 어찌 고쳐야할까요.
펑션 상단에 $obj = new stdClass; 적어주니 또 넘어가집니다 ㅠㅠ
#추가문의3
Error #0 "Attempt to assign property "site_srl" on null" in widgets/contentsmedia/contentsmedia.class.php on line 188
// 대상 모듈이 선택되어 있지 않으면 해당 사이트의 전체 모듈을 대상으로 함
if(!$args->module_srls){
unset($obj);
$obj->site_srl = (int)$site_module_info->site_srl;
$output = executeQueryArray('widgets.contentsmedia.getMids', $obj);
if($output->data) {
foreach($output->data as $key => $val) {
$args->modules_info[$val->mid] = $val;
$args->module_srls_info[$val->module_srl] = $val;
$args->mid_lists[$val->module_srl] = $val->mid;
$module_srls[] = $val->module_srl;
}
}
$args->modules_info = $oModuleModel->getMidList($obj);
// 대상 모듈이 선택되어 있으면 해당 모듈만 추출
} else {
$obj = new stdClass;
$obj->module_srls = $args->module_srls;
$output = executeQueryArray('widgets.contentsmedia.getMids', $obj);

# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com
댓글 2
보통 위젯에서 설정값 입력을 받을때 기본 설정값(입력하지 않으면 기본으로 입력되는 기준 숫자)를 입력되도록 코드를 짤텐데 이게 안되서 그런거 아닐까요?
if(!$args->subject_cut_size) $args->subject_cut_size = 20;
이런식으로 설정값 초기화 하는 곳에 이런 코드가 있는지 살펴보시고 없다면 위와 같이 넣어보세요.
권한이 있다고 올리신 질문글을 이렇게 막 바꾸고 하시면 어떻게 하시나요?
질문 게시판이 답변이 달린 후 수정이 안되는게 모두가 지켜야 하는 것으로 보지 않으신가요?
이 질문글은 1회용인가요? 무슨 질문에 답을 한건지도 알수 없게 되었고..
지금 추가적인 문제가 발생되고 기존 문제가 해결되고 하면 계속 수정하실건가요??
아무리 권한이 있다해도 번번히 본인 질문글을 수정하시는 건 아닌 것 같습니다.
다른 회원과 동일하게 추가나 변경사항이 있다면 댓글을 이용해서 추가 의견을 남겨주셔야 한다고 봅니다.
관리자가 수정의 권한이 이렇게 이용되라고 주어진게 아닐텐데요.