다국어 홈페이지 게시판 _head.php, _tail.php 채택완료
국문과 영문홈페이지를 제작중입니다.
head, tail은 모두 국문 영문을 만들었습니다.
아래와 같이 다 구성하였구요,
|
국문 : head, 영문 : head_en |
| 게시판 |
| 국문 : tail, 영문 : tail_en |
게시판은 국문과 영문 모두
국문 하나의 게시판을 같이 사용할것이라네요~
자유게시판이라고 치면,
관리자모드 > 게시판 수정 > 상단파일경로, 하단파일경로
이렇게 있는데, 여기서 각각 하나의 페이지만 연결하도록 되어있잖아요~
예를 들면,
/bbs/board.php?bo_table=free&lang=kor
일때는 상단파일경로 : _head.php, 하단파일경로 : _tail.php 를 include!
/bbs/board.php?bo_table=free&lang=eng
일때는 상단파일경로 : _head_en.php, 하단파일경로 : _tail_en.php 를 include!
이런식으로 할 수 있는 방법이 없을까요???????
답변 5개
_common.php에 추가하세요.
</p>
<p>$_lang_array = array("kor", "eng");</p>
<p>$_default_lang = "kor";</p>
<p>$_SESSION['lang'] = (in_array($_SESSION['lang'], $_lang_array)) ? $_SESSION['lang'] : $_default_lang;</p>
<p>if(in_array($_GET['lang'], $_lang_array)){</p>
<p> $_SESSION['lang'] = $_GET['lang'];</p>
<p>}</p>
<p>
head 파일 include 하는 부분은 아래처럼(tail 도 동일하게)
</p>
<p>if($_SESSION['lang'] == "eng"){</p>
<p> include "_head_en.php";</p>
<p>}else{</p>
<p> include "_head.php";
}</p>
<p>
답변에 대한 댓글 3개
_common.php 파일에 들어가는 다음 소스는 사이트 어디서든 lang이란 변수를 get방식으로 값을 전달하면 언어를 변경하고 또 페이지내에서 이동시에도 해당 언어를 유지하는 내용니다.
[code]
//사용하는 언어들의 변수값
$_lang_array = array("kor", "eng");
//아무 변수가 없는 경우(처음 접속하는 경우나 로그아웃해서 세션을 초기화 한 경우)에 선택할 언어
$_default_lang = "kor";
//세션에 저장된 lang 값이 사용하는 언어에 있으면 그 언어를 세션에 저장, 없으면 기본언어를 세션에 저장
$_SESSION['lang'] = (in_array($_SESSION['lang'], $_lang_array)) ? $_SESSION['lang'] : $_default_lang;
//처음들어오면 여기 세션에 값이 없으니 기본값으로 저장됩니다.
//이 위치에 echo $_SESSION['lang']; 으로 변수값확인하세요. 값이 아예 없으면 문제가 생긴상태입니다.
//만약에 GET 방식으로 lang 변수를 전달하면 그 전달받은 값이 사용하는 언어($_lang_array )에 있는지 확인 후 있으면 세션에 저장
if(in_array($_GET['lang'], $_lang_array)){
$_SESSION['lang'] = $_GET['lang'];
}
//이 위치에 echo $_SESSION['lang']; 으로 변수값확인하세요. 값이 아예 없으면 문제가 생긴상태입니다.
[/code]
head 파일 include 하는 부분은 아래처럼(tail 도 동일하게)
이 부분은 _common.php 에서 정의된 $_SESSION['lang'] 값에 따라 불러올 상단과 하단 파일을 정하는 곳입니다.
[code]
//이 위치에 echo $_SESSION['lang']; 으로 변수값확인하세요. 값이 아예 없으면 문제가 생긴상태입니다.
if($_SESSION['lang'] == "eng"){
include "_head_en.php";
}else{
include "_head.php";
}
[/code]
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 2개
이거는 한게시판을 언어별로 다 생성해서 사용하는거 아닌가요? ㅎㅎ
전 그렇게 이해했는데... 혹시 아닌지요?? ㅎ
전 한개의 게시판을 상하단의 인클루드 파일만 바꾸고 싶은거라서요 ㅜ
내용을 분리해서 관리해야 한다는건데, wr_contest 를 explode 로 분리해서 사용해야한다는 건데
불가능한것은 아니지만, 내용을 언어별로 관리하는것에 대한 고민이 필요할듯 하네요
그것보다는 별도로 분리시키는것도 괜찮습니다
seo 관점으로 보면 언어별로 다른 결과를 추출할 수 있으니까요
검색엔진이 개별 언어로 추출하도록 하는것도 고민해야 합니다
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
겨우 html정도만 ㅜㅜ
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
참고할만한 코드라도 있을까요?? ㅜ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
root/_common.php에 위와 같이 넣고,
root/_head_en.php,
root/_tail_en.php 생성,
[code]
if(defined('G5_THEME_PATH')) {
require_once(G5_THEME_PATH.'/head_en.php');
return;
}
if (G5_IS_MOBILE) {
include_once(G5_MOBILE_PATH.'/head_en.php');
return;
}
[/code]
테마폴더안에도
G5_THEME_PATH/head_en.php,
G5_THEME_PATH/tail_en.php 생성
root/_head.php,
root/_tail.php에
[code]
//include_once(G5_PATH.'/head.php');
if($_SESSION['lang'] == "eng"){
include(G5_PATH.'/head_en.php');
}else{
include(G5_PATH.'/head.php');
}
[/code]
메뉴 링크에,
/bbs/board.php?bo_table=notice&lang=eng
라고 불러왔는데 바뀌지는 않는데.....
이렇게 부르면 상하단이 바뀌어야 되는게 맞는지요? ㅎㅎ