이렇게 해보니 나름대로 간결하군요. 정보
정보 이렇게 해보니 나름대로 간결하군요.본문
head.php는 물론 하나뿐입니다~!!
원본소스에서 수정된 아래 3개의 파일에는 위치에 따른 파일 불러들이기가 전부입니다.
head.php
index.php
tail.php
그리고 각 그룹별 폴더의 아래 위치별 파일에서 레이아웃과 메뉴들을 불러들이는 구조입니다.
top.php
nav.php
body.php
banner.php
bottom.php
대부분의 메뉴들은 모듈개념을 도입 대부분의 그룹에 유기적으로 사용할 수 있게 만들어서 공통설정폴더에 넣어두고 쓰고있습니다.
특정 그룹에서만 사용되는 파일의 경우 그 해당그룹 폴더에 넣어줬습니다.
*이식성, 사용자분화, 업그레이드등에 편리합니다.
예를 들어 하나의 그룹폴더을 만들고 다른이름으로 복제하면 복제된 여러개의 페이지를 단번에 만들 수 있고,
특정 연습 폴더를 만들어서 스크립트를 잘 모르는 사용자에게 연습 폴더내의 파일만 수정하면서 웹페이지 구조를 익힐 수 있게 할 수 도 있겠고,
업그레이드는 위 수정된 3개의 파일만 백업해주면 되니 신경이 덜쓰입니다.
head.php
<?
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
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");
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");
include_once("$g4[path]/gnusr/_common/_gnusr.php");//사용자 설정파일
include_once("$gnusr[root]/".$ca_id."/top.php");
include_once("$gnusr[root]/".$ca_id."/nav.php");
include_once("$gnusr[root]/".$ca_id."/nav.php");
include_once("$gnusr[_comm]/_nav_top_r.php"); /*현재위치*/
?>
?>
index.php
<?
<?
// 상대 경로
$g4_path = ".";
include_once("$g4_path/common.php");
include_once("$g4[path]/lib/latest.lib.php");
$g4_path = ".";
include_once("$g4_path/common.php");
include_once("$g4[path]/lib/latest.lib.php");
$g4[title] = "";
include_once("$g4[path]/head.php");
include_once("$g4[path]/head.php");
include_once("$gnusr[root]/".$ca_id."/body.php");
include_once("$gnusr[root]/".$ca_id."/banner.php");
include_once("$gnusr[root]/".$ca_id."/banner.php");
include_once("$g4[path]/tail.php");
?>
?>
tail.php
<?
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$gnusr[root]/".$ca_id."/bottom.php");
include_once("$g4[path]/tail.sub.php");
?>
?>
##########################################################################################
_gnusr.php 사용자 설정파일
<?
<?
<?
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$gnusr = array();
$gnusr[abs_root]="/home/****"; //절대 경로
$gnusr[g4]="/home/****/g4"; //그누 절대 경로
$gnusr[root]=$gnusr[g4]."/gnusr"; //gnusr 절대 경로
$gnusr[_comm]=$gnusr[root]."/_common"; //_common 절대 경로
$gnusr = array();
$gnusr[abs_root]="/home/****"; //절대 경로
$gnusr[g4]="/home/****/g4"; //그누 절대 경로
$gnusr[root]=$gnusr[g4]."/gnusr"; //gnusr 절대 경로
$gnusr[_comm]=$gnusr[root]."/_common"; //_common 절대 경로
/* 디데이님 작성 구문 */
// 모드 판별
if (eregi('community', $bo_table) || eregi('community', $gr_id) || eregi('community', $ca_id)) $page_mode = 'community';
else if (eregi('work', $bo_table) || eregi('work', $gr_id) || eregi('work', $ca_id)) $page_mode = 'work';
else if (eregi('etc', $bo_table) || eregi('etc', $gr_id) || eregi('etc', $ca_id)) $page_mode = 'etc';
else if (eregi('test', $bo_table) || eregi('test', $gr_id) || eregi('test', $ca_id)) $page_mode = 'test';
else if (eregi('_common', $bo_table) || eregi('_common', $gr_id) || eregi('_common', $ca_id)) $page_mode = '_common';
else $page_mode = 'community'; //기본값
$ca_id = $page_mode;
// 모드 판별
if (eregi('community', $bo_table) || eregi('community', $gr_id) || eregi('community', $ca_id)) $page_mode = 'community';
else if (eregi('work', $bo_table) || eregi('work', $gr_id) || eregi('work', $ca_id)) $page_mode = 'work';
else if (eregi('etc', $bo_table) || eregi('etc', $gr_id) || eregi('etc', $ca_id)) $page_mode = 'etc';
else if (eregi('test', $bo_table) || eregi('test', $gr_id) || eregi('test', $ca_id)) $page_mode = 'test';
else if (eregi('_common', $bo_table) || eregi('_common', $gr_id) || eregi('_common', $ca_id)) $page_mode = '_common';
else $page_mode = 'community'; //기본값
$ca_id = $page_mode;
$table_width = '990';
$table_width_c = '900';
$table_width_T = '950';
?>
$table_width_c = '900';
$table_width_T = '950';
?>
댓글 전체
좀전에 잘 읽었는데 글을 쓰느라 답글을 뒤에 씁니다.
굿~~~ 입니다.
많은 분들이 이글을 제대로 보셨으면 합니다.
^^
굿~~~ 입니다.
많은 분들이 이글을 제대로 보셨으면 합니다.
^^
새 글에서 언급하신 것처럼 구조를 제대로 짜두면 그외 일들이 간결하게 정리되는 것 같습니다.
이 구조는 예전에 torry님의 사이트구조를 참고로 시작해서 막히는 부분은 그누커뮤니티의 고수님들께 조언을 받아 만들어본 것입니다.
작업순서를 보면,,
그룹생성 --> 사용자설정 파일의 페이지모드판별문에 그룹명 추가 --> 해당 디렉토리에 그룹명의 폴더생성 또는 복제-->아래 파일에서 원하는 레이아웃을 잡는등 세부설정을 해주는 것이 전부입니다.
top.php
nav.php
body.php
banner.php
bottom.php
CSS연동 문제등 좀더 직관적이고 간결한 방법이 없을까 틈틈히 생각 하고 있습니다.
이번을 계기로 웹사이트의 구조에 대한 논의가 활발해져서 좋은 팁들이 많이 공개되었으면 좋겠습니다.
이 구조는 예전에 torry님의 사이트구조를 참고로 시작해서 막히는 부분은 그누커뮤니티의 고수님들께 조언을 받아 만들어본 것입니다.
작업순서를 보면,,
그룹생성 --> 사용자설정 파일의 페이지모드판별문에 그룹명 추가 --> 해당 디렉토리에 그룹명의 폴더생성 또는 복제-->아래 파일에서 원하는 레이아웃을 잡는등 세부설정을 해주는 것이 전부입니다.
top.php
nav.php
body.php
banner.php
bottom.php
CSS연동 문제등 좀더 직관적이고 간결한 방법이 없을까 틈틈히 생각 하고 있습니다.
이번을 계기로 웹사이트의 구조에 대한 논의가 활발해져서 좋은 팁들이 많이 공개되었으면 좋겠습니다.
플록님의 의견에 동감합니다.
torry님께서 한번 언급을 하신적이 있었나 보군요.
^^;
이걸 누군가 가르쳐 주는 사람이 있었다면 얼마나 좋았을까요?
그동안 허비한 시간과 노력들이 모두 안타깝다는 생각뿐입니다.
보기에도 간결하고 멋진 파일구조입니다.
잘라서 부르나 통으로 가나 어차피 보여주는 것은 같은데 여러 파일을 만들어 부르는 것은 많은 차이가 있습니다.
좋은 자료 공개해주셔서 감사합니다.
torry님께서 한번 언급을 하신적이 있었나 보군요.
^^;
이걸 누군가 가르쳐 주는 사람이 있었다면 얼마나 좋았을까요?
그동안 허비한 시간과 노력들이 모두 안타깝다는 생각뿐입니다.
보기에도 간결하고 멋진 파일구조입니다.
잘라서 부르나 통으로 가나 어차피 보여주는 것은 같은데 여러 파일을 만들어 부르는 것은 많은 차이가 있습니다.
좋은 자료 공개해주셔서 감사합니다.
[정보] 이렇게 해보니 나름대로 간결하군요.
^^;; 감사합니다.
오늘 보니 제가 엉뚱한 코멘트를 달아두었더군요.. 혹시나 보신분 그거 실수입니다.
저도 이런방식으로 대충 구조를 만들고자 하는데요..
이미지의 경우는 어떻게 되나요?.. 결국 이미지는 절대경로 방식으로 입력해야 되는건가요?
오늘 보니 제가 엉뚱한 코멘트를 달아두었더군요.. 혹시나 보신분 그거 실수입니다.
저도 이런방식으로 대충 구조를 만들고자 하는데요..
이미지의 경우는 어떻게 되나요?.. 결국 이미지는 절대경로 방식으로 입력해야 되는건가요?
_gnusr.php 사용자 설정파일에서
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$gnusr = array();
$gnusr[abs_root]="/home/****"; //절대 경로
$gnusr[g4]="/home/****/g4"; //그누 절대 경로
$gnusr[root]=$gnusr[g4]."/gnusr"; //gnusr 절대 경로
$gnusr[_comm]=$gnusr[root]."/_common"; //_common 절대 경로
//이런식으로 배열을 추가해서 사용하고 있습니다
$gnusr[url]="http://domain.co.kr/g4/gnusr";//gnusr 경로
$gnusr[img]=$gnusr[url]."/images"; //이미지 경로
$gnusr[img_logo]=$gnusr[img]."/logo";//로고 경로
$gnusr[img_bg]=$gnusr[img]."/bg"; //배경
$gnusr[img_btn]=$gnusr[img]."/btn"; //버튼
$gnusr[img_icon]=$gnusr[img]."/icon"; //아이콘
~~
즉,,
<?=$gnusr[img]?>/oopo.gif 와
<?=$g4[path]?>/gnusr/images/oopo.gif 은 같습니다.
각각의 그룹폴더 하위에 images 폴더를 두는 형식도 마찬가지로
위 사용자 설정파일에서 간단하게 배열을 추가해서 사용할 수 있을것 같습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$gnusr = array();
$gnusr[abs_root]="/home/****"; //절대 경로
$gnusr[g4]="/home/****/g4"; //그누 절대 경로
$gnusr[root]=$gnusr[g4]."/gnusr"; //gnusr 절대 경로
$gnusr[_comm]=$gnusr[root]."/_common"; //_common 절대 경로
//이런식으로 배열을 추가해서 사용하고 있습니다
$gnusr[url]="http://domain.co.kr/g4/gnusr";//gnusr 경로
$gnusr[img]=$gnusr[url]."/images"; //이미지 경로
$gnusr[img_logo]=$gnusr[img]."/logo";//로고 경로
$gnusr[img_bg]=$gnusr[img]."/bg"; //배경
$gnusr[img_btn]=$gnusr[img]."/btn"; //버튼
$gnusr[img_icon]=$gnusr[img]."/icon"; //아이콘
~~
즉,,
<?=$gnusr[img]?>/oopo.gif 와
<?=$g4[path]?>/gnusr/images/oopo.gif 은 같습니다.
각각의 그룹폴더 하위에 images 폴더를 두는 형식도 마찬가지로
위 사용자 설정파일에서 간단하게 배열을 추가해서 사용할 수 있을것 같습니다.
제가 가르쳐 주신형태로 홈페이지를 구성했습니다.
당최 초보다 보니 뭘 어떻게 해야될지 아는게 없군요.
1. _nav_top_r.php는 없어서 에러입니다. 안가르쳐 주셨죠 ^^ 글의 내용에도 없고..
2. 게시판을 어케해야될지 모르겠군요..게시판이 body영역에 들어가야 하는데
body.php를 어떻게 작성해야 할지 당최 모르겠습니다. include로 해봐도 에러같고
3. 메인 index.html은 어케할까요?... 즉.. 그 홈피의 메인 index말이죠.. 거기서.. 다시금.. 호충을 작성해야 되는
가 본데.. 그걸 어떻게 하죠?
include "./bbs/index.php"... 이런씩인가요?
당최 초보다 보니 뭘 어떻게 해야될지 아는게 없군요.
1. _nav_top_r.php는 없어서 에러입니다. 안가르쳐 주셨죠 ^^ 글의 내용에도 없고..
2. 게시판을 어케해야될지 모르겠군요..게시판이 body영역에 들어가야 하는데
body.php를 어떻게 작성해야 할지 당최 모르겠습니다. include로 해봐도 에러같고
3. 메인 index.html은 어케할까요?... 즉.. 그 홈피의 메인 index말이죠.. 거기서.. 다시금.. 호충을 작성해야 되는
가 본데.. 그걸 어떻게 하죠?
include "./bbs/index.php"... 이런씩인가요?
지금은 제가 좀 바빠서 우선 간략하게 링크합니다.
메인 index.html 예제입니다.
http://www.gnusr.com/g4/bbs/tb.php/work/91
_nav_top_r.php 처럼 현재위치 표시해주는 소스입니다.
우선 주석처리 해두고 테스트 하신후 차차 하셔도 좋을듯 합니다.
http://www.gnusr.com/g4/bbs/tb.php/work/31
body.php에는 최신글 스킨이나 메뉴모듈들을 사용해서 구성하세요.
메인 index.html 예제입니다.
http://www.gnusr.com/g4/bbs/tb.php/work/91
_nav_top_r.php 처럼 현재위치 표시해주는 소스입니다.
우선 주석처리 해두고 테스트 하신후 차차 하셔도 좋을듯 합니다.
http://www.gnusr.com/g4/bbs/tb.php/work/31
body.php에는 최신글 스킨이나 메뉴모듈들을 사용해서 구성하세요.
/*
// 디데이님 작성 모드 판별문
if (eregi('montessori', $bo_table) || eregi('montessori', $gr_id) || eregi('montessori', $ca_id)) $page_mode = 'montessori';
else if (eregi('community', $bo_table) || eregi('community', $gr_id) || eregi('community', $ca_id)) $page_mode = 'community';
else if (eregi('work', $bo_table) || eregi('work', $gr_id) || eregi('work', $ca_id)) $page_mode = 'work';
else if (eregi('capture', $bo_table) || eregi('capture', $gr_id) || eregi('capture', $ca_id)) $page_mode = 'capture';
else if (eregi('etc', $bo_table) || eregi('etc', $gr_id) || eregi('etc', $ca_id)) $page_mode = 'etc';
else if (eregi('test', $bo_table) || eregi('test', $gr_id) || eregi('test', $ca_id)) $page_mode = 'test';
else if (eregi('_common', $bo_table) || eregi('_common', $gr_id) || eregi('_common', $ca_id)) $page_mode = '_common';
else $page_mode = 'community'; //기본값
$ca_id = $page_mode;
//$gnusr_title = $ca_id;
//pearly님 페이지 분기문
if ($ca_id == "" && $bo_table == "") $ca_id = 'main';
if ($ca_id == "") $ca_id = $bo_table ;
*/
//위 모드판별문을 아래 pearl님 소스 수정본으로 대체합니다.
//pearly님께서 작성한 페이지 분기문에 $gr_id 체크부분 추가했습니다.
//일일이 그룹을 추가해줄 필요가 없는 간결한 소스입니다.
//임의 분기변수 '$gur'로 페이지 분기(호출방법 /?gur=그룹명)
if ($gur == "" && $gr_id == "" && $bo_table == "") $gur = 'test'; //도메인, 그룹값 없는 화일 호출시 적용할 그룹
if ($gur == "") $gur = $gr_id ;
if ($gur == "") $gur = $bo_table ;
ps) 나중에 발견된 사항으로, 그누보드 원본(g3, 영카트)의 변수와 중복된 $ca_id를 $gur로 변경함
// 디데이님 작성 모드 판별문
if (eregi('montessori', $bo_table) || eregi('montessori', $gr_id) || eregi('montessori', $ca_id)) $page_mode = 'montessori';
else if (eregi('community', $bo_table) || eregi('community', $gr_id) || eregi('community', $ca_id)) $page_mode = 'community';
else if (eregi('work', $bo_table) || eregi('work', $gr_id) || eregi('work', $ca_id)) $page_mode = 'work';
else if (eregi('capture', $bo_table) || eregi('capture', $gr_id) || eregi('capture', $ca_id)) $page_mode = 'capture';
else if (eregi('etc', $bo_table) || eregi('etc', $gr_id) || eregi('etc', $ca_id)) $page_mode = 'etc';
else if (eregi('test', $bo_table) || eregi('test', $gr_id) || eregi('test', $ca_id)) $page_mode = 'test';
else if (eregi('_common', $bo_table) || eregi('_common', $gr_id) || eregi('_common', $ca_id)) $page_mode = '_common';
else $page_mode = 'community'; //기본값
$ca_id = $page_mode;
//$gnusr_title = $ca_id;
//pearly님 페이지 분기문
if ($ca_id == "" && $bo_table == "") $ca_id = 'main';
if ($ca_id == "") $ca_id = $bo_table ;
*/
//위 모드판별문을 아래 pearl님 소스 수정본으로 대체합니다.
//pearly님께서 작성한 페이지 분기문에 $gr_id 체크부분 추가했습니다.
//일일이 그룹을 추가해줄 필요가 없는 간결한 소스입니다.
//임의 분기변수 '$gur'로 페이지 분기(호출방법 /?gur=그룹명)
if ($gur == "" && $gr_id == "" && $bo_table == "") $gur = 'test'; //도메인, 그룹값 없는 화일 호출시 적용할 그룹
if ($gur == "") $gur = $gr_id ;
if ($gur == "") $gur = $bo_table ;
ps) 나중에 발견된 사항으로, 그누보드 원본(g3, 영카트)의 변수와 중복된 $ca_id를 $gur로 변경함
절대경로 설명

제게 정말 많은 도움이 될거 같아 스크랩합니다....감사합니다.^^
그누보드 폴더 인크루딩...