| 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') 사용
이 과정에서 어디서 문제였나 모르겠지만 삽질하면서 기존 설정값도 다 날아감 ( '')....
혹시 최신 버전에서 통합검색스킨 변경 잘 되시던가요?
# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com
댓글 0