테스트 사이트 - 개발 중인 베타 버전입니다

게시판 그룹 별 head.sub.php 파일 적용 채택완료

펭귄22 5년 전 조회 3,438

안녕하세요

 

그누보드 5.2버전을 이용하여 다국어 사이트를 만들고 있습니다.

언어별로 게시판 그룹을 묶었고(국문게시판/영문게시판/중문게시판 등)

스킨에서는 $gr_id를 이용하여 그룹별 언어를 대치했습니다.

($gr_id는 각각 언어별로 kor/ eng/ chn입니다)

 

지금 문제는,

언어별로 <html>에 붙는 lang이나 css 파일 경로 등을 다르게 설정해야 하는데

theme/head.sub.php에서는 $gr_id를 사용할 수 없나봅니다. 적용이 안되더라구요.

 

그래서 언어별로 head.sub.php파일을 만들고

(예를 들어 head.sub_eng.php 등)

theme/head.sub.php 내용을 다 지운 후 아래와 같이 수정했습니다.

 

게시판 그룹별로도 묶고, 게시판 id에도 언어표기를 했기 때문에

URL에 해당 키워드가 있으면 분기하는 방식으로 작성한 것입니다.

 

</p>

<p><?php

// 이 파일은 새로운 파일 생성시 반드시 포함되어야 함

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>

<p> </p>

<p>$Site_URL = $PHP_SELF; //현재 페이지 이름을 담는다

if(strpos($Site_URL, 'eng')!==false){

    include_once(G5_THEME_PATH.'/head.sub_eng.php');

}else{

    include_once(G5_THEME_PATH.'/head.sub_kor.php');

}</p>

<p>?></p>

<p>

 

그런데 전체 검색 결과 페이지(search.php)과 같은 페이지에서는 언어별 파일로 적용이 되는데

게시판에서는 언어별 조건 분기가 안되고 head.sub_kor.php 파일이 적용됩니다.

 

제가 위의 소스를 잘못 작성한 것인지,

아니면 그누보드 내의 변수를 이용한 방법이 있는지 조언 부탁드립니다.

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

if($gr_id =="한국말"){

 include_once(G5_THEME_PATH.'/head.sub_kor.php');

}else if($gr_id=="중국말"){

 include_once(G5_THEME_PATH.'/head.sub_eng.php');

}

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

펭귄22
5년 전
아..$gr_id가 적용이 안되어서 문의남긴거라서요^^;
펭귄22
5년 전
오 gr_id 찍어보라고 하셔서 다시 생각해보니까
gr_id는 게시판에서만 적용되는거고
search.php 는 게시판이 아니니까 게시판 그룹 변수가 안먹힌다는걸 놓치고있었어요!!

사실 search.php때문에 위의 소스를 고안했던거였거든요!!

아래와 같이 수정해서 해결했습니다!!

[code]
if(strpos($Site_URL, 'eng')!==false || $gr_id=='eng'){
include_once(G5_THEME_PATH.'/head.sub_eng.php');
}else{
include_once(G5_THEME_PATH.'/head.sub_kor.php');
}
[/code]

그러고보니 소스를 좀 더 괜찮게 바꿀 수 있는 방법이 또 생각났어요~_~
파일 여러개 만드는게 좀 찝찝했는데 그것도 해결할 수 있을 것 같습니당

덕분에 다시 생각해볼 수 있었습니다. 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

혹시 A 게시판에서

B게시판 여분필드값 출력하려는데 어찌하시는지 아세여,,,???

전 완전 초보라.ㅜoㅜ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

펭귄22
5년 전
아 저도 질문글 봤는데 방법을 몰라서 답변 못남겼어용 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

gr_id 찍어보셨어요??

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인