이슈사항
- xe에서 Rhymix 설치 이후 admin 메뉴 편집시 아래와 같이 에러 페이지가 호출됩니다.
- 그 상태에서 아래 파일만 기존 파일로 교체하면 페이지는 표시됩니다.
/modules/menu/menu.admin.controller.php
다만 Rhymix에서 받은 파일로 교체하면 동일하게 에러 발생합니다.
Rhymix 파일에서 무엇을 수정해야하나요?
서버 오류
TypeError #0 "Argument 2 passed to ModuleController::updateModuleMenuSrl() must be of the type int, null given, called in /경로/경로/public_html/modules/menu/menu.admin.controller.php on line 209" in modules/module/module.controller.php on line 774
modules/module/module.controller.php:774
메뉴 DB가 살짝 꼬여 있는 상태인 것 같습니다.
XE에서 별도로 메뉴를 지정하지 않은 게시판이나 페이지들을 모아 두던 unlinked 메뉴가 삭제되었거나,
라이믹스로 변경하시면서 일부 테이블에 필요한 컬럼들이 추가되지 않았거나...
메뉴는 사이트마다 워낙 다양한 경우의 수가 있기 때문에,
어떤 사이트에서는 멀쩡하게 돌아가는데 어떤 사이트에서는 오류가 나기도 합니다.
아무튼 근본적인 원인을 찾아 해결하기 위해서는,
에러가 나는 위치보다는 조금 앞으로 나와서 수정을 시도해 보면 좋겠습니다.
콜스택이 상당히 깊은 곳에 들어가서 에러가 났거든요. 어떤 경로를 거쳐 거기까지 갔는지 찾아야 합니다.
예를 들어 menu.admin.controller.php 122줄을 보면
$output = $this->updateLinkModule($unlinked_modules, $unlinked_menu_srl);
라는 코드가 있을 텐데요,
이걸 조건문으로 한 번 묶어 보시겠어요?
if ($unlinked_menu_srl) {
$output = $this->updateLinkModule($unlinked_modules, $unlinked_menu_srl);
}
이렇게요.
만약 이렇게 했을 때 문제가 해결된다면 한 가지 원인을 의심해 볼 수 있고,
만약 해결되지 않는다면 그것도 중요한 단서가 됩니다.