제로보드XE 팁 공유 게시판
제로보드XE와 관련된 팁이나 강좌를 소개하는 게시판입니다.
자신이 생각하기에는 아주 사소한 내용이라도 누군가에게는 큰 도움이 될 수 있습니다.
제로보드4 버전의 팁을 공유하고 싶으시다면 여기로~
자신이 생각하기에는 아주 사소한 내용이라도 누군가에게는 큰 도움이 될 수 있습니다.
제로보드4 버전의 팁을 공유하고 싶으시다면 여기로~
글수 567
function cut_str($string, $cut_size, $tail) {
$width = Array(0, 12, 4, 4, 4, 6, 6, 10, 8, 4, 5, 5, 6, 6, 4, 6, 4, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 8, 6, 8, 6, 12, 8, 8,
9, 8, 8, 7, 9, 8, 3, 6, 8, 7, 11, 9, 9, 8, 9, 8, 8, 8, 8,
8, 10, 8, 8, 8, 6, 11, 6, 6, 6, 4, 7, 7, 7, 7, 7, 3, 7,
7, 3, 3, 6, 3, 11, 7, 7, 7, 7, 4, 7, 3, 7, 6, 10, 7, 7,
7, 6, 6, 6, 9, 0);
$str_buffer = "";
$len_buffer = 0;
$count = 0;
$len = strlen($string);
$cut_size = $width[1] * $cut_size / 2;
while( $count < $len ) {
$asc = ord(substr($string, $count, 1));
if( $asc < 128 ) {
$len_buffer += $width[$asc-30];
if( $len_buffer > $cut_size ) {
$str_buffer .= "...";
break;
}
$str_buffer .= substr($string, $count, 1);
$count += 1;
} else {
$len_buffer += $width[1];
if( $len_buffer > $cut_size ) {
$str_buffer .= "...";
break;
}
$str_buffer .= substr($string, $count, 3);
$count += 3;
}
}
if ($tail) return "$str_buffer";
else return $str_buffer."";
}
/config/func.inc.php
201 라인부터 수정해 주시면 됩니다.
태터툴즈 블로그 사용할 때 쓰던건대...
자료 출처 : http://crizin.net/entry/태터툴즈-고쳐쓰기-2-문자열-정밀하게-자르기
2008.08.04 10:18:11 (*.25.236.188)
적용해 보니 기존의 문자수보다 반정도만 출력되는군요.
그런데 기존의 자르는방법과 차이점이 무엇입니까.
이것을 적용하니 모든 위젯과 게시판들의 문자수를 다 조절해야 되는데....
그런데 기존의 자르는방법과 차이점이 무엇입니까.
이것을 적용하니 모든 위젯과 게시판들의 문자수를 다 조절해야 되는데....
2008.08.04 14:46:14 (*.37.103.29)
이거 좀 짱인듯. 위젯 글자수 수정 노가다를 해야 하긴 하지만 확실히 나아집니다. 차라리 메인 함수를 이걸로 대체하면 안될까요?
이 팁의 적용 역할은 팔공산님의 답글에 나와 있습니다.
이 팁의 적용 역할은 팔공산님의 답글에 나와 있습니다.
2008.08.04 19:12:06 (*.146.10.83)
아직 애드온의 구조나 실행방식을 완전히 파악하지 못해서 좀 조심스럽습니다만..
이런 함수는 ZBXE의 공식릴리즈에 추가(커밋)하는게 정답인것 같구요, 그게 아니라면 애드온을 통해 구현해서 ZBXE의 함수를 '바꿔치기'하는 식으로 작동시키면 직접 소스를 수정하는 위험(?)을 피할 수 있지 않을까 싶습니다. 가급적이면 릴리즈된 파일들.. 특히 코어부분을 건드리지 않는게 차후의 릴리즈에서 코드를 깨끗하게 유지할 수 있고.. 차후 릴리즈에 커밋되었다면 애드온만 비활성화 하고 삭제해버리면 그만이니까요.
before_module_init 시점에서 애드온이 해당 클래스를 상속한 다음에 함수 자체를 바꿔치기 할 수 있을겁니다.. 아마도 말이죠... 음.... (완전무책임!!!)
이런 함수는 ZBXE의 공식릴리즈에 추가(커밋)하는게 정답인것 같구요, 그게 아니라면 애드온을 통해 구현해서 ZBXE의 함수를 '바꿔치기'하는 식으로 작동시키면 직접 소스를 수정하는 위험(?)을 피할 수 있지 않을까 싶습니다. 가급적이면 릴리즈된 파일들.. 특히 코어부분을 건드리지 않는게 차후의 릴리즈에서 코드를 깨끗하게 유지할 수 있고.. 차후 릴리즈에 커밋되었다면 애드온만 비활성화 하고 삭제해버리면 그만이니까요.
before_module_init 시점에서 애드온이 해당 클래스를 상속한 다음에 함수 자체를 바꿔치기 할 수 있을겁니다.. 아마도 말이죠... 음.... (완전무책임!!!)






