오히려 더 단순하게 만들 수 있을 것 같은데요? 정보
답변 오히려 더 단순하게 만들 수 있을 것 같은데요?
관련링크
본문
1. 저는 그룹과 테이블명 자체를 일관성 있게 통일합니다. 예를 들어서 그룹명이 common이고 테이블 명에 free라고 주고 싶으면, common_free라고 이름을 짓습니다. 즉, 모든 그룹명을 접두어로 붙이는 거죠. 즉, common_으로 시작되는 모든 게시판들은 common 그룹에 속한다는 것이죠.
2. 그리고, preg_match()함수를 통해, 앞 부분을 추출해서 switch문에서 분기 시킵니다. 예를 들어서 아래와 같이 말이죠.
3. 그리고 저는 각 페이지들을 잘라서 모듈화 시켰습니다. 위의 링크에서 어떻게 모듈화 시켰는지 보시죠.
4. head.php, index.php와 tail.php의 필요한 각 부분에서 그 모듈을 호출합니다.
네비게이션:
바디:
배너:
아래:
※. "$g4[absolute_path]"는 모듈화된 페이지들의 절대 경로를 common.php에 선언 해 놓은 것입니다.
위와 같이 했을 때, 루트에 파일을 올릴 필요도 없이 깔끔해 지고 아주 단순해 집니다.
>
> 3.**대 버전과 포에버의 큰 차이점중 하나가 주소체계인데요.
> 이전의 doc 타입이 그리워 지는군요.
> indexdoctype.php 파일에 미리 상,하단 파일을 지정해 놓고 불러올 파일에서 한줄만 적어주면 됐는데, 포에버에서는 불러올 페이지마다 몇줄씩 위,아래로 적으려니 보통 일이 아니군요.
> 소스 관리하기도 불편하고.
> 그래서 말인데 예전처럼 포에버에서
>
> indexdoctype.php 파일에 미리 상,하단 파일을 지정해 놓고
>
> http://홈페이지주소/?doc=test.php
>
> 이렇게 불러올 수 없을까요?
> 어떻게 하면 될것도 같은데 개념이 안잡힙니다.
>
2. 그리고, preg_match()함수를 통해, 앞 부분을 추출해서 switch문에서 분기 시킵니다. 예를 들어서 아래와 같이 말이죠.
switch (TRUE) {
case preg_match("/^(papa_)/", $bo_table) : //아빠 관련 테이블
$doc="papa";
$top = "papa";
$nav = "papa";
$body = "papa";
$banner = "main";
$bottom = "main";
break;
case preg_match("/^(torry_)/", $bo_table) : //똘이 관련 테이블
$doc="torry";
$top = "torry";
$nav = "torry";
$body = "torry";
$banner = "main";
$bottom = "main";
break;
case preg_match("/^(suzy_)/", $bo_table) : //수지 관련 테이블
$doc="suzy";
$top = "suzy";
$nav = "suzy";
$body = "suzy";
$banner = "main";
$bottom = "main";
break;
case preg_match("/^(common_)/", $bo_table) : //테스트 관련 테이블
$doc="test";
$top = "test";
$nav = "test";
$body = "test";
$banner = "main";
$bottom = "main";
break;
case preg_match("/^(papa)/", $gr_id) : //아빠 관련 그룹
$doc="papa";
$top = "papa";
$nav = "papa";
$body = "papa";
$banner = "main";
$bottom = "main";
break;
case preg_match("/^(torry)/", $gr_id) : //똘이 관련 그룹
$doc="torry";
$top = "torry";
$nav = "torry";
$body = "torry";
$banner = "main";
$bottom = "main";
break;
case preg_match("/^(suzy)/", $gr_id) : //수지 관련 그룹
$doc="suzy";
$top = "suzy";
$nav = "suzy";
$body = "suzy";
$banner = "main";
$bottom = "main";
break;
case preg_match("/^(common)/", $gr_id) : //테스트 관련 그룹
$doc="test";
$top = "test";
$nav = "test";
$body = "test";
$banner = "main";
$bottom = "main";
break;
}
switch ($doc) {
case (papa)://아빠 관련 $doc
$doc="papa";
$top = "papa";
$nav = "papa";
$body = "papa";
$banner = "main";
$bottom = "main";
$my_title = "아빠의 인터넷";
break;
case (torry):
$doc="torry";//똘이 관련 $doc
$top = "torry";
$nav = "torry";
$body = "torry";
$banner = "main";
$bottom = "main";
$my_title = "똘이의 인터넷";
break;
case (suzy):
$doc="suzy";//수지 관련 $doc
$top = "suzy";
$nav = "suzy";
$body = "suzy";
$banner = "main";
$bottom = "main";
$my_title = "수지의 인터넷";
break;
case (test):
$doc="test";//test 관련 $doc
$top = "test";
$nav = "test";
$body = "test";
$banner = "main";
$bottom = "main";
$my_title = "똘이와 수지와 아빠의 인터넷";
break;
default:
$doc="test";//default $doc
$top = "main";
$nav = "test";
$body = "test";
$banner = "main";
$bottom = "main";
$my_title = "똘이와 수지와 아빠의 인터넷";
break;
}
3. 그리고 저는 각 페이지들을 잘라서 모듈화 시켰습니다. 위의 링크에서 어떻게 모듈화 시켰는지 보시죠.
4. head.php, index.php와 tail.php의 필요한 각 부분에서 그 모듈을 호출합니다.
네비게이션:
include "$g4[absolute_path]/pages/nav/{$doc}.php";
바디:
include "$g4[absolute_path]/pages/body/{$doc}.php";
배너:
include "$g4[absolute_path]/pages/banner/{$doc}.php";
아래:
include "$g4[absolute_path]/pages/bottom/{$doc}.php";
※. "$g4[absolute_path]"는 모듈화된 페이지들의 절대 경로를 common.php에 선언 해 놓은 것입니다.
위와 같이 했을 때, 루트에 파일을 올릴 필요도 없이 깔끔해 지고 아주 단순해 집니다.
>
> 3.**대 버전과 포에버의 큰 차이점중 하나가 주소체계인데요.
> 이전의 doc 타입이 그리워 지는군요.
> indexdoctype.php 파일에 미리 상,하단 파일을 지정해 놓고 불러올 파일에서 한줄만 적어주면 됐는데, 포에버에서는 불러올 페이지마다 몇줄씩 위,아래로 적으려니 보통 일이 아니군요.
> 소스 관리하기도 불편하고.
> 그래서 말인데 예전처럼 포에버에서
>
> indexdoctype.php 파일에 미리 상,하단 파일을 지정해 놓고
>
> http://홈페이지주소/?doc=test.php
>
> 이렇게 불러올 수 없을까요?
> 어떻게 하면 될것도 같은데 개념이 안잡힙니다.
>
댓글 전체
sjsjin님! 그 불필요한 부분을 좀 알려 주십시오. 혼자서 하다 보니 딱히 물어볼 곳도 없고 해서......
바로 이런 부분 때문에, 부끄러움을 무릅쓰고, 쏘스를 공개한 것입니다.
부탁합니다.
바로 이런 부분 때문에, 부끄러움을 무릅쓰고, 쏘스를 공개한 것입니다.
부탁합니다.
초창기에 제가 만들었던 방법이네요....또한 제가 몇 군데 작업해준 것이기도 하구요...
주 메뉴에 따른 head.php 를 별도로 불러올 때(여기 sir처럼) 자주 사용합니다.
아마 여기 sir 도 위처럼(tail.php 제외) 사용하는 걸로 알고 있습니다. (조금 단순화 해서 쓰고 있을 겁니다.)
근데 좀 불필요한 코딩들도 있네요...
조금 정리해서 단순화 해서 쓰시면 더 좋을 듯 합니다.
주 메뉴에 따른 head.php 를 별도로 불러올 때(여기 sir처럼) 자주 사용합니다.
아마 여기 sir 도 위처럼(tail.php 제외) 사용하는 걸로 알고 있습니다. (조금 단순화 해서 쓰고 있을 겁니다.)
근데 좀 불필요한 코딩들도 있네요...
조금 정리해서 단순화 해서 쓰시면 더 좋을 듯 합니다.
조금 복잡하기는 하지만 나름대로 체계적인 것 같습니다. (훌륭합니다.~개인적인 생각)
일부 외국 소스중에서 똘이님과 같은 구조로 된 듯 한 느낌을 받은 적이 있습니다.
저도 똘이님이 구조를 적용해봐야 겠습니다. 저에게는 많은 도움이 될 듯 그러나 쉽게
성공할 것 같지는 않으므로 필요시 도움을 청해도 될런지...
일부 외국 소스중에서 똘이님과 같은 구조로 된 듯 한 느낌을 받은 적이 있습니다.
저도 똘이님이 구조를 적용해봐야 겠습니다. 저에게는 많은 도움이 될 듯 그러나 쉽게
성공할 것 같지는 않으므로 필요시 도움을 청해도 될런지...
이렇게 하면, g4의 각 게시판의 접두어별, 그룹별로 네비게이션과 바디, 배너, bottom을 따로 쓰실 수 있습니다.
torry 님 감사합니다.
근데 너무 복잡해요.
제가 머리가 좀 많이 나쁘거든요. ㅠ.ㅠ
근데 너무 복잡해요.
제가 머리가 좀 많이 나쁘거든요. ㅠ.ㅠ
^.^ 위의 코드도 어깨너머로 보고 두드려 맞춘 건데..... 제대로 작동하더군요.
혹시 위의 코드보다 더 효과적으로 쓰일 수 있는 다른 방법이나, 단축시킬 다른 방법을 아시는 분은 알려주십시오.
혹시 위의 코드보다 더 효과적으로 쓰일 수 있는 다른 방법이나, 단축시킬 다른 방법을 아시는 분은 알려주십시오.