자료실

자료 유형 모듈
간단한 소개 게시판의 구독기능 중 이미지가 있는 게시물은 이미지가 엑박으로 뜨던 것을 정상화 하였습니다.
설치 경로 ./modules/ggmailing
PHP 지원 범위 PHP 7.4 ~ 8.5.7
자료 구분 공개 자료 GPL v2
판매 상태 Rhymix 2.1.33 이하
원본 URL https://xe1.xpressengine.com/index.php?m...d=22726124
기타 정보 원저작자 : GG
AI 사용 여부 AI로 생성한 코드가 포함되어 있고, 전문 개발자의 검토를 거치지 않았습니다.

다운로드

쉬운 설치 지원
버전날짜용량다운로드 수
0.5.1 2026.07.13 984.7KB 14
0.5.0 2026.06.22 983.8KB 16
0.4.9 2026.06.19 995.5KB 13
0.4.8 2026.06.19 1.11MB 10

 

2026. 07. 13 수정내용

* 주의 : PHP8대의 실서버가 없어서, 제 개발서버에서만 동작을 확인하였습니다.

 

수정 내용 요약 (0.5.1)

핵심 원인: PHP 7까지 허용되던 "미선언 변수에 속성 할당 시 자동 객체 생성"이 PHP 8에서 Fatal Error로 변경됨.

파일: ggmailing.admin.controller.php
수정: ① 신고된 316줄: unset($config) → new stdClass() (신규
설치 시 설정 저장 오류의 직접 원인) ② 9개 함수에 객체
초기화 추가 ③ 엑셀 회원등록의 미정의 상수 [A]→['A'] (PHP 8
fatal) ④ count() 객체 전달 TypeError 가드 ⑤ $ggoutput 오타
→ $output ⑥ fopen → file_exists
────────────────────────────────────────
파일: ggmailing.controller.php
수정: 트리거 발송 경로(procGgmailingSendOK,
procGgmailingXeSend)의 미선언 $args 초기화 —
게시판메일링/댓글알림이 PHP 8에서 죽던 문제. receive_* 필드
 사전 초기화
────────────────────────────────────────
파일: ggmailing.view.php
수정: 수신거부 페이지: 미선언 $donotsend 초기화, module_info
null일 때 skin 할당 fatal 가드
────────────────────────────────────────
파일: ggmailing.admin.view.php
수정: SMS 수정 화면 미선언 $args 초기화
────────────────────────────────────────
파일: conf/info.xml
수정: 버전 0.5.0 → 0.5.1, 날짜 2026-07-13

미수정 (의도적): classes/PHPExcel/은 deprecation 경고만 있고 fatal이 아니라 그대로 둠.

검증: 전 파일 php -l 통과 (PHP 8.5, 서버 8.4보다 상위) + 오류 패턴 재현/수정 확인.
 

 

2026. 06. 22 수정내용

AI로 생성한 코드가 포함되어 있고, 전문 개발자의 검토를 거치지 않았습니다.

 

---------------------------------------------------------------------------

php 8대에 동작하게 수정하여 올렸습니다. 

다만, 제가 한게 아니고, 클로드코드가 하였습니다.

 

제 개발서버에서는 확인을 하였으나, 실서버에서는 확인하지 못했습니다. 

 

개발서버 환경

스크린샷 2026-06-22 13.22.35.png

 

---------------------------------------------------------------------------

우리알림(ggmailing) v0.5.0 업데이트                                           

                                                                             

  PHP 8 이상 환경에서 설치 및 동작이 되지 않던 문제를 수정했습니다.             

                                                                              

  ---                                                                           

  1. 초기화되지 않은 변수 오류 수정 (Fatal error)                               

                                                                                

  PHP 8에서는 선언되지 않은 변수에 속성을 할당하면 Fatal error가 발생합니다.

                                                                                

  ggmailing.class.php (moduleInstall 함수)                                      

  // 수정 전                                                                  

  $oModuleController = &getController('module');                                

  $args->module = 'ggmailing';                                               

                                                                                

  // 수정 후

  $oModuleController = &getController('module');                                

  $args = new stdClass();                                                    

  $args->module = 'ggmailing';

                                                                                

  ggmailing.view.php (dispGgmailingDonotsend 함수)

  // 수정 전                                                                    

  $args = Context::getRequestVars();                                         

  $obj->ggmailing_nickname = $args->nick_name;                                  

                                                                                

  // 수정 후                                                                    

  $args = Context::getRequestVars();                                          

  $obj = new stdClass();                                                        

  $obj->ggmailing_nickname = $args->nick_name;                               

                                              

  ggmailing.admin.controller.php (procGgmailingAdminSmsSend 함수)               

  // 수정 전                                                                    

  function procGgmailingAdminSmsSend($ggmailing_sms_send_srl,$is_sendok = 'W')

  {                                                                             

      $args->ggmailing_sms_send_srl = $ggmailing_sms_send_srl;                  

                                                              

  // 수정 후                                                                    

  function procGgmailingAdminSmsSend($ggmailing_sms_send_srl,$is_sendok = 'W')

  {                                                                             

      $args = new stdClass();                                                

      $args->ggmailing_sms_send_srl = $ggmailing_sms_send_srl;                  

                                                                                

  ---

  2. 함수 파라미터 순서 수정 (Deprecated)                                     

                                                                                

  PHP 8에서는 기본값이 있는 파라미터가 필수 파라미터 앞에 오면 deprecated 경고가

   발생합니다.                                                                  

                                                                                

  ggmailing.view.php, ggmailing.controller.php, ggmailing.admin.controller.php

  (curl_request_async 함수)                                                     

  // 수정 전                                                                    

  function curl_request_async($url, $params, $type='POST', $output)             

                                                                                

  // 수정 후                                                                    

  function curl_request_async($url, $params, $output, $type='POST')           

                                                                                

  호출부도 인자 순서를 동일하게 변경했습니다.

  // 수정 전                                                                    

  $this->curl_request_async($url, $params, 'POST', $output);                    

                                                                                

  // 수정 후                                                                  

  $this->curl_request_async($url, $params, $output, 'POST');                    

                                                                                

  ---                                                                           

  3. PHPExcel 라이브러리 PHP 8 호환성 수정                                      

                                                                              

  중괄호 문자열 접근 (17개 파일, 100+건)                                        

  // 수정 전                      

  $string{0}                                                                    

                                                                                

  // 수정 후                      

  $string[0]                                                                    

                                                                                

  비표준 캐스트 변환 (10+개 파일)

  // 수정 전                                                                    

  (integer)$value                                                               

  (boolean)$value                                                             

  (double)$value                                                                

                                  

  // 수정 후                                                                    

  (int)$value                                                                   

  (bool)$value

  (float)$value

               

  implicit nullable 파라미터 (40+개 파일)

  // 수정 전

  function example(PHPExcel_Worksheet $pSheet = NULL)                         

                                                                                

  // 수정 후                      

  function example(?PHPExcel_Worksheet $pSheet = NULL)                          

                                                                                

  기타 수정                       

  // switch문 내 default 세미콜론 (Excel5.php)                                  

  default;  →  default:                                                         

                                                                                

  // return 뒤 불필요한 break 제거 (Calculation/Functions.php)

  return $value;                                                                

  break;  ← 삭제                                                                

                                                                                

  // switch문 내 continue (Shared/OLE.php)                                      

  continue;  →  continue 2;                                                     

                                                                                

  ---                             

  호환성                                                                        

  - PHP 7.4 이상                                                                

  - PHP 8.0 ~ 8.5 지원

 

------------------------------------------------------------------------

게시판의 구독 기능 중 문제가 있던 이미지 엑박을 수정하였습니다~~

php 7.4 & 코어 2.1.33에서 테스트되었습니다.

마음에는 꼭 빈자리를 남겨두어야 합니다.

마음의빈자리님의 다른 자료 더보기

Thumbnail
레이아웃 | 공개
CSS + HTML로만 꾸며진 가볍고 빠른 반응형 레이아웃입니다.

댓글 14

  • 저기.. 개발자님.. 죄송하지만...혹시? php 8.4~ 이상 버젼은 업뎃이 없는지요?

  • @거짓말

    아마도 되지 않을까싶은데 혹시 설치해보셨나요? ^^

  • @마음의빈자리

    역시 설치는 안됍니다.
     

    화면 캡처 2026-06-21 015214.jpg

  • @거짓말

    네~ 제가 직접 테스트해보고 업데이트 할 수 있으면 해보겠습니다. ^^

  • @거짓말

    php 8대에 동작하게 수정하여 올렸습니다. 

    다만, 제가 한게 아니고, 클로드코드가 하였습니다.

     

    제 개발서버에서는 확인을 하였으나, 실서버에서는 확인하지 못했습니다. 

     

     

    AI로 생성한 코드가 포함되어 있고, 전문 개발자의 검토를 거치지 않았습니다.
  • @마음의빈자리

    아아... 개발자님 설치하고 시리얼 넣고 저장을 하니.
     

    서버 오류

    Error #0 "Attempt to assign property "error_return_url" on null" in modules/ggmailing/ggmailing.admin.controller.php on line 316

    객체를 먼저 선언하지 않고 속성을 추가하려 하고 있습니다. 오래된 자료에서 종종 사용하던 코딩 방식이나 최근 PHP에서는 허용되지 않으니, 에러 메시지에 포함된 파일명과 줄 번호를 참고하여 수정하세요.

    modules/ggmailing/ggmailing.admin.controller.php:316

    이런 메세지가 나옵니다. 하지만 라이믹스 자체에 내장되어 있는 곳에 시리얼 넣고 작동해보니 잘 됍니다.

  • @거짓말

    기존에 설치되어있던 사이트에서는 동작하는데, 신규로 설치하는데서는 위와 같은 에러가 나온다는 말씀이시죠?

     

  • @마음의빈자리

    네. 다행이. 라이믹스 내장되어 있는 메일로는 정상 송출되었습니다.

  • @거짓말

    제가 원저작자가 아닌데, 다른 문제를 이렇게 수정해도 되는지는 모르겠습니다.

    저도 개발자가 아니어서,. 클로드 fable한테 맡겨서 수정했습니다. 

    동작 확인해보세요. ^^

  • @마음의빈자리

    네. 확인 했습니다. 수정 해주셔서 너무 감사합니다.
    화면은 잘뜨는데 회원이 없어서 전송 테스트 하기가 힘드네요...ㅎㅎㅎ
     

    화면 캡처 2026-07-14 161027.jpg

  • @마음의빈자리

    그리고 제 시스템은...
    [Basic Information] rhymix_version : 2.1.34

    date : 2026-06-27 12:14:28 +0900 (2026-06-27 03:14:28 UTC)

    php : 8.4.22 (64-bit)

    server : nginx/1.31.2

    os : Linux 6.8.0-124-generic

    sapi : fpm-fcgi

    baseurl : https://canvas-k.com/

    basedir : /rhymix/

    owner : www-data (33:33)

    user : www-data (33:33)

    ssl : none
    이렇게 업데이트가 되어 있습니다.

  • ㅠㅠㅠ 아 언젠간이 아니라.. 이미 그 7.4 를 버려야 할 시기가 지났다고 하네요 ㅋㅋㅋㅋㅋㅋ

    씁쓸하구만요 ㅋㅋ ㅠㅠㅠㅠ

  • @불패의초인

    환각인지 아닌지 스스로 판단할 수 없다면 AI 답변 복붙하지 마세요.

    포인트 파밍도 아니고... 해당 자료와 전혀 관련 없는 내용을 한 바닥씩 붙여놓고 뭐하시는 건가요?

    나중에 꼭 필요한 정보가 있어서 이 페이지를 찾을 다른 사용자들에게 민폐가 아닐 수 없습니다.

    물론 최근 버전으로 업데이트하면 좋기는 합니다.^^

  • @기진곰

    알겠습니다 죄송합니다.