일반페이지 불러올때 상단을 어떤 식으로 불러와야 되는지요? > 그누3질답

그누3질답

일반페이지 불러올때 상단을 어떤 식으로 불러와야 되는지요? 정보

그누보드 일반페이지 불러올때 상단을 어떤 식으로 불러와야 되는지요?

본문

현재 그누 3-8로 테스트하고 있습니다..
그누 인덱스 파일 내에 
// DESIGN 은 상단, 하단 파일을 필요로 하는 TYPE  부분의 내용을 참고하여
적용하고자 하는 일반 문서를 아래와 같이 상-하단을 적용하고
<?
include './head.sub.php';
include './head.php';
 ?>
내용...
내용...
<?
include($gnu_path . 'tail.php');
include($gnu_path . 'tail.sub.php');
?>
이런식으로 하니 _DOCTYPE_ 오류 : NONE , STYLE , DESIGN 중 하나를 사용하세요.라고
상단에 나옵니다..... 정확히 상단과 하단의 인클루드를 어떻게 시켜야 되는지요?
2-65에서는 아래와 같이 적용했었습니다만........
<?
$gnu_path = "./";
include($gnu_path . 'config.php');
include($gnu_path . 'lib.php');

$html_title = "그누보드";
include($gnu_path . 'head.sub.php');
include($gnu_path . 'head.php');
?>
내용.......................................
내용......................................
<?
include($gnu_path . 'tail.php');
include($gnu_path . 'tail.sub.php');
?>
===============================================================================================================
아래 내용은 그누 인덱스 내용중 일부 입니다.............개념이 없다보니 이해가 안되요...^^
// 페이지의 DOCTYPE 에 따라 include 를 결정함
//
switch (_DOCTYPE_) {
 &nbsp; &nbsp;// NONE 는 상단과 하단 파일이 필요없는 TYPE
 &nbsp; &nbsp;case "NONE" :
 &nbsp; &nbsp; &nbsp; &nbsp;echo $ob_content;
 &nbsp; &nbsp; &nbsp; &nbsp;break;
 &nbsp; &nbsp;// STYLE 은 stylesheet 등만 적용하는 TYPE
 &nbsp; &nbsp;case "STYLE" :
 &nbsp; &nbsp; &nbsp; &nbsp;include './head.sub.php';
 &nbsp; &nbsp; &nbsp; &nbsp;echo $ob_content;
 &nbsp; &nbsp; &nbsp; &nbsp;include './tail.sub.php';
 &nbsp; &nbsp; &nbsp; &nbsp;break;
 &nbsp; &nbsp;// DESIGN 은 상단, 하단 파일을 필요로 하는 TYPE
 &nbsp; &nbsp;case "DESIGN" :
 &nbsp; &nbsp; &nbsp; &nbsp;include './head.sub.php';
 &nbsp; &nbsp; &nbsp; &nbsp;include './head.php';
 &nbsp; &nbsp; &nbsp; &nbsp;echo $ob_content;
 &nbsp; &nbsp; &nbsp; &nbsp;include './tail.php';
 &nbsp; &nbsp; &nbsp; &nbsp;include './tail.sub.php';
 &nbsp; &nbsp; &nbsp; &nbsp;break;
 &nbsp; &nbsp;// 나머지 TYPE 은 오류
 &nbsp; &nbsp;default :
 &nbsp; &nbsp; &nbsp; &nbsp;if (!file_exists($doc) && $doc) {
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo "$doc 파일이 존재하는지 확인하여 주십시오.";
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit;
 &nbsp; &nbsp; &nbsp; &nbsp;}
 &nbsp; &nbsp; &nbsp; &nbsp;echo "_DOCTYPE_ 오류 : NONE , STYLE , DESIGN 중 하나를 사용하세요.<p>";
 &nbsp; &nbsp; &nbsp; &nbsp;echo $ob_content;
 &nbsp; &nbsp; &nbsp; &nbsp;break;
  • 복사

댓글 전체

송형석님 정말 상세한 설명글 잘읽었습니다....
홈피 제작시 일반적으로 가장 잘 알아야될 부분이 바로 송형석님의 글입니다...
막강한 그누보드를 자유자제로 만질줄 알게 되었을때 비로서 완성도 높은 사이트가
나올것 같습니다... 물론 그누 소스 자체를 만질줄 알면 금상첨화겠지만
소스전부를 공부하기엔 개인적으로 역부족이고 그누활용 측면에 중점을 두고
그누를 만지는 터라 형석님의 글이 많이 도움되었습니다..........
일반파일을 html로 만들지말고  에디터에서 php로 만든다음
예로 파일명 main2.php
를 만듭니다.
파일의 상단이나 하단에는 다음과 같은 소스가 들어가야 하구요
절대적인 것이지요
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "NONE");  <--이분분의  <"none" "DESIGN" "STYLE">이변수들이 상단하단의 파일을 불러올 변수들입니다..인덱스파일의 내용의 설명그대로 입니다
none은 그누보드의 아무런 영향이 없이 main2.php파일만 불러올경우이고
"DESIGN" 이것은 상단하단을 불러오면서 스타일도 같이 먹히는 것이고
"STYLE  이것은 그누보드에서 미리 설정한 스타일쉬트만 불러오는것이지요
header_cache();
$html_title = "타이틀";
include "./lib/latest.lib.php";
?>

그런 다음 이 아일을 불러 와야겠죠?.
경로는 ?doc=main2.php 이렇게 되겠지요 물론 main2.php가
gnu3 폴더 에 들어 있어야합니다
다른곳에 있다면 그 경로를 붙여주면 될겁니다
?doc=bbs/main2.php <--이런식이죠

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

define("_DOCTYPE_", "DESIGN");
header_cache();
$html_title = "타이틀"; <--페이지의 제목을 넣는곳이지요
include "./lib/latest.lib.php";
?>
위같이 doc타입을 DESIGN로 하면
상단에
head.sub.php head.php 가 불러와지고,
하단에
tail.php, tail.sub.php 가 불러와 지더군요.
------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "STYLE");
header_cache();
$html_title = "타이틀";
include "./lib/latest.lib.php";
?>
위같이 스타일로 하면
상단에
head.sub.php 가 불러와지고,
하단에
tail.sub.php 가 불러와 지고요.
------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "NONE");
header_cache();
$html_title = "타이틀";
include "./lib/latest.lib.php";
?>


그다음 이 중요한데요

main2.php에서 상하단에 불러올 파일이 다를경우가 있겠지요?

다음소스는
index.php에 있는 소그란거 아실거에요..
만약 head.php , tail.php 가 같다면 
다음 소스를 그대로 쓰시고


// 페이지의 DOCTYPE 에 따라 include 를 결정함
//
switch (_DOCTYPE_) {
  // NONE 는 상단과 하단 파일이 필요없는 TYPE
  case "NONE" :
      echo $ob_content;
      break;
  // STYLE 은 stylesheet 등만 적용하는 TYPE
  case "STYLE" :
      include './head.sub.php';
      echo $ob_content;
      include './tail.sub.php';
      break;
  // DESIGN 은 상단, 하단 파일을 필요로 하는 TYPE
  case "DESIGN" :
      include './head.sub.php';
      include './head.php';
      echo $ob_content;
      include './tail.php';
      include './tail.sub.php';
      break;
  // 나머지 TYPE 은 오류
  default :
      if (!file_exists($doc) && $doc) {
          echo "$doc 파일이 존재하는지 확인하여 주십시오.";
          exit;
      }
      echo "_DOCTYPE_ 오류 : NONE , STYLE , DESIGN 중 하나를 사용하세요.<p>";
      echo $ob_content;
      break;

만약  head.php,tail.php 파일의 내용이 다를경우가 있지요

그러면 위의 index.php 소스에
불러올 상단 파일이나 하단 파일을 미리 정의를 해두어야 합니다
제로보드하고는 많이 달라서 저도 처음엔 이것 찾느라 게임방에서 며칠 해메였답니다..

  // main2 는 상단, 하단 파일이 다른 곳에  필요로 하는 TYPE
  case "main2" :                        <--이곳의 이름을 적당한 이름으로 만들어 넣으시고 헷갈리않게 실제 불러올파일명을 넣는것도 좋을듯합니다..
      include './head.sub.php';
      include './head2.php';  <--다르게 불러올 상단파일  head2.php로가정
      echo $ob_content;
      include './tail2.php'; <--다르게 불러올 하단 파일 tail2.php로가정 함
      include './tail.sub.php';
      break;
  위와같은 소스를 만들어 줍니다 그다음은
다시
main2.php 소스의 내용수정
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "main2"); <--index.php에서 만들어둔 상하단 파일을 정해둔 이름입력
header_cache();
$html_title = "타이틀"; <--페이지의 제목을 넣는곳이지요
include "./lib/latest.lib.php"; <--이곳은 main2.php에서 필요한 파일을 인쿨루트시키면 됨..필요시 다른것도 추가되겟지요?..
?>

그런다음에는 이제 링크에서 불러만 오면 됩니다..

어찌 설명이 잘되었는지 ^^

이것을 응용하면 어떤 php파일이나 html 파일도
상단하단 내용을 다르게 해서 불러올수 있습니다..

예를 들어  그누 프로그램이 아닌 다른 프로그램도 불러올수도 있겠지요

응용력은  끝이 없는 것이니까요
두분 답글 감사합니다.............^^ 잘됩니다..........
----------------------------------------->●><●<----------------------------------------
                                                                    .
                                                                  \/
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "DESIGN");
header_cache();
$html_title = "타이틀";
include "./lib/latest.lib.php";
?>
위같이 doc타입을 DESIGN로 하면
상단에
head.sub.php head.php 가 불러와지고,
하단에
tail.php, tail.sub.php 가 불러와 지더군요.
------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "STYLE");
header_cache();
$html_title = "타이틀";
include "./lib/latest.lib.php";
?>
위같이 스타일로 하면
상단에
head.sub.php 가 불러와지고,
하단에
tail.sub.php 가 불러와 지고요.
------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "NONE");
header_cache();
$html_title = "타이틀";
include "./lib/latest.lib.php";
?>
위같이 none으로 하면
아무것도 불러와지지 않고 작성한 본문내용만 나옵니다.

잘못된것있으면 살짝 지적해 주세요....
위의 NONE , STYLE , DESIGN 의 세가지로

NONE 은 암껏두 없이 페이지 단독 실행
STYLE 는 자스, css 만 포함함 단독 페이지
DESIGN 는 헤드.피에치피 와 테일.피에치피 , css , 자스  모두를 포함한 페이지 입니다.
아... 그건 옛날 방식이고요...
이번에 이리 바뀌었지요.
index 에서 수정하는게 아니고, main.php 에서 합니다.
기본 3.08를 받으셨다면, 압축 내용중에 main.php 가 있을겁니다.
http://you홈.com/  에서 보여질것이 index. 가 아닌 main 입니다.

그럼 해드와 테일은 없어지고,

<?
if (!defined("_GNUBOARD_")) exit;

define("_DOCTYPE_", "DESIGN");

$html_title = "타이틀";

include "./lib/latest.lib.php";

?>

요걸로 배낀겁니다.
© SIRSOFT
현재 페이지 제일 처음으로