목표
현재 작동 중인 웹진 관리의 모든 기능(데이터베이스, 컨트롤러, 뷰, 에디터 등)을 매거진 관리로 복제합니다. 기본적인 편집 기능은 동일하게 유지하되, 추후 매거진만의 고유한 기능(페이지별 관리 등)을 독립적으로 개발할 수 있도록 구조를 분리합니다.
제안된 변경 사항
1. 데이터베이스 구조 생성
웹진과 동일한 구조의 매거진 전용 테이블을 생성합니다.
magazines테이블 생성 (webzines테이블 구조와 동일)magazine_categories테이블 생성 (webzine_categories테이블 구조와 동일)
2. 백엔드 (Controller & Routing)
- Controller 복제:
src/Controllers/WebzineAdminController.php를 복사하여MagazineAdminController.php를 생성합니다.- 내부 로직의 DB 참조를
magazines,magazine_categories로 변경. - 라우팅 및 리다이렉션 경로를
admin/magazine으로 변경.
- 내부 로직의 DB 참조를
- Routing 수정 (
public/index.php):- 기존에
WebzineAdminController를 가리키고 있던admin/magazine및admin/magazine/editor라우트를 새로운MagazineAdminController로 연결합니다. admin/magazine/category-save,admin/magazine/update,admin/magazine/delete등 매거진 전용 라우트를 추가합니다.- 매거진 에디터 저장용 API 라우트(
admin/api/magazine/save)를 추가합니다.
- 기존에
3. 프론트엔드 (Admin Views)
뷰 파일을 완전히 분리하여 향후 매거진 페이지별 관리 기능을 추가할 때 웹진 쪽에 영향을 주지 않도록 합니다.
- 목록 페이지:
views/admin/webzine_list.php➔views/admin/magazine_list.php로 복사 (내부 텍스트 "웹진" ➔ "매거진" 수정) - 에디터 껍데기:
views/admin/webzine_editor.php➔views/admin/magazine_editor.php로 복사 - 에디터 코어 스크립트:
views/admin/_webzine_editor_core.php➔views/admin/_magazine_editor_core.php로 복사- 저장 API 엔드포인트를
/admin/api/magazine/save로 변경.
- 저장 API 엔드포인트를
사용자 검토 필요 (User Review Required)
IMPORTANT
데이터베이스 테이블 분리 현재 제안된 방식은 magazines와 magazine_categories라는 완전히 새로운 테이블을 생성하는 방식입니다. 만약 기존 webzines 테이블에 type 컬럼을 추가하여 구분하는 방식을 원하신다면 알려주시기 바랍니다. 하지만 향후 매거진에서 "페이지별 관리" 기능 등 구조적 차이가 발생한다면 테이블을 물리적으로 분리하는 것이 훨씬 안정적이며, 현재 계획도 분리하는 방향으로 설정되어 있습니다.
검증 계획 (Verification Plan)
- 매거진 관리 메뉴 접속 시 정상적으로 목록이 표시되는지 확인.
- 매거진 카테고리 추가/삭제 및 새 매거진 생성 테스트.
- 매거진 에디터 접속 시 웹진과 동일한 에디터가 표시되며 모듈들이 정상 작동하는지 확인.
- 저장 버튼 클릭 시
admin/api/magazine/save로 성공적으로 저장되는지 확인.
DB 테이블 생성: 기존 웹진과 동일한 구조로 매거진 전용 테이블(magazines, magazine_categories)을 물리적으로 생성하여 분리했습니다.
컨트롤러 분리: MagazineAdminController를 새롭게 생성하고, 컨트롤러 내부의 모든 참조를 '매거진' 및 새로운 DB 테이블로 치환하였습니다.
뷰 분리: 관리자 화면(목록, 에디터 껍데기, 에디터 코어)을 매거진 전용 뷰(magazine_list.php, magazine_editor.php, _magazine_editor_core.php)로 복제하여 분리하고, 내부 텍스트 및 API 호출 경로를 모두 매거진 전용으로 맞췄습니다.
라우팅 연결: public/index.php에 매거진 관련된 처리 URL을 방금 만든 매거진 컨트롤러로 매핑했습니다. 이미 좌측 메뉴에 있던 /admin/magazine 링크가 정상적으로 작동할 것입니다.
이제 관리자 페이지 좌측 메뉴에서 '매거진' 탭을 클릭해 보세요. 웹진과 동일한 화면과 에디터가 별도의 독립적인 저장소(매거진 테이블)로 작동하는 것을 확인하실 수 있습니다.
1. 매거진 생성시 메타데이터 관리에서 판형(가로세로 사이즈 mm, 판형 사이즈는 추후 pdf저장, 출력 등을 고려하여 반드시 mm 단위로 해야, 기본 A4, A5, B5 등 선택으로 기본값 입력되도록), 페이지수 입력, 페이지 수대로 편집화면에서 판형대로 빈 페이지 수대로 생성(아래로...)
2. 텍스트 프레임에 집중
- 텍스트 프레임에서 페이지간 연결시 자연스럽게 연결되어 하나의 문서로 관리되도록(문단 추가 삭제 등시 연결)
- 텍스트 스타일 지정 사용(제목, 본문, 소제목, 페이지 등 스타일을 사용자가 임의 생성하여 텍스트에 지정하면 매거진 전체에 바뀌도록, 예를들어 본문 서체, 크기, 자간, 행간, 굵기, 들여쓰기 등을 지정하고 텍스트 범위 설정 후 본문 스타일을 지정하면 스타일대로 일괄 바뀌도록, 스타일은 별도 파일로 관리하여 매거진 프로젝트와 세트로 움직이도록, 스타일이 다른 매거진에는 영향을 주지 않음, 새로운 프로젝트 생성시 자동으로 기본 스타일 세트로 생성되게)
- 도형, 이미지, 영상 등이 텍스트 프레임에 끼워넣어졌을 때 텍스트 흐름을 어떻게 할지, 이미지나 도형을 텍스트 배경으로나 원형, 사각형 등 프레임을 고정했을 때 프레임 밖으로 흐를 수 있도록 할 수 있으면 좋음..