사용자가 선택 가능한 레이아웃 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

사용자가 선택 가능한 레이아웃 정보

사용자가 선택 가능한 레이아웃

본문

동호회 홈피 때문에 제로보드 만 일년 정도 다루다
새로운 홈페이지를 만들려다 그누로 넘어 온지 한달이 안된 초짜입니다.

적용하게된 배경은 커뮤니티 사이트의 자료형 게시판을 따로 때어서 사전 같은
작은 싸이즈로 쓰려는 목적이었구요. 예전에 제로에서 쿠키를 통해 head 와 foot 을
교체를 통해 레이아웃 및 게시판 스킨 까지 바꿔 버릴 수 있도록 했던적이 있었는데
그누로 넘어와 보니 신기하게도 _head.php 와 _tail.php 라는 파일이 있더군요.
예전에 제로에서 썼던 수법과 동일하여 좀 반가 웠습니다.

같은 내용이 있는지는 잘 모르겠습니다. 있다면 알려주세요. 삭제하겠습니다.


세션을 활용한 것이며
root 및 bbs 폴더 양쪽의 _head.php 와 _tail.php 를 수정하세요.
그리고 아래 소스는 예제일 뿐입니다.

-------------------------------------
_head.php 를

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


if ($_GET[layout]=="mi") {
  session_register("layout");
  include_once("$g4[path]/head_sz_mi.php");

} elseif($_SESSION[layout]=="mi") {
  include_once("$g4[path]/head_sz_mi.php");

} else {
  include_once("$g4[path]/head_sz.php");
}
?>

--------------------------------------------

_tail.php 파일을

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


if ($_GET[layout]=="mi") {
      include_once("$g4[path]/tail_xx_mi.php");

} elseif($_SESSION[layout]=="mi") {
      include_once("$g4[path]/tail_xx_mi.php");

} else {
      include_once("$g4[path]/tail_xx.php");
}
?>
------------------------------------------------

같은 형태로 해주십니다.

위의 것은
특정 레이아웃은 ' http://주소?layout=mi ' 형태로 불러오면 주소의 변수값에 의해
head_xx_mi.php 를 불러오고 이후 세션에 기록 합니다. 그후 부터는 세션의 layout
변수 값에 의해 head_xx_mi.php 을 불러 옵니다. 세션 값을 사용 하므로 창을 닫으면
효력이 없어 지겠죠.

그리고 새로 열때 layout 값이 없으면 head_xx.php 를 불러 오도록 되어 있습니다.
짜기에 따라서 여러가지 레이아웃을 갖출 수 있으며 링크를 걸어두면 사용자가
원하는 레이아웃을 사용할 수 있겠죠.

위에는 세션을 사용하여 링크뒤 변수에 의해 구동하나 쿠키 값을 기록하고 그 변수를
가져다 레이아웃을 불러오면 사용자가 원하는 레이아웃을 선택해 사용하게 하실 수 있을
겁니다. 제로에서 스킨변수를 _head.php 에서 변경시켜 스킨까지 바뀌도록 했었는데
(기본 레이아웃이 좀 무거웠거든요.) 미소 레이아웃을 쓰면서 갈아 버렸죠.


한참 놀면서 만들고 있는 중이라 지져분 합니다만 아래 두 링크로 확인해보세요.


http://kail.ivyro.net/sz/bbs/board.php?bo_table=SEDB_gun&layout=std

http://kail.ivyro.net/sz/bbs/board.php?bo_table=SEDB_gun&layout=mi2



쓰고 나니 생각나던데요. 이게 더 좋겠네요.
왜 쓰고 나면 생각나는지..
아래와 같이 쓰셔도 좋을 것 같습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

if ($_GET[layout]) {
  session_register("layout");
  include_once("$g4[path]/head_sz_{$_GET[layout]}.php");
// echo"주소창에서";

} elseif($_SESSION[layout]) {
  include_once("$g4[path]/head_sz_{$_SESSION[layout]}.php");
// echo"세션에서";

} else {
  include_once("$g4[path]/head_sz.php");
// echo"else 값";

}
?>
단 해당 상하단 파일이 없으면 게시판만 출력 됩니다만,
파일 존재 유무를 검사해도 좋겠지만 그냥 둬도 불편은 없겠죠.

그럼 좋은 하루 되세요.
추천
0
  • 복사

댓글 1개

© SIRSOFT
현재 페이지 제일 처음으로