최근 코멘트 태그팁을 응용해서 코멘트 내용 일부가 보여지는 태그를 사용하고 있습니다. trim_to 어트리뷰트로 전달하는 값만큼 내용을 잘라주는데 문제는 한글이 깨끗하게 잘리지 않는다는 것입니다. 그래서 자료를 찾다가 한글 깨끗하게 자르기를 발견했습니다. 이걸 적용하기 위해 trim_to를 어디에서 사용하는지 검색해보니 lib/MT/Template/Context.pm의 288라인과 2091라인 두 곳에서 trim_to를 사용하는 것을 확인했습니다.
우선 288라인을 확인해보면 아래와 같습니다.
$str = substr $str, 0, $len if $len < length($str);
}
위의 내용을 아래와 같이 수정합니다.
if ($len < length($str)){
$str = substr $str, 0, $len ;
$str =~ s/(([\x80-\xff].)*)[\x80-\xff]?$/$1/;
$str .= "...";
}
}
2091라인은 아래와 같이 고칩니다.
my($str, $len, $ctx) = @_;
if ($len < length($str)){
$str = substr $str, 0, $len ;
$str =~ s/(([\x80-\xff].)*)[\x80-\xff]?$/$1/;
$str .= "...";
}
$str;
});
Template Main Index에서 최근 코멘트 목록을 불러오기 위해서 아래 코드를 사용합니다.
<div class="sidetitle">
Recent Coments
</div>
<div class="side">
<MTComments lastn="5" sort_order="descend">
<MTCommentEntry>
<a href="<MTEntryLink archive_type="Individual">"><MTCommentBody
trim_to="15" remove_html="1"></a> from:<MTCommentAuthorLink
spam_protect="1"><br />
</MTCommentEntry>
</MTComments>
</div>
이제 한글이 깨끗하게 잘 잘리는군요. ^^ 저는 최근글 목록이나 최근 트랙백을 표시하는 부분에도 사용하고 있습니다.
Comments (6)
어,증말 바리깡으로 민것 처럼 깔끔하게 잘라졌네... 와... 넘, 이뻐요...^^
Posted by spica | 2003年08月07日 12:17
Posted on 2003年08月07日 12:17
감사합니다. ^^ 저는 요즘 머리를 단정하게 잘라볼까 생각중이랍니다. ^^
Posted by yongsang | 2003年08月07日 16:25
Posted on 2003年08月07日 16:25
이 패치가 utf-8의 경우는 제대로 먹히질 않나요?
그대로 했는데 깨끗하게 안짤리네요
Posted by kueilove | 2004年06月03日 04:10
Posted on 2004年06月03日 04:10
utf-8 문제는 제가 거기까지 아는 바가 없어서 시원한 답변을 드리지 못하겠네요~ ^^; 죄송합니다.
Posted by yongsang | 2004年06月10日 21:59
Posted on 2004年06月10日 21:59
검색해보니 gratia's sadcafe에 euc-kr/utf-8의 한글 잘라내기 방법이 소개되어 있습니다. 참고하시기 바랍니다.
Posted by yongsang | 2004年06月10日 22:34
Posted on 2004年06月10日 22:34
근데요 본문에서 html태그가 그데로 보이게 하려는 어떻게 해야하죠?
태그가 적용되 버려서 내용이 이상하게 나오거든요.
Posted by mara | 2004年10月09日 21:31
Posted on 2004年10月09日 21:31