Q&A

CMS/프레임워크 Rhymix 2.0
개발 언어 PHP 8.2

문서 페이지 편집 화면을 스킨에서 커스터마이징할 수 있도록 지원

  • 페이지 스킨에 content_modify.blade.php 또는 content_modify.html 템플릿을 추가하면 됩니다.

 

이 번에 새로 업데이트 되었다는데 좀 더 자세하게 알 수 있는 문서가 있을까요? 

위 해당 파일 샘플이 있으면 도움이 될 것 같긴한데...

소슬 Lv. 1

댓글 10

  • 2025.05.02 16:02 #1907108

    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 파일이 바로 원하시는 샘플입니다.

  • 2025.05.02 16:23 #1907112

    단, 아무 이유 없이 그냥 파일만 복사해 놓으면 나중에 코어가 업데이트되어도 반영되지 않으니, 반드시 커스터마이징해야 하는 경우에만 활용하시기 바랍니다. 가능하면 기본 스킨을 건드리기보다는 다른 스킨을 만드는 것이 좋겠고요.

     

    꼭 하고 싶은 사람은 코어 수정 없이 커스텀할 수 있도록 방법을 마련해 준다, 그 이상의 의미는 없습니다.

  • 2025.05.03 09:48 #1907122

    이번 업데이트후 문서 페이지 수정을 하면 레이아웃만 씌워진 빈 화면만 나오는 것 같습니다. 

  • 2025.05.03 12:22 #1907126

    수정 화면이 깨진다는 말씀인가요? 아니면 수정 후 문서 페이지로 돌아왔을 때 내용이 안 보인다는 말씀인가요? 스킨에 따로 파일을 추가하신 것은 없고요?

  • 2025.05.03 14:32 #1907149

    문서페이지 방문시 내용은 정상 출력됩니다.  문서 페이지에서 페이지수정을 클릭하면 domain/mid/dispPageAdminContentModify 로 이동되면서 에디터가 있는 수정 화면이 나와야 하는데, 업데이트후 레이아웃만 씌워진 내용이 비어있는 화면이 나옵니다.  스킨에 대해 아무런 작업을 안한 상태 + 스킨에  content_modify.html 을 추가한 상태, 두 상태에서 모두 같은 증상입니다. 

  • 2025.05.03 15:15 #1907153

    디버깅 가능하시다면 page.admin.view.php 309줄 전후에서 $skin_path를 찍어 보세요.

    그 아래의 조건문에서 if로 들어가는지 else로 들어가는지도 확인이 필요합니다.

  • 2025.05.03 15:45 #1907157

    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 블록으로 들어감

     

     

  • 2025.05.03 17:14 #1907170

    그렇다면 modules/page/tpl/article_content_modify.html을 로딩하지 못해서 그 부분이 백지로 나오고 있다는 뜻인데요. 혹시 이것저것 실험하시다가 원본 파일을 잘못 건드리신 것은 아니겠죠? 캐시를 비우거나 그 파일만 다시 저장해 보셨나요?

     

    P.S. 디버깅하실 때 print_r보다는 var_dump나 var_export를 추천합니다. (문자열로 받아야 한다면 후자가 낫겠네요.) print_r은 타입이 나오지 않아서, 빈 값이 빈 문자열인지 null인지 false인지 구분하기 어렵거든요. 현 상황에서 중요한 차이는 아니지만, PHP가 점점 타입을 중요시하는 방향으로 가고 있으니 미리 대비하시면 좋겠습니다.^^

  • 2025.05.03 18:20 #1907177

    캐시도 비워봤고, 캐시 재설정후 캐시폴더를 수동으로 비워도 봤고, 업데이트 하다가 뭐가 꼬인건지 다시 점검해보겠습니다.

     

    P.S 조언 감사합니다. PHP 입문한지 얼마 안되어서 대비해두고 공부하겠습니다.

  • 2025.05.02 17:09 #1907117

    답글 감사합니다. 
    덕분에 이해했습니다~