그누보드7 커뮤니티 템플릿 복제 시 식별자 중복으로 인한 업데이트 오작동 해결 방법
페이지 정보

본문
그누보드7에서 기존 템플릿을 복제하여 커스텀 템플릿을 만들 때 원본과 식별자나 버전이 겹쳐 발생하는 업데이트 알림 및 레이아웃 손실 문제를 해결하고, 필요한 설정 파일을 올바르게 수정하는 방법을 알아봅니다.
커스텀 템플릿 복제 시 원본 업데이트 알림이 뜨는 이유와 해결 방법
그누보드7에서 기존 기본 템플릿(sirsoft-basic) 등을 복제하여 새 커스텀 템플릿을 만들었을 때 관리자 화면에서 원본 템플릿의 업데이트 알림이 뜨는 것은, 복제 과정에서 단순 복사만 이루어지고 내부의 고유 식별 정보가 원본 그대로 남아 있기 때문에 발생합니다.
1. 주요 원인
- 복제한 템플릿의
template.json파일 안에 있는 원본 저장소 주소(github_url), 식별자(identifier), 이름(name), 버전 정보가 원본과 동일하게 유지되어 있습니다. - 빌드 설정 파일(
vite.config.ts)의 전역 식별자나 IIFE 전역 변수명이 새 템플릿 기준으로 치환되지 않았습니다. - 이로 인해 완전히 다른 커스텀 템플릿임에도 불구하고 관리자 화면이 원본 템플릿의 배포 버전을 바라보며 업데이트 알림을 발생시킵니다.
2. 해결 및 조치 방법
- 사전 백업: 템플릿 파일 및 레이아웃을 수정하기 전에는 반드시 템플릿 전체를 백업해 두어야 합니다.
template.json수정: 복제한 템플릿 폴더 내의template.json파일을 열어identifier,name,version,github_url항목을 원본과 겹치지 않는 고유값 및 새 사용자 레포지토리 주소로 변경합니다.- 빌드 설정 파일 수정:
vite.config.ts파일의 IIFE 전역 변수명 및 빌드 산출물 식별 정보를 새 템플릿 기준으로 함께 치환합니다. - 업데이트 실행 시 주의사항: 템플릿 관리 화면에서 업데이트 버튼을 클릭할 때 기존 편집 레이아웃을 덮어쓸지 여부를 묻는 모달이 표출됩니다. 이때 '모두 교체'를 선택하면 기존에 작업한 레이아웃이 덮어쓰여 손실될 수 있으므로 주의해야 합니다.
커스텀 템플릿 식별자 중복 방지 및 수정 파일 안내
그누보드7 환경에서 기존 템플릿을 복제하여 새 커스텀 템플릿을 만들 때 원본과 식별자 및 버전이 겹치면 관리자 화면에서 원본 업데이트 알림이 뜨거나 업데이트 시 레이아웃이 덮어씌워지는 오작동이 발생할 수 있습니다. 이를 방지하기 위해 독립적으로 수정해야 할 파일과 항목은 다음과 같습니다.
1. 템플릿 설정 파일 (template.json) 수정
복제한 템플릿 폴더 내의 template.json 파일에서 원본의 정보가 남아있지 않도록 다음 고유값들을 변경해야 합니다.
identifier: 원본과 겹치지 않는vendor-template형식 등의 고유 식별자로 변경합니다.name: 새 커스텀 템플릿의 이름으로 수정합니다.version: 템플릿 버전을 새 템플릿 기준에 맞게 설정합니다.github_url: 원본 저장소 주소(예:g7-template-sirsoft-basic)가 그대로 남아있으면 관리자 화면에서 원본 업데이트를 인식하므로, 원본 URL을 제거하거나 사용자의 새 저장소 주소로 명시합니다.
2. 빌드 설정 파일 (vite.config.ts) 수정
단순 복사만 이루어지면 빌드 설정의 전역 식별자가 치환되지 않으므로 아래 항목을 함께 수정해야 합니다.
- IIFE 전역 변수명 및 빌드 산출물 식별 정보: 새 템플릿 기준에 맞추어 함께 치환하여 원본과의 충돌을 방지합니다.
3. 적용 전후 확인 사항
- 사전 백업: 템플릿 파일을 직접 수정하거나 업데이트를 진행하기 전에는 반드시 전체 템플릿을 백업해 두어야 합니다.
- 결과 확인: 설정 변경 후 관리자 화면의 템플릿 관리 영역으로 이동하여 원본 템플릿의 업데이트 알림이 더 이상 노출되지 않는지 확인합니다.
그누보드7 템플릿 헤더 메뉴 수정 및 순서 변경 방법
그누보드7 기본 번들 템플릿(sirsoft-basic) 및 사용자 템플릿은 관리자 화면에서 헤더 메뉴를 편집하거나 순서를 직접 변경하는 기능을 제공하지 않습니다. 데이터베이스의 boards 테이블에도 메뉴 순서용 컬럼이 없어 관리자 화면에서 순서를 지정할 수 없습니다.
따라서 헤더 메뉴를 수정하거나 순서를 바꾸려면 원본 템플릿(sirsoft-basic)을 직접 수정하는 대신 별도의 사용자 템플릿으로 복제한 후 템플릿 소스 파일을 직접 수정해야 합니다.
1. 템플릿 소스 파일 수정 위치
헤더 메뉴 구조와 순서는 템플릿 내의 컴포넌트 파일에서 정의됩니다.
- 데스크톱 환경:
Header.tsx파일의Nav안에서 게시판map블록과 인기·쇼핑 버튼의 위치를 이동하여 순서를 변경할 수 있습니다. - 모바일 환경:
MobileNav.tsx파일의Li블록도 동일한 순서로 수정해야 모바일 화면에 반영됩니다. - 게시판 표시 순서 재정렬: API가 전달한 순서를 그대로 사용하지 않고 템플릿 소스에서 직접 역순 등으로 정렬할 수 있습니다.
// Header.tsx 예시 const orderedBoards = [...boards].reverse(); // 생성 역순 정렬
2. 주의사항 및 다음 행동
- 번들 템플릿을 직접 수정하면 향후 코어 업데이트 시 내용이 덮어써질 수 있으므로 반드시 사용자 템플릿으로 복제한 뒤 수정하세요.
- 데스크톱(
Header.tsx)과 모바일(MobileNav.tsx) 컴포넌트를 모두 수정해야 양쪽 환경에서 동일한 메뉴 순서가 적용됩니다.
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 커스텀 템플릿 복제 후 원본 업데이트 알림이 뜸 | template.json 내 식별자 및 원본 GitHub URL 잔존 여부 | identifier, name, version, github_url을 고유값으로 변경 |
| 빌드 설정 파일 관련 충돌 발생 | vite.config.ts 내 전역 식별자 치환 여부 | IIFE 전역 변수명 및 빌드 산출물 식별 정보 수정 |
| 업데이트 시 레이아웃 손실 우려 | 업데이트 모달의 '모두 교체' 옵션 노출 여부 | 수정 전 전체 템플릿 백업 수행 |
Q. template.json을 수정해도 업데이트 알림이 사라지지 않습니다.
- 예외:
vite.config.ts의 IIFE 전역 변수명이나 빌드 산출물 식별 정보가 원본 값으로 남아있으면 관리자가 이를 원본 템플릿의 업데이트로 인식할 수 있습니다. 해당 파일 내의 식별자도 함께 수정해야 합니다.
Q. 업데이트 시 레이아웃이 덮어씌워지는 것을 막으려면?
- 대안: 업데이트 과정에서 '모두 교체'를 선택하면 기존 레이아웃이 손실됩니다. 업데이트 전 반드시 템플릿 폴더 전체를 백업하십시오. 만약 손실되었다면 코드 편집 화면이나 레이아웃 편집기의 버전 기록을 통해 복구를 시도할 수 있습니다.
함께 보면 좋은 글
- 그누보드7 회원 식별자 설계 및 기능 제안 가이드
- 그누보드7 설치 시 composer 설치 오류 및 환경 제약 해결 가이드
- 그누보드7 설치 2단계 에러: 인코딩 및 환경 설정 해결 방법
참고자료
기타 참고자료
- 다음글나리야 빌더 SEO canonical 태그 index.php 경로 제거 방법 26.11.11
댓글목록
등록된 댓글이 없습니다.