사이트 페이지를 배열로 정리 하기.. 정보
사이트 페이지를 배열로 정리 하기..
본문
유용할지는 모르겠습니다만^^
많은 분들이 홈페이지를 제작하시면서 각 페이지마다 head.php 가 조금씩 다르거나
다른 파일로 대체해야 할 때가 있습니다..
저는 홈페이지 작업하면서 이런일이 많아서 직접 코드를 짜놓고 사용합니다..^^;
$page_array = Array(
Array("index.php"), // Main
Array("대메뉴 타이틀", // sub_01
Array("소메뉴 타이틀",
"소메뉴 타이틀2"),
Array("파일명",
"파일명")
),
Array("대메뉴 타이틀2", // sub_02
Array("소메뉴 타이틀",
"소메뉴 타이틀2"),
Array("파일명",
"파일명")
)
);
$php_self = explode("/", $_SERVER[PHP_SELF]);
$url_cnt = count($php_self) - 1;
$this_page = $php_self[$url_cnt];
## 게시판 일경우
if($bo_table) $this_page = $bo_table;
## 메인 페이지
$main_arr = $page_array[0];
$main_page = false;
if(in_array($this_page, $main_arr)) {
$main_page = true;
}
for($i=1; $i<count($page_array); $i++) {
if(in_array($this_page, $page_array[$i][2])) {
$title_key = $i;
$title_name = $page_array[$i][0];
$page_key = array_search($this_page, $page_array[$i][2]);
$page_name = $page_array[$i][1][$page_key];
}
}
이렇게 전체 사이트맵을 head.php에 Array로 정리 해놓으시면
각 대메뉴는 $title_key 에 메뉴 순서가 나오고..
소메뉴는 $page_key에 메뉴 순서가 나옵니다..
또한 $title_name에는 대메뉴 이름
$page_name은 소메뉴 이름이 각각 표시됩니다..
파일명에는 게시판일경우 bo_table 값을 넣으셔도 됩니다..
활용 예로 보면
<?/*페이지 위치*/?>
HOME > <?=$title_name?> > <?=$page_name?>
이런식으로 네비게이션을 나타 낼 수 있겠구요...
<?/*페이지 타이틀*/?>
<img src="/image/sub_<?=sprintf("%02d", $title_key)?>/title_<?=sprintf("%02d", ($page_key+1))?>.gif">
이렇게 각메뉴 별로 타이틀 이미지를 지정 하실 수도 있겠습니다~
컨텐츠 내용도 단순히 이미지화시켜서 넣는 페이지라면
페이지타이틀과 동일한 방법을 사용하신다면
소스 자체가 아래와 같이 깔끔 하게 정리 될 수도 있습니다.
<?
include_once("./_common.php");
include("./_head.php");
?>
<img src="/image/sub_<?=sprintf("%02d", $title_key)?>/content_<?=sprintf("%02d", ($page_key+1)).jpg" alt="" />
<?
include("./_tail.php");
?>
사용자에 따라 이 소스가 불편 할 수도 있겠지만..
저는 상당히 만족스럽게 사용 중입니다..^^
1
댓글 5개

저는 지금까진 스위치로 걸러내서 짰었는데
준님 코드가 낫네요 역시 고수님 ^^
감사합니다.