2003/04/16 09:53:50     13637     0   
   웹폰트 사용시 한자 지원안되는 문제...
저는 엔지오에서 가져왔는데 거기 올리신 분은
폰트피아에서 가져왔나 봅니다. ^^
적용대상은 제로보드입니다~

====================================================================================

○ 보통 웹폰트를 사용하는 홈페이지에서 한문을 사용시에 <font style=font-family:돋움>金炳允</font> 이렇게 스타일 시트를 지정하죠.
    그렇지 안으면 글씨가 제대로 출력되지 않고 ㅁㅁㅁㅁ 이런식으로 깨져서 나옵니다.
    이걸 위처럼 스타일 시트를 사용하지 안고 그냥 金炳允만 입력시 자동으로 스타일시트를 부쳐주는 소스입니다.


○ 제로보드에서의 적용방법

4.1버젼 또는 4.1pl2에서 적용하는 방법입니다. 다른 버젼에서는 위치가 다를것이니 주의해 주십시요.
제로보드에 보시면, include 디렉토리가 있고, 그 안에 list_check.php 파일이 있습니다.

list_check.php 의 아래 부분을 찾습니다. 3~4번째 라인에 있죠.

if($_list_check_included) return;
$_list_check_included = true;

위 부분 아래 줄에 아래의 한자 변환 함수를 삽입합니다.

/****************************************************************************************
* 한자변환함수  
***************************************************************************************/

if (!function_exists("on_change_hanja")) {
function on_change_hanja($src)
{
$strlen = strlen($src);
$change = "";
$check = 0;
for($i=0;$i<$strlen;$i++)
{
$code = ord($src[$i]);
if($code > 0xC9 && $code < 0xFE) //한자
{
if(!$check) {$check=1; $change.="<font face=돋움>"; }
$change.=$src[$i]; $i++; $change.=$src[$i];
continue;
}
else if($check) {$check =0; $change.="</font>";}
if($code < 0xA1) $change.=$src[$i];
else {$change.=$src[$i]; $i++; $change.=$src[$i];}
}
return $change;
}
}
/****************************************************************************************/

그리고, 아래 부분을 찾습니다. 바로 아래에 있죠.

/*********************************************************************************************
* 넘겨지는 데이타에 대한 일괄 정리
********************************************************************************************/

function list_check(&$data,$view_check=0) {
global  $keyword, $sn, $ss, $sc, $setup, $member, $href, $id, $dir, $category_data, $is_admin, $_zbResizeCheck,
$name,$email,$subject, $sort, $prev_no, $no,$homepage, $memo, $hit, $vote, $ip, $comment_num, $sitelink1, $sitelink2,
$file_name1, $file_name2, $file_download1, $file_download2, $file_size1, $file_size2,
$upload_image1, $upload_image2, $category_name, $date, $reg_date, $insert, $icon, $face_image,$number,$loop_number,
$a_file_link1, $a_file_link2, $a_reply, $a_delete, $a_modify, $zbLayer,  $_zbCheckNum,
$_listCheckTime;

$_listCheckTimeStart = getmicrotime();
if($view_check) $setup[only_board]=0;

여기에서...
$_listCheckTimeStart = getmicrotime(); 과 if($view_check) $setup[only_board]=0; 사이에 아래 소스를 넣으세요.

$data[subject] = on_change_hanja($data[subject]); //제목한자변환
$data[memo] = on_change_hanja($data[memo]); //내용한자변환

그럼 이렇게 되겠죠.

$_listCheckTimeStart = getmicrotime();
$data[subject] = on_change_hanja($data[subject]); //제목한자변환
$data[memo] = on_change_hanja($data[memo]); //내용한자변환
if($view_check) $setup[only_board]=0;

이 아랫부분의 내용은 수정하지 않아도 됩니다.




○ 제로보드에서 코멘트에 한자(한문) 적용하기

제로보드 루트에 있는 view.php 수정전 원본소스를 기본으로 하여 289번 ~ 291번 라인 소스입니다.

$_skinTimeStart = getmicrotime();
include $dir."/view_comment.php";
$_skinTime += getmicrotime()-$_skinTimeStart;

위의 소스 바로 윗줄에 즉, 288번째 라인에 아래와 같이 소스를 추가해 주시면 됩니다.

$comment_name=on_change_hanja($comment_name);
$c_memo=on_change_hanja($c_memo);

이렇게 하시면 코멘트의 내용에 한자가 있어도 정상적인 한자로 보여집니다.




○ 제로보드 최근게시물에 한자(한문)사용하기

먼저, 제로보드 루트에 있는 outlogin.php 파일을 열어서 제일 윗부분에 아래의 함수를 추가합니다.

<?
if (!function_exists("on_change_hanja")) {
function on_change_hanja($src)
{
$strlen = strlen($src);
$change = "";
$check = 0;
for($i=0;$i<$strlen;$i++)
{
$code = ord($src[$i]);
if($code > 0xC9 && $code < 0xFE) //한자
{
if(!$check) {$check=1; $change.="<font face=돋움>"; }
$change.=$src[$i]; $i++; $change.=$src[$i];
continue;
}
else if($check) {$check =0; $change.="</font>";}
if($code < 0xA1) $change.=$src[$i];
else {$change.=$src[$i]; $i++; $change.=$src[$i];}
}
return $change;
}
}
?>

위 함수를 추가하기 전 원본소스를 기본으로 하여

210번째 라인 : $memo = stripslashes($data[memo]);

바로 밑에 아래 소스를 추가하세요.

$memo = on_change_hanja($memo);

232번째 라인 : $subject = cut_str(stripslashes($data[subject]),$textlen)."</font></b>";

바로 밑에 아래 소스를 추가하세요.

$subject = on_change_hanja($subject );

위와 같이 수정하시면 최근게시물에서 정상적으로 한자사용이 가능합니다.


위는 기본적인 파일을 수정했구요.
나머지 회원정보파일, 쪽지보내기, 현재접속자등....
자체파일과 플러그인등도 이와 같이 수정하시면 됨니다.
나머지는 알아서 하세요. 모든 파일에 적용하기엔 수정할 파일이 너무 만아서...-_-;

출처 : http://pia.cc/ - 폰트피아
   
코멘트를 작성하시면 2 포인트가 지급됩니다.

       

77 flashcount성공기...^ ^a 이제경 05/23 10688
83 제로보드 영문판. [3] 10/10 11963 10/28(14:35)
148 smhs의 이미지네임 만들기 강좌(이미지레디사용) [3] 02/25 13098 02/26(18:56)
265 포토샵 실행중 꺼질 때 대처하는 방법 웹디자인 11/15 16612
216 IIS에 PHP+MySQL를 설치하자. 웰트 06/22 17758
>> 웹폰트 사용시 한자 지원안되는 문제... 04/16 13637
154 [zero] 게시판 스킨이 사용중인지... 03/21 12793
145 [ZERO] 게시판에 레벨말고 나이로 접속제한하기!... 02/10 16101
76 무료배포 레이아웃 v.02 우덕성 05/19 10899
75 무료배포 레이아웃 v.01 [1] 우덕성 05/19 11413 07/10(12:15)
215 [XP팁4] 실시간 동영상을 끊김없이 감상하기 오비탈1 06/22 13247
214 [XP팁3] 오류 보고(MS전송)창 나타나지 않게 하기... 오비탈1 06/22 13069
213 [XP팁2] 인터넷익스플로러 로딩속도 향샹법 오비탈1 06/22 13219
212 [XP팁1] DOS모드에서 XP설치하는 방법 오비탈1 06/22 13035
211 CD롬의 자동 작동 기능 없애기 오비탈1 06/22 13021
FIRST345678916LAST