Files
dnssash/theme/rd.laser/_docs/수정이력.md
T
2026-06-11 18:47:38 +09:00

10 KiB
Raw Blame History

rd.laser 테마 수정 이력

프로젝트: E:\project\cafe24_laser 테마 경로: theme/rd.laser 작업 목적: PC 전용 고정 레이아웃 구현 + 모바일 반응형 제거 + 게시판/메뉴/서브타이틀 정상화


핵심 개념 (다음 작업 시 참고)

이 사이트의 레이아웃 구조

head.sub.php       → HTML <head> 태그, viewport, CSS/JS 로드
head.php           → 헤더 출력 (메뉴 + 유동형 광고 + 서브타이틀)
  └ rb.layout_hd/lwd_laser/header.php  → 헤더 레이아웃 선택
      └ skin/nav/lwd_laser/nav.skin.php → 실제 메뉴 HTML/CSS/JS
tail.php           → 푸터 출력 + sub-page-container 닫는 태그

PC 고정 레이아웃 원리

  • <meta name="viewport" content="width=1280, ..."> → 모바일에서도 1280px 기준으로 렌더링
  • body { min-width: 1280px } → body 최소 너비 고정 (html에 걸면 안 됨 - 아래 주의사항 참고)
  • 헤더 position: static (fixed 아님) → 스크롤 시 헤더도 같이 올라감 (laser.or.kr 방식)

주의사항 - html vs body min-width

❌ html { min-width: 1280px }
   → html이 스크롤 컨테이너가 되어 position:fixed 헤더가 viewport 기준이 아닌
     html 기준으로 고정됨 → 가로 스크롤 시 헤더/메뉴가 따라오지 않음

✅ body { min-width: 1280px }
   → 브라우저 viewport 기준으로 동작, 가로 스크롤 정상

게시판 스킨 CSS 로드 방식

그누보드는 board 스킨 CSS를 자동 로드하지 않음. 각 스킨의 list.skin.php, view.skin.php, write.skin.php 상단에 직접 추가해야 함:

$_skin_url = G5_THEME_URL . '/skin/board/스킨폴더명';
add_stylesheet('<link rel="stylesheet" href="' . $_skin_url . '/style.css?ver=' . G5_SERVER_TIME . '">', 0);

요청별 수정 내용


[요청 1] 모바일 반응형 전부 제거 → PC 전용

문제: 모바일 미디어쿼리가 PC 레이아웃을 깨뜨림

수정 파일:

파일 변경 내용
rb.css/mobile.css @media (max-width:1024px) 블록 전체 제거
rb.css/custom.css @media all and (max-width:1024px) 블록 전체 제거
rb.layout/laser/style.css @media (max-width:768px), @media (max-width:480px) 제거
skin/board/journal/css/style.css 모바일 미디어쿼리 제거
skin/board/coverage/css/style.css 모바일 미디어쿼리 제거
skin/board/interview,newsfocus1,2,newtech,photonews,newproduct,notice,rb.bbs,rb.bbs_three_column_layout/css/style.css 모바일 미디어쿼리 제거
skin/page/greeting,greeting_new,lasertech,lasertech_new,moldjournal,moldjournal_new/css/style.css 모바일 미디어쿼리 제거
rb.layout,rb.layout_ft,rb.layout_hd 하위 모든 style.css (약 30개) 모바일 미디어쿼리 제거
rb.custom 하위 모든 module.css (약 10개) 모바일 미디어쿼리 제거
css/custom_header.css 모바일 패널/오버레이/GNB 스타일 제거
skin/nav/lwd_laser/style.css 모바일 미디어쿼리 제거
skin/nav/lwd_laser_nohp/style.css 모바일 미디어쿼리 제거

[요청 2] 메뉴 스킨 모바일 코드 제거

수정 파일:

파일 변경 내용
skin/nav/lwd_laser/nav.skin.php 모바일 타입 설정 변수, 햄버거 버튼, 모바일 패널 HTML, 모바일 메뉴 JS 제거
skin/nav/lwd_laser_nohp/nav.skin.php 동일

[요청 3] 가로 스크롤 안 되는 문제 해결

원인: html { min-width: 1280px } → html이 스크롤 컨테이너가 되어 fixed 헤더가 따라오지 않음

수정 파일:

파일 변경 내용
css/style_prestige_1.css html { min-width: 1280px }body { min-width: 1280px } 로 이동
rb.css/custom.css 동작하지 않던 body.pc-only-layout { min-width } 제거

[요청 4] 게시판 스킨 CSS 미적용 문제

원인: rb.board.core.* 스킨 폴더에 CSS 파일이 없고, 로드 코드도 없었음

수정 파일:

파일 변경 내용
skin/board/rb.board.core.journal/style.css journal/css/style.css 복사하여 생성
skin/board/rb.board.core.journal/list.skin.php 상단에 add_stylesheet CSS 로드 코드 추가
skin/board/rb.board.core.journal/view.skin.php 동일
skin/board/rb.board.core.journal/write.skin.php 동일
skin/board/rb.board.core.coverage/style.css coverage/css/style.css 복사하여 생성
skin/board/rb.board.core.coverage/list.skin.php CSS 로드 코드 추가
skin/board/rb.board.core.coverage/view.skin.php 동일
skin/board/rb.board.core.coverage/write.skin.php 동일
skin/board/rb.board.core/style.css journal style.css 복사하여 생성
skin/board/rb.board.core/list.skin.php CSS 로드 코드 추가
skin/board/rb.board.core/view.skin.php 동일
skin/board/rb.board.core/write.skin.php 동일

추가 수정:

  • journal/css/style.css, coverage/css/style.css.sub-page-container { padding-top: 0px; !important } 문법 오류 수정 (!important 위치 잘못됨)

[요청 5] 헤더 fixed → 스크롤과 함께 이동 (laser.or.kr 방식)

원인: .lwd-header-wrap { position: fixed } 로 헤더가 화면에 고정되어 있었음

수정 파일:

파일 변경 내용
skin/nav/lwd_laser/style.css .lwd-header-wrap 에서 position: fixed; top: 0; left: 0; z-index: 1000 제거
css/style_prestige_1.css body { padding-top: 270px }padding-top: 0 으로 변경
css/style_prestige_1.css .sidebar-inner { top: 290px }top: 20px 으로 변경
skin/nav/lwd_laser/nav.skin.php 헤더 높이 동적 계산 JS (adjustBodyPadding) 제거
skin/board/journal/css/style.css PDF viewer header top: 80pxtop: 0
skin/board/rb.board.core.journal/style.css 동일

[요청 6] 서브타이틀 함수 독립화 (게시판에서 서브타이틀 안 나오는 문제)

원인:

  • get_sub_title() 함수가 nav.skin.phpsplit_menu_name()에 의존
  • 게시판 페이지에서 함수 로드 순서 문제로 split_menu_name 미정의 오류 발생 가능
  • $bo_table 변수를 $_GET에서만 읽어서 pretty URL 환경에서 값이 없었음

수정 파일:

파일 변경 내용
head.php get_sub_title(), get_bo_table_from_url_regex()function_exists() 체크로 감싸 중복 선언 방지
head.php split_menu_name 없어도 동작하는 get_menu_name_ko() 독립 함수 추가
head.php $bo_table 변수를 그누보드 전역변수 우선 사용, 없으면 $_GET 폴백

[요청 7] 유동형 광고 - 화면 절반 이하로 좁아지면 자동 숨김

원인: 화면이 좁아지면 광고가 콘텐츠 영역과 겹침

계산 기준:

콘텐츠 max-width(1400) + 광고 너비(140) × 2 + 여백(20) × 2 = 1720px
→ 1720px 이하에서 광고 숨김

수정 파일:

파일 변경 내용
css/floating_ads.css 파일 끝에 @media (max-width: 1720px) { .floating-ad { display: none !important; } } 추가

[요청 8] PC 고정 화면 크기 설정 (모바일에서 PC 레이아웃 그대로 보기)

수정 파일:

파일 변경 내용
head.sub.php viewport를 width=1280, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no 로 변경

[요청 9] 게시판 sticky 사이드바 배경 이동 문제

원인: position: sticky 사이드바에 align-self: flex-start 누락 flex 컨테이너에서 sticky가 동작하려면 반드시 필요

수정 파일:

파일 변경 내용
skin/board/journal/css/style.css .layout-sidebar-left, .layout-sidebar-rightalign-self: flex-start 추가
skin/board/coverage/css/style.css 동일
skin/board/interview,newsfocus1,2,newtech,photonews,newproduct,notice,rb.bbs_three_column_layout/css/style.css 동일 (8개 파일)

현재 최종 설정 요약

viewport    : width=1280 고정 (모바일에서도 PC 레이아웃)
body        : min-width: 1280px, padding-top: 0
헤더        : position: static (스크롤과 함께 이동)
유동형 광고 : 화면 1720px 이하에서 자동 숨김
게시판 CSS  : 각 skin.php 상단에서 add_stylesheet로 직접 로드
서브타이틀  : head.php에서 독립 함수로 처리 (nav.skin.php 의존 없음)
모바일 코드 : 전체 제거 (미디어쿼리, 햄버거 메뉴, 모바일 패널 등)

파일 구조 참고

theme/rd.laser/
├── head.php                          ← 헤더 출력 (메뉴+광고+서브타이틀)
├── head.sub.php                      ← HTML head 태그 (viewport, CSS/JS)
├── tail.php                          ← 푸터 출력
├── css/
│   ├── style_prestige_1.css          ← 전체 레이아웃 기본 스타일
│   └── floating_ads.css              ← 유동형 광고 스타일
├── rb.css/
│   ├── style.css                     ← 그누보드 공통 스타일
│   ├── mobile.css                    ← 모바일 스타일 (현재 내용 비움)
│   └── custom.css                    ← 커스텀 스타일
├── rb.layout_hd/lwd_laser/
│   └── header.php                    ← 헤더 레이아웃 선택
└── skin/
    ├── nav/lwd_laser/
    │   ├── nav.skin.php              ← 메뉴 HTML/JS
    │   └── style.css                 ← 메뉴 스타일
    └── board/
        ├── rb.board.core.journal/
        │   ├── style.css             ← 저널 게시판 스타일
        │   ├── list.skin.php         ← 목록 (CSS 로드 포함)
        │   ├── view.skin.php         ← 뷰 (CSS 로드 포함)
        │   └── write.skin.php        ← 쓰기 (CSS 로드 포함)
        ├── rb.board.core.coverage/   ← 동일 구조
        └── rb.board.core/            ← 동일 구조