그누 안에서 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문서를 만들어서 사용하는팁을본것같아서 찿으려들어왔었는데 아예 헤드와 테일을필요로하지않는문서에는 이게 딱! 이네요.
적용해보겠습니다.
고맙습니다.
전체 7
그누3 팁자료실 내용 검색

회원로그인

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