Q&A

CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 8.3
문제 페이지 주소 비공개 (검색로봇)

Rhymix 2.1.26 로컬에서는 문제가 없었음.

2.1.28에서 발생함.

다른 버전별로 각각 다 테스트를 해보지는 않았음.

 

1.

https://eond.com/index.php?module=admin&act=dispIntegration_searchAdminContent

이 주소에서 스킨을 변경 적용함

2. 계속 default 스킨으로만 적용됨

3. 모든 캐시 지우고

4. db에서 직접 module_config 테이블에서 integration_search 테이블의 default 값을 변경하고자 하는 스킨명으로 저장 후

5. 다시 1번 주소에서 테스트해봐도 default 로만 보여졌음. 캐시 다 지워도 동일했음.

 

6. 디버깅했음. 아래는 디버깅 로그

```

[Sun Nov 16 22:40:20.178464 2025] [proxy_fcgi:error] [pid 2856592:tid 2856592] 
  [client 121.151.25.196:0] AH01071: Got error 'PHP message: [IS CONFIG] Saving 
  skin: default, mskin: /USE_RESPONSIVE/; PHP message: [IS CONFIG] Save result: 
  SUCCESS', referer: 
  https://eond.com/index.php?module=admin&act=dispIntegration_searchAdminContent
  [Sun Nov 16 22:41:47.125845 2025] [proxy_fcgi:error] [pid 2856585:tid 2856585] 
  [client 121.151.25.196:0] AH01071: Got error 'PHP message: [IS CONFIG DEBUG] 
  $_POST: Array\n(\n    [error_return_url] => 
  /index.php?module=admin&act=dispIntegration_searchAdminContent\n    [mid] => \n
      [ruleset] => insertConfig\n    [act] => 
  procIntegration_searchAdminInsertConfig\n    [module] => admin\n    
  [xe_validator_id] => modules/integration_search/tpl/index/1\n    [skin] => 
  es_api\n    [mskin] => /USE_RESPONSIVE/\n    [block_robots] => Y\n    
  [target_types] => Array\n        (\n            [0] => document\n            
  [1] => comment\n            [2] => multimedia\n            [3] => file\n       
   )\n\n    [target] => exclude\n    [target_module_srl] => \n    
  [_rx_csrf_token] => GC4cJatSJuo36fLk\n)\n; PHP message: [IS CONFIG DEBUG] 
  $_REQUEST: Array\n(\n    [error_return_url] => 
  /index.php?module=admin&act=dispIntegration_searchAdminContent\n    [mid] => \n
      [ruleset] => insertConfig\n    [act] => 
  procIntegration_searchAdminInsertConfig\n    [module] => admin\n    
  [xe_validator_id] => modules/integration_search/tpl/index/1\n    [skin] => 
  es_api\n    [mskin] => /USE_RESPONSIVE/\n    [block_robots] => Y\n    
  [target_types] => Array\n        (\n            [0] => document\n            
  [1] => comment\n            [2] => multimedia\n            [3] => file\n       
   )\n\n    [target] => exclude\n    [target_module_srl] => \n    
  [_rx_csrf_token] => GC4cJatSJuo36fLk\n)\n; PHP message: [IS CONFIG DEBUG] 
  DB\xec\x97\x90\xec\x84\x9c \xec\x9d\xbd\xec\x9d\x80 \xea\xb8\xb0\xec\xa1\xb4 
  skin: default; PHP message: [IS CONFIG DEBUG] Context::get(skin): 'default'; 
  PHP message: [IS CONFIG DEBUG] Context::get(mskin): '/USE_RESPONSIVE/'; PHP 
  message: [IS CONFIG] Saving skin: default, mskin: /USE_RESPONSIVE/; PHP 
  message: [IS CONFIG] Save result: SUCCESS', referer: 
  https://eond.com/index.php?module=admin&act=dispIntegration_searchAdminContent
 

```

 $_POST에는 skin => es_api가 정상적으로 전송되는데, Context::get('skin')이 default를 반환하고 있음.

이것은 Rhymix의 Context 클래스가 POST 데이터를 처리하기 전에 DB에서 읽은 기존값(default)으로 덮어쓰고 있다는 뜻임.

해결 방법: POST 데이터를 직접 사용하도록 수정함.

 

modules/integration_search/integration_search.admin.controller.php:36

$received_skin = $_POST['skin'] ?? Context::get('skin');
$received_mskin = $_POST['mskin'] ?? Context::get('mskin');

 

문제 원인:
  - $_POST['skin']에는 es_api가 정상 전송됨
  - 하지만 Context::get('skin')이 DB에서 읽은 기존 값 default를 반환
  - Rhymix Context가 내부적으로 기존 설정을 우선시하도록 되어 있음

 

해결:
  - $_POST에서 직접 가져오도록 수정
  - $_POST['skin']이 있으면 그것을 사용, 없으면 Context::get('skin') 사용
 

이 과정에서 어디서 문제였나 모르겠지만 삽질하면서 기존 설정값도 다 날아감 ( '')....

 

혹시 최신 버전에서 통합검색스킨 변경 잘 되시던가요?

이온디 Lv. 13
# 라이믹스 스킨 제작은 어디? >>>> XE 레이아웃, 라이믹스 스킨제작은 이온디에서 커스터마이징해드립니다.
# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com

댓글 0