홈은 지금 원래 상태(히어로 슬라이더 + 요금제 3종)로 복원해뒀습니다.

추가된 기능

  1. http://localhost/lab.xzine.kr/web/admin/design?tab=main_layout 최상단에 "[ ] 일반페이지 사용" 체크박스가 생겼습니다. 체크하면 그 아래 캔버스 레이아웃 대신 원하는 일반페이지를 고르는 드롭다운이 나타나고, 페이지를 선택하면 즉시 저장됩니다(별도 "저장" 버튼 클릭).
  2. 체크박스를 켜고 페이지를 선택하면, 홈 화면이 그 일반페이지의 콘텐츠 + 전용 CSS/JS 파일을 그대로 보여줍니다 (기존 캔버스 메인슬라이드/레이아웃은 무시). 체크를 끄면 즉시 기존 캔버스 레이아웃으로 돌아갑니다.
  3. 테넌트별로 독립적으로 관리됩니다 (tenant_settings.home_use_page, home_page_id 컬럼 추가) — 다른 테넌트의 페이지를 실수로 선택해도 서버에서 소유권을 검증해서 막습니다.
  4. 존재하지 않는 페이지가 선택된 상태로 남아있어도 fatal error 없이 "페이지를 찾을 수 없습니다" 안내 문구만 뜨도록 안전장치를 넣었습니다.

작업 중 발견한 별개 버그: 이번에 컬럼을 추가하는 마이그레이션 스크립트가 최초 실행 시 .env DB_NAME(=web.xzine_db)을 못 읽고 기본값 xzine_db에 잘못 컬럼을 만들었습니다 — CLI로 직접 실행하는 마이그레이션 스크립트들이 Env::load()를 안 부르면 실제 서비스가 쓰는 DB와 다른 DB에 붙는 문제였습니다. 잘못 만든 컬럼은 지우고 web.xzine_db에 정확히 다시 만들어뒀습니다.