
메인 레이아웃 관리 시스템을 데이터베이스 기반의 유연한 구조로 전환하고, 요청하신 그리드 및 요소별 상세 설정 기능을 모두 구현했습니다.
주요 작업 내용
1. 데이터베이스 스키마 확장
-
cms_main_layout_sections테이블에 다음 필드를 추가했습니다:-
container_width: 섹션의 가로 박스 너비 (1200px, 1400px, 100% 등 선택 및 직접 입력 가능) -
margin_top,margin_bottom: 섹션 상하 외부 여백 -
bg_gradient: 단색 배경 외에 그라데이션 배경 지원
-
- 마이그레이션 파일:
update_main_layout_sections_table.php를 생성했습니다. (관리자 페이지나 터미널에서 실행 필요)
2. 레이아웃 렌더러 고도화 (
MainLayoutRenderer.php
)
- 그리드 제어: 각 섹션별로 설정된 배경색, 그라데이션, 마진, 박스 너비를 실제 프론트엔드에 반영하도록 수정했습니다.
- 요소별 상세 설정: 위젯(최근글 등) 배치 시 노출 갯수, 추출 갯수, 제목/내용 글자수 제한, 썸네일 비율 등을 PC와 모바일 각각 다르게 설정할 수 있도록 로직을 구현했습니다.
- 모바일 스와이프 강제: 모든 슬라이더 요소에
data-is-mobile="1"속성을 부여하고, 터미널/모바일 환경에서 무조건 스와이프가 작동하도록 CSS와 JS 연동 구조를 개선했습니다.
3. 관리자 UI 개선 (
main_layout_builder.php
)
- 섹션 설정 모달: 섹션 편집 시 너비(Full/Boxed), 상하 마진, 배경 그라데이션을 직관적으로 설정할 수 있는 UI를 추가했습니다.
- 요소 상세 설정 모달: 배치된 각 요소 옆의 설정(톱니바퀴) 아이콘을 클릭하여 노출 개수 및 글자 수 제한 등의 상세 옵션을 실시간으로 수정할 수 있게 했습니다.
- 빌더 미리보기: 빌더 화면에서도 설정된 배경색과 마진이 시각적으로 반영되어 관리자가 미리 파악하기 쉽도록 개선했습니다.
댓글 (2)
- 최종적으로 현재 메인 레이아웃관리가 /templates/default_right/index.php에서 하드코딩으로 꾸미게 되어 있으나 이전 시도한 적이 있는 /includes/MainLayoutRenderer.php 등의 형식으로 메인레이아웃 관리를 좀 더 편리하고 직관적으로 꾸밀 수 있게
- 그리드괸리(가로전체, 박스내 설정, 배경-단일색상/그라데이션/이미지, 여백, 마진 등)
- 각 요소별 선택삽입(요소별 표시형태관리-노출갯수, 표시갯수(PC/모바일), 슬라이드, 썸네일 사이즈, 제목글자수, 내용글자수 등 옵션 다양화), 모든 슬라이드의 경우 모바일에서는 무조건 스와이프되게
2. 스킨세트 문제
- 스킨이 리스트형, 갤러리형, 웹진형 등 기본 스킨 외에 다른 스킨은 https://cms.4men.kr/board/data_02 스킨 게시판에 등록된 스킨을 각각의 사이트에서 외부스킨으로 등록하게 되어 있는데, 이 경우 css 파일이 /assets/css 등에 저장되어 설치과정에서 제대로 안되니까 css 파일도 스킨 폴더 내로 묶어서 함께 설치하는 것이 맞을 듯
- 스킨 설치 추가/삭제 과정에서 DB나 controllers 꼬일 문제 없는지도 검토
3. 템플릿세트 문제
- 현재 templates/default_right 하나의 템플릿만 있으나 추후 dark모드 등 다양한 형태의 템플릿이 존재할 경우도 스킨이 템플릿 스타일에 맞게 css가 바뀌어야할텐데, 이 경우 어떻게 처리할지..
- 템플릿도 스킨과 같이 https://cms.4men.kr/board/data_04 템플릿 게시판을 통해 설치하여 사이트별 환경설정에서 선택하여 사용하게 하게 되는데 이 경우도 엄격한 템플릿 세트 관리가 필요
댓글 쓰기