본문 바로가기
그누보드

[그누보드] 페이지 템플릿

by 똑똑한 영장류 2013. 1. 12.



그누보드로 테스트를 하나 해 보면서 사이트 구축시 참고하려고 정리해둡니다.



그누보드를 다운받아서 압축 풀어서 서버에 업로드하고 설치하는 것은 아주 쉽습니다.

그리고, 게시판만 제공되어지기 때문에 요즘의 덩치 큰 CMS들 같지 않게 옛날 생각도 나고 좋습니다. ㅎ


소스를 보면, 게시판 및 회원관리에 필요한 파일들이 bbs 디렉토리 아래에 있고, 그외 디렉토리 별로 나머지 필요한 파일들이 있습니다.


설치하고 나타나는 첫페이지, index.php 를 살펴보면, 새로운 페이지를 만들 때 많은 도움이 됩니다.


먼저, index.php와 같은 디렉토리 내에 새로운 페이지, a.php 를 하나 만든다고 가정합시다.


그럼, 빈 파일 열고 아래의 내용을 그대로 붙여넣고 시작하면 됩니다.


<?
include_once("./_common.php");

$g4[title] = "페이지 타이틀";
include_once("./_head.php");
?>


페이지 내용


<?php

include_once("./_tail.php");

?>

 


페이지 내용 부분에는 나름의 php코드나 html 코드를 필요한만큼 작성하면 되겠습니다.



그누보드 소스 디렉토리를 살펴보면, index.php 가 있는 디렉토리 내에 _common.php와 _head.php, _tail.php 가 있습니다.


_common.php 를 열어보면, 아래와 같습니다.


<?
$g4_path = "."; // common.php 의 상대 경로
include_once("$g4_path/common.php");
?> 


실제 내용을 담고 있는 파일은 common.php 인데, _common.php 에서 그 파일의 위치를 지정해주고 포함시키도록 하고 있습니다.

common.php 를 열어보면, 여러가지 설정과 함수 정의와 함께 아래 파일들을 포함시키도록 하고 있습니다.



include_once("$g4[path]/lib/constant.php");  // 상수 정의
include_once("$g4[path]/config.php");  // 설정 파일
include_once("$g4[path]/lib/common.lib.php"); // 공통 라이브러리 


_head.php 의 경우도 마찬가지로 head.php를 포함시키도록 작성되어 있습니다.


head.php 를 열어보면, 아래와 같이 다른 파일들을 포함시키는 부분이 또 존재합니다.



include_once("$g4[path]/head.sub.php");
include_once("$g4[path]/lib/outlogin.lib.php");
include_once("$g4[path]/lib/poll.lib.php");
include_once("$g4[path]/lib/visit.lib.php");
include_once("$g4[path]/lib/connect.lib.php");
include_once("$g4[path]/lib/popular.lib.php"); 


2번째 파일부터는 그누보드 제공 라이브러리 파일들입니다만, 첫번째 head.sub.php 파일은 개발자가 손을 델 수 있는 부분이 있는 파일입니다.


아시다시피, html 문서는 <head>부분과 <body>부분이 있습니다.

head  부분은 이후 내용에 필요한 설정을 하게 되고, 실제 브라우저 화면에 보이는 부분은 body 태그가 포함하게 되죠.


head.php 안에 먼저 포함되어 있는 head.sub.php 가 body 태그를 여는 부분까지 작성되어 있고, head.php 파일의 위 include_once 들 뒤에 브라우저 화면에 표시될 내용들이 시작됩니다. 사이트 공통의 상단 메뉴나, 좌측 사이드바 까지 포함할 수 있겠죠.


여기까지 사이트 공통의 앞부분 처리가 이루어지면, 내 입맛에 맞게 페이지 내용을 작성하면 됩니다. 보통 컨텐츠라고 불리는 부분이죠.


컨텐츠 부분 작성이 끝나면, 사이트 공통의 하단 부분을 포함시키도록 작성합니다.

위 예에서 include_once("./_tail.php"); 부분입니다.


_tail.php 도 열어보면, 마찬가지 방법으로 tail.php를 포함하도록 작성되어 있습니다.

tail.php 를 열어보면,


공통 하단 내용을 작성한 후에 tail.sub.php를 포함시키도록 작성되어 있습니다.

보통 푸터라고 하는, 페이지 하단에 위치할 내용을 작성하고 그 다음에 tail.sub.php를 포함시키도록 작성합니다.


tail.sub.php 를 열어보면, 마지막으로 <body>태그를 닫고, <html> 태그를 닫는 부분이 보입니다. 그 뒤에는 기타 php 코드가 자리하고 있네요.


브라우저 화면에서 상단에 공통적으로 자리하는 내용을 헤더라고 하면,

그 내용은 head.php 에 작성해주면 되고,


하단에 공통적으로 자리하는 내용, 푸터는 tail.php에 작성해주면 되겠습니다.


여기까지 index.php와 같은 디렉토리에 존재하는 a.php의 작성에 대해서 알아봤습니다.


보통 메뉴별로? 기능별로, 디렉토리를 따로 만들어 관련 파일을 넣어두곤 하는데,  만약, 이렇게 하위 디렉토리를 하나 만들고 그 안에 파일을 작성할 경우에는 어떻게 달라질까요?


그때도 페이지 템플릿은 같이 사용할 수 있습니다. 다만, 파일들을 포함시키는 부분에서 경로에 문제가 생기겠지요. 이 문제를 해결하는 방법이 _common.php 와 _head.php, _tail.php 입니다.


하위 디렉토리에 b.php 를 a.php 와 같은 내용으로 준비합시다.


그리고, _common.php 와 _head.php, _tail.php 은 index.php 파일과 같은 디렉토리에 있는 것들을 그대로 복사해서 b.php 와 같은 위치에 넣어 줍시다.

그리고, _common.php 를 열어서 $g4_path 만 수정을 해 주면 됩니다.


$g4_path = ".."; // common.php 의 상대 경로


common.php는 현재 b.php 가 있는 디렉토리의 상위 디렉토리에 있으니까, 상대 경로로 점 두개를 찍어주면 됩니다.


이 경로 수정을 제외하고는 index.php 의 경우와 똑같습니다.


이 하위 디렉토리를 템플릿으로 만들어 두고 써도 되겠군요.ㅎ










댓글