그누 안에서 head.php와 tail.php 안 붙는 문서 만들기 > 그누3 팁자료실

그누3 팁자료실

그누 안에서 head.php와 tail.php 안 붙는 문서 만들기 정보

그누호환 그누 안에서 head.php와 tail.php 안 붙는 문서 만들기

본문

제목을 뭐라고 정해야 할지 알 수가 없네요--; 카테고리도 그누호환이 맞는 건지..
아시는 분이 보면 아무 것도 아니지만 전 어제 이걸 알아냈습니다. 혹시나 저같이 이 팁을 몰라서 고민하실 분이 있으실까봐 올립니다. 대충 검색해봐도 이에 관한 설명은 없더군요. 있다면 양해를...--;

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "DESIGN");
$html_title = "시루진닷컴 - 깊은산속 외딴불빛"; // 이 줄은 없어도 됨
?>

그누에서 문서 만들 때, 최근 게시물이나 로그인폼을 설치하려면 항상 위와 같은 구문이 문서 상단에 있어야 합니다. 그런데 문제는 저렇게 할 경우, 무조건 head.php와 tail.php가 따라 붙는다는 겁니다. 물론 게시판이라면 따로 head01.php, tail01.php 등으로 해서 모양을 달리 할 수 있는데 일반 php문서는 항상 같은 헤드와 테일을 써야만 합니다... 라고 어제까지 알고 있었습니다. -_-;;

일반문서를 head.php와 tail.php 없이 쓸려면 위에 소개한 구문의 두번째 줄을 아래처럼 손보면 됩니다.

define("_DOCTYPE_", "DESIGN"); // head.php와 tail.php까지 적용
define("_DOCTYPE_", "STYLE"); // head.sub.php와 tail.sub.php까지만 적용
define("_DOCTYPE_", "NONE"); // 아무 것도 적용 안 됨

즉, DESIGN 자리에 STYLE을 넣으면 기존 스타일 시트까지 적용된 일반 문서가 되고 NONE을 넣으면 그것도 아니란 거죠. 이걸 알고 나니까 어제부터 저도 일반문서에 헤드와 테일을 다양하게 적용할 수 있게 되더군요^^; 혹시나 해서 초보분들을 위해서 그것까지 알려드리자면, STYLE이나 NONE을 적용한 다음, 다른 헤드와 테일문서를 인클루드 시키면 됩니다.


///////////////(사용례)///////////////

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "STYLE"); // head.sub.php와 tail.sub.php까지만 적용
$html_title = "시루진닷컴 - 깊은산속 외딴불빛";
?>

<? include "head_my.php" ?>

<table width=100% ... 이러쿵 저러쿵...
여기에 로그인아웃, 최근글 등을 띄울 수 있음.
</table>

<? include "tail_my.php" ?>

///////////////(사용례 끝)///////////////


한가지 더-_-;; (철저하게 초보심정에서..)

당연히 head_my.php와 tail_my.php의 상단에도 반드시 원래 헤드, 테일의 상단에 있는 구문이 있어야 합니다. 찾아보시면 아래와 같은 구문이 있을 겁니다. 그걸 그대로 복사해서 붙이세요.


▼▼▼▼▼▼▼▼▼이건 head.php▼▼▼▼▼▼▼
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

/*
    사용자 화면 상단과 좌측을 담당하는 페이지입니다.
    상단, 좌측 화면을 꾸미려면 이 파일을 수정합니다.
*/
include "./bbs/gblayer.php";
?>


▼▼▼▼▼▼▼▼▼이건 tail.php▼▼▼▼▼▼▼
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

/*
    사용자 화면 우측과 하단을 담당하는 페이지입니다.
    우측, 하단 화면을 꾸미려면 이 파일을 수정합니다.
*/
?>


쓰다보니 구질구질 영 말이 많아진 것 같은데 제가 아직도 초보다보니 최대한 초보의 눈높이에 맞춰서 설명하였습니다. 널리 이해해주세요.
추천
0

댓글 전체

exit는 실행중인 스크립트(*.php 등..)를 종료한다는 의미입니다.
그누에서 가끔보면 DOCTYPE이 지정되지 않았습니다라는 메세지만 뜨고 끝나버리는 경우가 있는데 그와 같이 스크립트 내에서 실행중인 프로세스가 그냥 종료되어 버립니다..

개별페이지 접근불가는...http://www.sir.co.kr/?doc=bbs/gnuboard.php~~~~~~~이런 식의 접근이 아니라..http://www.sir.co.kr/bbs/gnuboard.php~~~~~~~~~~요런 식으로 접근할 수는없다는걸 의미하지요..
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "DESIGN");
?>

미리 말씀드리자면 전 php 거의 초보입니다^^; 완전히 제 추축에 의해서 설명드려 볼게요. 다행히도 요즘 들어서 조금씩 이해가 되고 있긴 합니다. 말씀하신 소스만 놓고 나름대로의 해석을 해보자면

if (!defined("_GNUBOARD_")) exit; // 느낌표!는 '부정'을 뜻하더군요. 즉 여기서의 의미는 "_GNUBOARD_"가 정의되어 있지 않다면 exit 함..이라고 보입니다. 그리고 그 정의는 아래 소스인 거 같네요.

define("_DOCTYPE_", "DESIGN"); // "_DOCTYPE_"을 "DESIGN"으로 설정함.

다시 총정리하면--;; DOCTYPE을 DESIGN으로 설정함. 만약에 그 어떤 것으로든(그누에선 현재 DESIGN, STYLE, NONE의 세가지 옵션을 마련해놓았죠) 설정이 안 되어 있으면 exit됨.

exit의 정확한 기능은 모르겠네요. 일반적인 의미로는 퇴장, 출구 등으로 쓰이는데 대충 그런 뉘앙스인 거 같습니다^^;; 여기까지가 제 한계입니다. 흑...
설명이 긴것을 보니 너무나 구체적으로 소화되기 쉽게 설명하신것같습니다.그런데 여기에도 저에게는 의문점이 많이 보이네요ㅜㅜ "개별페이지 접근불가" 라는 의미와 defined 와 define함수의 정의와 용례를 더욱 알고 싶습니다. 님의 노고에 깊은 감사드립니다.
감사드립니다^^;

덧. 저렇게 했을 땐 항상 주소에 "./?doc=main_my.php" 이런 식으로 해야 한다는..-_-;;; (노파심노파심노파심..)
정말 좋은 팁이네요...
저역시 위 내용을 몰라서 고생한 적이 있었던 기억이...
그때는 각각의 웹페이지로 mb_id가 존재하는지 여부를 변수로 넘겨서 로그인상태인지 로그아웃 상태인지를 체크했었는데 그러자니 로그인 되었을때와 그렇지 않을때의 메뉴링크 url이 달라져서 완전 노가다했었더랬습니다...^^;

좋은 팁 감사드립니다.
덕분에 이번작업시 막막했던 일 하나를 순식간에 덜었네요...^^
아 ! 이게필요해서왔는데  검색하자마자 운좋좋게 한번에 찿았네요.
일반문서에 헤드와테일을 안달고 나와야될일이있었거든요.
팁게시판에서 언젠가 일반문서에 head2.php나 head3문서를 만들어서 사용하는팁을본것같아서 찿으려들어왔었는데 아예 헤드와 테일을필요로하지않는문서에는 이게 딱! 이네요.
적용해보겠습니다.
고맙습니다.
전체 1,026
그누3 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT