링크
https://mansu.kim/entry/%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C-%ED%85%8C%EB%A7%88-%EC%A0%9C%EC%9E%91-19-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EA%B7%B8%EB%A3%B9-%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B0%9C%EB%B0%9C?category=1130728 (88) https://sir.kr/pg_tip/16612?sfl=wr_subject%7C%7Cwr_content&stx=%ED%85%8C%EB%A7%88%EC%A0%9C%EC%9E%91%EA%B8%B0 (87)원문(출처) : 그누보드 테마 제작 19 - 게시판 그룹 페이지 개발
==> 개발한 소스의 내용을 더 볼 수 있고, 가끔은 다른 이야기도 있어요~
드디어 게시판 작업에 진입하였네요.
짝짝짝~ (자축의 박수~)
게시판, 그 중에서도 오늘은 게시판 그룹 페이지를 만들어봅니다.
먼저 그누 기본 테마 화면을 살펴보고,
현재 제작중인 테마의 모습을 살펴볼게요.

아주 심플하고 간결한 UI네요~
그리고 현재 작업 전이라 이상한 모습의 게시판 그룹 페이지!

저 망가진 화면을 예쁜 화면으로 바꾸는게 오늘의 일인거죠~
웹에서 호출되는 페이지인 "/bbs/group.php" 분석부터 들어가봅니다.

제작중인 테마 페이지의 group.php를 다시 살펴보러 갑니다.
페이지의 소스는 아주 심플합니다.
그냥 그룹에 속한 게시판을 모두 검색하여,
latest 함수를 호출하여 화면에 출력하는 구조입니다.
메인 페이지 작업과 거의 유사한 구조에요. 즉 한 번 해본 일이라는거죠 ^^;

저 위에 빨간 네모안의 latest 함수때문에
예전에는 고생한 기억이 좀 있었습니다.
생각보다 하는 일이 많은 함수더라구요.
(오죽하면 latest.lib.php 파일 안에 latest() 함수가 하나만 있겠어요~
능력이 되니 독방 차지하고 있는거겠죠~)
latest() 함수가 하는 일 (순서대로)
1. SKIN 디렉토리 알아내기
2. 캐싱 사용 여부 확인하여 DB 쿼리 조회 여부 판단
3. 캐싱 존재 여부 확인하여 캐싱과 쿼리 중 판단
4. 그룹에 속한 게시판 조회
5. 각 게시판 별 출력할 리스트 조회
6. 리스트의 각 항목들을 출력하기 좋게 변경
7. 캐싱되지 않은 게시판이라면 캐싱 저장(캐싱 사용 설정일때)
8. 1에서 결정된 SKIN 디렉토리 호출
이렇게 많은 일을 하는 함수인데,
걍 DB 조회해서 편집하는 넘이겠지라고 과소평가했던거죠~
이제는 알았으니, 전처럼 고생하지 않을겁니다. ^^
우선 latest() 함수가 판단한 Skin 경로가 제작중인 테마와 같은지 확인을 합니다.
이 확인 과정을 안하면, 엉뚱한 파일을 고치면서
웹페이지에 반영이 안된다면서 우울해질 수 있습니다.

알아냈으니, 해당 스킨 폴더로 이동하여 다시 살펴보겠습니다.
/theme/mt703/skin/latest/basic/latest.skin.php

살펴보니, 지난 메인 작업때 이미 수정을 해놓은 파일입니다.
그렇다면, 테마의 group.php 파일의 상하단을 감싸는 태그가 문제겠네요.
index.php와 비교하면서 변경하면 바로 끝날 듯 합니다.
잉... 정말 끝났네요...
완료된 화면의 모습입니다.

그냥 작업하면서 따라적다가보니 끝난 느낌이네요~
이제 본격적인 게시판 작업으로 진입하겠네요~
게시판 작업도 그룹 페이지처럼 술술 지나가면 좋겠다고 바래봅니다.
원문(출처) : 그누보드 테마 제작 19 - 게시판 그룹 페이지 개발
==> 개발한 소스의 내용을 더 볼 수 있고, 가끔은 다른 이야기도 있어요~
댓글 5개
게시글 목록
| 번호 | 제목 |
|---|---|
| 17316 | |
| 17315 |
JavaScript
시계 스크립트 그런데 페이지 뜨는건 느린게 문제네...
|
| 17313 |
PHP
php 업로드 소스
4
|
| 17312 | |
| 17305 | |
| 17304 | |
| 17298 |
node.js
간단한 채팅
|
| 17294 | |
| 17291 | |
| 17285 | |
| 17284 |
JavaScript
두가지 형태의 페이지 로딩 [ 로딩중, 로딩 프로그레스바 ]
2
|
| 17279 | |
| 17272 | |
| 17271 |
JavaScript
관계에 따른 메뉴 구성방안
1
|
| 17270 | |
| 17262 | |
| 17255 | |
| 17248 |
JavaScript
엘레먼트 요소에서 data 를 이벤트 핸들러로 사용하기
4
|
| 17241 | |
| 17238 |
MySQL
interval에 쓸 수 있는 값
3
|
| 17236 |
PHP
탈퇴합니다.
6
|
| 17220 | |
| 17217 |
JavaScript
회원가입
2
|
| 17216 | |
| 17214 | |
| 17207 | |
| 17205 | |
| 17203 | |
| 17201 | |
| 17198 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기