CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 8.2 |
문서 페이지 편집 화면을 스킨에서 커스터마이징할 수 있도록 지원
- 페이지 스킨에 content_modify.blade.php 또는 content_modify.html 템플릿을 추가하면 됩니다.
이 번에 새로 업데이트 되었다는데 좀 더 자세하게 알 수 있는 문서가 있을까요?
위 해당 파일 샘플이 있으면 도움이 될 것 같긴한데...
소슬
Lv. 1
댓글 10
modules/page/tpl/article_content_modify.html 파일을 복사하여 content_modify.html 또는 content_modify.blade.php 로 파일명을 변경후 modules/page/skins/default/ 안에 넣어주시면 됩니다.
modules/page/tpl/article_content_modify.html 파일이 바로 원하시는 샘플입니다.
단, 아무 이유 없이 그냥 파일만 복사해 놓으면 나중에 코어가 업데이트되어도 반영되지 않으니, 반드시 커스터마이징해야 하는 경우에만 활용하시기 바랍니다. 가능하면 기본 스킨을 건드리기보다는 다른 스킨을 만드는 것이 좋겠고요.
꼭 하고 싶은 사람은 코어 수정 없이 커스텀할 수 있도록 방법을 마련해 준다, 그 이상의 의미는 없습니다.
이번 업데이트후 문서 페이지 수정을 하면 레이아웃만 씌워진 빈 화면만 나오는 것 같습니다.
수정 화면이 깨진다는 말씀인가요? 아니면 수정 후 문서 페이지로 돌아왔을 때 내용이 안 보인다는 말씀인가요? 스킨에 따로 파일을 추가하신 것은 없고요?
문서페이지 방문시 내용은 정상 출력됩니다. 문서 페이지에서 페이지수정을 클릭하면 domain/mid/dispPageAdminContentModify 로 이동되면서 에디터가 있는 수정 화면이 나와야 하는데, 업데이트후 레이아웃만 씌워진 내용이 비어있는 화면이 나옵니다. 스킨에 대해 아무런 작업을 안한 상태 + 스킨에 content_modify.html 을 추가한 상태, 두 상태에서 모두 같은 증상입니다.
디버깅 가능하시다면 page.admin.view.php 309줄 전후에서 $skin_path를 찍어 보세요.
그 아래의 조건문에서 if로 들어가는지 else로 들어가는지도 확인이 필요합니다.
page.admin.view.php 309줄 부근에 다음과 같이 디버깅
// 디버깅 코드 추가 - 로그 파일에 기록
$debug_msg = array(
'skin_path' => $skin_path,
'file_exists_blade' => file_exists($skin_path . 'content_modify.blade.php'),
'file_exists_html' => file_exists($skin_path . 'content_modify.html')
);
FileHandler::writeFile(_XE_PATH_ . 'files/debug_page.log', print_r($debug_msg, true) . "\n", 'a');
if (file_exists($skin_path . 'content_modify.blade.php') || file_exists($skin_path . 'content_modify.html'))
{
FileHandler::writeFile(_XE_PATH_ . 'files/debug_page.log', "조건문: if 블록으로 들어감\n", 'a');
$this->setTemplateFile('content_modify');
}
else
{
FileHandler::writeFile(_XE_PATH_ . 'files/debug_page.log', "조건문: else 블록으로 들어감\n", 'a');
$this->setTemplatePath($this->module_path . 'tpl');
$this->setTemplateFile('article_content_modify');
}
기본스킨을 사용한 로그 기록
Array
(
[skin_path] => /modules/page/skins/default/
[file_exists_blade] =>
[file_exists_html] =>
)
조건문: else 블록으로 들어감
커스텀스킨을 사용한 로그 기록
Array
(
[skin_path] => /modules/page/skins/vivid_remaster/
[file_exists_blade] =>
[file_exists_html] => 1
)
조건문: if 블록으로 들어감
그렇다면 modules/page/tpl/article_content_modify.html을 로딩하지 못해서 그 부분이 백지로 나오고 있다는 뜻인데요. 혹시 이것저것 실험하시다가 원본 파일을 잘못 건드리신 것은 아니겠죠? 캐시를 비우거나 그 파일만 다시 저장해 보셨나요?
P.S. 디버깅하실 때 print_r보다는 var_dump나 var_export를 추천합니다. (문자열로 받아야 한다면 후자가 낫겠네요.) print_r은 타입이 나오지 않아서, 빈 값이 빈 문자열인지 null인지 false인지 구분하기 어렵거든요. 현 상황에서 중요한 차이는 아니지만, PHP가 점점 타입을 중요시하는 방향으로 가고 있으니 미리 대비하시면 좋겠습니다.^^
캐시도 비워봤고, 캐시 재설정후 캐시폴더를 수동으로 비워도 봤고, 업데이트 하다가 뭐가 꼬인건지 다시 점검해보겠습니다.
P.S 조언 감사합니다. PHP 입문한지 얼마 안되어서 대비해두고 공부하겠습니다.
답글 감사합니다.
덕분에 이해했습니다~