흠 근데.. 한글의 경우 검색어로 한글을 주면..
그 단어가 하일라이팅이 안되는 듯 싶네요 +_+
highlight 하기 전에.. 검색어를.. url_decode해주면 해결될 듯 싶은데요..
p.s) 혹시 검색문제 해결 관련된 패치를 받을 순 없을까요 :D
고친 것은 아주 간단합니다. 검색할 문자열 앞에 binary만 넣었습니다.
urldecode부분은 시간이 나면 한번 살펴 보겠습니다...
kss@kldp:/kldp/bbs$ diff search.php search.php.0717
287c287
< WHERE w.word_text LIKE BINARY '$match_word'
---
> WHERE w.word_text LIKE '$match_word'
298c298
< WHERE post_text LIKE BINARY '$match_word'
---
> WHERE post_text LIKE '$match_word'
kss@kldp:/kldp/bbs$
binary로 지정했더니 검색결과가 달라진것이라면
binary를 빼서 예전으로 되돌리고
my.cnf에서 default-character-set을 euc_kr로 지정하면 될듯합니다.
Mysql 버전이 4.1.*이면 euckr로 지정하고
ALTER DATABASE 'xxx' DEFAULT CHARACTER SET euckr
ALTER TABLE 'xxx' DEFAULT CHARACTER SET euckr
binary로 지정했더니 검색결과가 달라진것이라면
binary를 빼서 예전으로 되돌리고
my.cnf에서 default-character-set을 euc_kr로 지정하면 될듯합니다.
Mysql 버전이 4.1.*이면 euckr로 지정하고
ALTER DATABASE 'xxx' DEFAULT CHARACTER SET euckr
ALTER TABLE 'xxx' DEFAULT CHARACTER SET euckr
지금 사용중인 mysql은 다음과 같습니다.
Quote:
kss@kldp:/kldp/bbs$ mysql --version
mysql Ver 11.16 Distrib 3.23.49, for pc-linux-gnu (i686)
문제의 viewtopic.php의 1103번째줄입니다.
원래 \b가 포함되어있는데 이것은 영어 word기준으로 찾기위한 조치같다고 합니다.
한글에서는 조사도 있기때문에...
현재로서는 저렇게 하는것이 최선인것 같고 차후 영문과 한글 구분후에 적절한 조치를
취하는게 좋을 것 같습니다. :)
phpbb중 제일 보기 싫은것중 하나가 종종 과도하게 긴 url이 사용되어
폭이 과도 하게 넓어지는 경우인데 표시되는 부분을 좀 줄였으면 합니다.
includes/bbcode.php의 make_clickable()을 preg_replace_callback을 사용하도록 수정하고 function replace_clickable()을 추가했습니다.
includes/bbcode.php
function replace_clickable($matches)
{
$url = $matches[2];
if (isset($matches[3])) {
$url = ($matches[3] == "ftp" ? "ftp://" : "http://") . $url;
}
$urlname = strlen($matches[2]) > 100 ? substr($matches[2], 0, 98) . "..." : $matches[2];
return $matches[1] . "<a href=\"$url\" target=\"_blank\">$urlname</a>";
}
function make_clickable($text)
{
// pad it with a space so we can match things at the start of the 1st line.
$ret = ' ' . $text;
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
// $ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace_callback("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", replace_clickable, $ret);
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
// $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace_callback("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", replace_clickable, $ret);
// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
// Remove our padding..
$ret = substr($ret, 1);
return($ret);
}
문제의 viewtopic.php의 1103번째줄입니다.
원래 \b가 포함되어있는데 이것은 영어 word기준으로 찾기위한 조치같다고 합니다.
한글에서는 조사도 있기때문에...
현재로서는 저렇게 하는것이 최선인것 같고 차후 영문과 한글 구분후에 적절한 조치를
취하는게 좋을 것 같습니다. :)
P.S. : 문제해결은 cwryu님이 해주셨습니다. 고맙습니다.
감사합니다... 방금 적용하였습니다. 역시 codefest에서의 성과가 바로 나타나네요. 하이라이트 부분은 제가 문제를 좀 들여다 보다가 포기하고 바로 앞자리에 계시던 codebank님께 바톤을 넘겼는데 정규표현식 부분에서 또 근처에 계시던 cwryu님의 도움으로 바로 해결할 수 있었습니다. 메일이나 irc 등으로 이야기했더라면 이번처럼 한시간 안에 해결하기는 좀 힘들었겠지요. :-)
phpbb중 제일 보기 싫은것중 하나가 종종 과도하게 긴 url이 사용되어
폭이 과도 하게 넓어지는 경우인데 표시되는 부분을 좀 줄였으면 합니다.
includes/bbcode.php의 make_clickable()을 preg_replace_callback을 사용하도록 수정하고 function replace_clickable()을 추가했습니다.
includes/bbcode.php
function replace_clickable($matches)
{
$url = $matches[2];
if (isset($matches[3])) {
$url = ($matches[3] == "ftp" ? "ftp://" : "http://") . $url;
}
$urlname = strlen($matches[2]) > 100 ? substr($matches[2], 0, 98) . "..." : $matches[2];
return $matches[1] . "<a href=\"$url\" target=\"_blank\">$urlname</a>";
}
function make_clickable($text)
{
// pad it with a space so we can match things at the start of the 1st line.
$ret = ' ' . $text;
// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
// $ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace_callback("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", replace_clickable, $ret);
// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
// $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace_callback("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", replace_clickable, $ret);
// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
// Remove our padding..
$ret = substr($ret, 1);
return($ret);
}
감사합니다... 방금 수정 하였습니다. 문제가 되었던 예제 게시물을 가지고 한번 테스트해 보시고 결과를 알려 주시면 좋겠습니다.
다음번 CodeFest때는 angpoo님도 오시면 많은 일이 짧은 시간 안에 이루어질 수 있을 것 같군요. :-)
일단 '*'가 들어간 것에 대한 부분을 찾아봤습니다.
특이하게 내부에서 '*'를 '%2A'라는 형태로 변화를 시키더군요.
(이유는 잘모르겠지만... 아마 encoding을 하면서 변화된듯...)
수정방법은 if ($highlight != '%2A')
이부분을 이전에 변화시킨 라인위에 써주기만하면 됩니다.
아~ 이것도 임시 땜빵이겠지만요... :oops:
근데 100도 좀 긴듯 하네요. 이왕이면 90으로 줄여주셨으면 좋겠습니다.
그러면 firefox 1024크기에서 sidebar에 sage를 띄우고도 폭이 안 넓어지겠네요.
100으로 하니 약간 넘칩니다.
90으로 줄였습니다.
function replace_clickable($matches) {
...
$urlname = strlen($matches[2]) > 90? substr($matches[2], 0, 88) . "..." : $matches[2];
...
}
90으로 줄여는데도 그대로 인것을 보면 뒤의 숫자는 안고치셨나보네요.
한번더 부탁드립니다.
한번에 끝낼 수도 있는걸로 여러번 수고를 끼치네요.
근데 100도 좀 긴듯 하네요. 이왕이면 90으로 줄여주셨으면 좋겠습니다.
그러면 firefox 1024크기에서 sidebar에 sage를 띄우고도 폭이 안 넓어지겠네요.
100으로 하니 약간 넘칩니다.
90으로 줄였습니다.
function replace_clickable($matches) {
...
$urlname = strlen($matches[2]) > 90? substr($matches[2], 0, 88) . "..." : $matches[2];
...
}
90으로 줄여는데도 그대로 인것을 보면 뒤의 숫자는 안고치셨나보네요.
한번더 부탁드립니다.
한번에 끝낼 수도 있는걸로 여러번 수고를 끼치네요.
콜백 처리에 깔끔해보여서 제로보드에 기존의 Autolink 대신에 써보려고 했는데, HTML 이 섞이는 제로보드여서 그런지 링크 인식이 극도로 나빠서 포기했습니다.
제로보드의 preg 조건식은"/([^\"\'\=])(mms|http|HTTP|ftp|FTP|telnet|TELNET)\:\/\/(.[^ \n\<\"\'\)]+)/"
이고
이 PhpBB 개선 소스에서는
"#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is"
인데 그렇게 차이가 날만큼 큰 요소였을까요?
검색 루틴에 약간 문제가 있긴 있는 것 같습니다. "카지"로 검색하면 뜨
검색 루틴에 약간 문제가 있긴 있는 것 같습니다. "카지"로 검색하면 뜨는 http://bbs.kldp.org/viewtopic.php?t=5511&highlight=%C4%AB%C1%F6 이 문서에는 "카지"라는 말이 없습니다.
음....문제가 있나 보군요. 혹시 다른 phpbb 사이트에서도 동일한
음....문제가 있나 보군요. 혹시 다른 phpbb 사이트에서도 동일한 문제가 발생하는지 확인해 보고 이번 주말 CodeFest에서 함께 테스트/디버깅해 볼 수 있도록 하겠습니다....
고친 것 같습니다. CodeFest 에서 중요한 성과가 있었네요. :-)
고친 것 같습니다. CodeFest 에서 중요한 성과가 있었네요. :-)
잘 되는지 확인해봐 주시고 문제가 있으면 알려 주세요....
검색도 잘 되게 고쳤으니 메인 화면에 잘 보이게 배치해주세요.KL
검색도 잘 되게 고쳤으니 메인 화면에 잘 보이게 배치해주세요.
KLDP Wiki (검색)
------------ ------
KLDP BBS (검색)
------------ -----
식으로 검색으로 바로가는 링크를 만들죠?
[quote="권순선"]고친 것 같습니다. CodeFest 에서 중요한
뭐가 문제였나요 +_+!?
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
[quote="cdpark"]검색도 잘 되게 고쳤으니 메인 화면에 잘 보
흠...디자인이 조금 복잡해지지 않을까 하는 생각이 드는데... 굳이 초기화면에 넣을 필요까지는 없을 것 같은데요. 개별 사이트에 대한 검색을 넣을 거라면 다른 사이트들도 모두 넣어야 할텐데 보기도 별로 안좋을것 같고요...
[quote="정태영"][quote="권순선"]고친 것 같습니다. Cod
검색 스트링을 sql로 db에 넘기는 부분을 binary로 선언해 주었더니 잘 되네요~
...
CodeFest 의 성과과 바로 나오는군요 +_+
No Pain, No Gain.
흠 근데.. 한글의 경우 검색어로 한글을 주면..그 단어가 하일라이팅
흠 근데.. 한글의 경우 검색어로 한글을 주면..
그 단어가 하일라이팅이 안되는 듯 싶네요 +_+
highlight 하기 전에.. 검색어를.. url_decode해주면 해결될 듯 싶은데요..
p.s) 혹시 검색문제 해결 관련된 패치를 받을 순 없을까요 :D
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
[quote="정태영"]흠 근데.. 한글의 경우 검색어로 한글을 주면..
고친 것은 아주 간단합니다. 검색할 문자열 앞에 binary만 넣었습니다.
urldecode부분은 시간이 나면 한번 살펴 보겠습니다...
root: 검색 결과 2926 개 일치합니다ROOT: 검색 결과 30
root: 검색 결과 2926 개 일치합니다
ROOT: 검색 결과 302 개 일치합니다
영문의 경우는 대소문자 구분없이 검색이 되는게 좋을텐데요.
binary로 지정했더니 검색결과가 달라진것이라면
binary를 빼서 예전으로 되돌리고
my.cnf에서 default-character-set을 euc_kr로 지정하면 될듯합니다.
Mysql 버전이 4.1.*이면 euckr로 지정하고
ALTER DATABASE 'xxx' DEFAULT CHARACTER SET euckr
ALTER TABLE 'xxx' DEFAULT CHARACTER SET euckr
[quote="angpoo"]root: 검색 결과 2926 개 일치합니다
지금 사용중인 mysql은 다음과 같습니다.
여기서도 동일하게 사용할 수 있나요??
[quote="권순선"]지금 사용중인 mysql은 다음과 같습니다.
3.23.x라면 my.cnf에
[mysqld]
default-character-set=euc_kr
해주고 리부팅 하면 적용이 됩니다.
mysql> show variables like 'character_sets';
하면 지원되는 캐릭터셋을 확일 할 수 있습니다.
배포본을 사용했다면 기본적으로 euc_kr이 포함되어 컴파일되어 있습니다.
[code:1]$message = str_replace('\&qu
문제의 viewtopic.php의 1103번째줄입니다.
원래 \b가 포함되어있는데 이것은 영어 word기준으로 찾기위한 조치같다고 합니다.
한글에서는 조사도 있기때문에...
현재로서는 저렇게 하는것이 최선인것 같고 차후 영문과 한글 구분후에 적절한 조치를
취하는게 좋을 것 같습니다. :)
P.S. : 문제해결은 cwryu님이 해주셨습니다. 고맙습니다.
------------------------------
좋은 하루 되세요.
간단한 버그 한가지 더... ^^;심각한건 아니구요..이미
간단한 버그 한가지 더... ^^;
심각한건 아니구요..
이미지 갤러리란에.. 이미지 첨부하면
이미지 크기 사이즈 줄여서 게시물보기에 나오는거 맞죠?(어떻게 구현했는지 궁금하네요) 그리고 이미지 클릭하면 원래 이미지 크기로 나오고...
그런데 수정모드에서 이미지 추가하면 원래 이이지가 그대로 출력됩니다.
phpbb중 제일 보기 싫은것중 하나가 종종 과도하게 긴 url이 사용되
phpbb중 제일 보기 싫은것중 하나가 종종 과도하게 긴 url이 사용되어
폭이 과도 하게 넓어지는 경우인데 표시되는 부분을 좀 줄였으면 합니다.
includes/bbcode.php의 make_clickable()을 preg_replace_callback을 사용하도록 수정하고 function replace_clickable()을 추가했습니다.
includes/bbcode.php
[quote="codebank"][code:1]$message = str
감사합니다... 방금 적용하였습니다. 역시 codefest에서의 성과가 바로 나타나네요. 하이라이트 부분은 제가 문제를 좀 들여다 보다가 포기하고 바로 앞자리에 계시던 codebank님께 바톤을 넘겼는데 정규표현식 부분에서 또 근처에 계시던 cwryu님의 도움으로 바로 해결할 수 있었습니다. 메일이나 irc 등으로 이야기했더라면 이번처럼 한시간 안에 해결하기는 좀 힘들었겠지요. :-)
[quote="angpoo"]phpbb중 제일 보기 싫은것중 하나가 종종
감사합니다... 방금 수정 하였습니다. 문제가 되었던 예제 게시물을 가지고 한번 테스트해 보시고 결과를 알려 주시면 좋겠습니다.
다음번 CodeFest때는 angpoo님도 오시면 많은 일이 짧은 시간 안에 이루어질 수 있을 것 같군요. :-)
http://bbs.kldp.org/viewtopic.php?t=4089
http://bbs.kldp.org/viewtopic.php?t=40896 를 보면 중간에
http://www.donkeyhote.co.kr/bbs/zboard.php?id=humor&page=2&sn1=&divpage=3&sn=off&ss=on&sc=off&select_arrange=headnum&desc=asc&no=13121
였던것이
http://www.donkeyhote.co.kr/bbs/zboard.php?id=humor&page=2&sn1=&divpage=3&sn=off&a...
이렇게 표시됩니다.
근데 100도 좀 긴듯 하네요. 이왕이면 90으로 줄여주셨으면 좋겠습니다.
그러면 firefox 1024크기에서 sidebar에 sage를 띄우고도 폭이 안 넓어지겠네요.
100으로 하니 약간 넘칩니다.
그리고 전부터 생각했던건데
이런 얘기를 비롯해서 KLDP자체에 대한 얘기를 할 수 있는 게시판이 따로 있었으면 좋겠습니다.
[quote="angpoo"]http://bbs.kldp.org/view
90으로 줄였습니다. 그리고 건의사항이랄까...사이트 자체에 대해서 논의할 것은 이곳 자유게시판에서 하시면 됩니다. bbs 초기화면의 설명을 보면
라고 되어 있죠? :-)
KLDP BBS "*"로 검색시 검색결과에서 한글깨짐현상
하루동안 올라온 글을 보기위해서 검색한계날짜 1일로하고 "*"로 검색 후
검색된 게시물을 보려고 하니 한글이 다 깨져버리네요.
며칠 전에 바꾼 viewtopic.php 때문에 생기는 문제로군요. 기존
며칠 전에 바꾼 viewtopic.php 때문에 생기는 문제로군요. 기존의 것으로 테스트해 보았는데 문제가 없었습니다. 좀더 살펴봐야 할 것 같네요...
[quote="권순선"]며칠 전에 바꾼 viewtopic.php 때문에
저도 방금 확인해봤는데...
제가 수정한 부분에서 나온것같더군요. :oops:
전체검색은 생각도 안하고 있었는데... '*'가 들어갔을때 모든 단어를 변환시켜버리니
그런 현상이 생기는군요.
잠시 테스트 해봐야겠네요. 쩝...
------------------------------
좋은 하루 되세요.
일단 '*'가 들어간 것에 대한 부분을 찾아봤습니다.특이하게 내부에서
일단 '*'가 들어간 것에 대한 부분을 찾아봤습니다.
특이하게 내부에서 '*'를 '%2A'라는 형태로 변화를 시키더군요.
(이유는 잘모르겠지만... 아마 encoding을 하면서 변화된듯...)
수정방법은
if ($highlight != '%2A')
이부분을 이전에 변화시킨 라인위에 써주기만하면 됩니다.
아~ 이것도 임시 땜빵이겠지만요... :oops:
아직 PHP와 정규식에 능숙한게 아니라서 임시적인 형태밖에는 조언이 안되는군요.
------------------------------
좋은 하루 되세요.
일단 codebank님이 말씀하신 대로 집어 넣었습니다~ :-)
일단 codebank님이 말씀하신 대로 집어 넣었습니다~ :-)
[quote="권순선"][quote="angpoo"]근데 100도 좀
function replace_clickable($matches) {
...
$urlname = strlen($matches[2]) > 90? substr($matches[2], 0, 88) . "..." : $matches[2];
...
}
90으로 줄여는데도 그대로 인것을 보면 뒤의 숫자는 안고치셨나보네요.
한번더 부탁드립니다.
한번에 끝낼 수도 있는걸로 여러번 수고를 끼치네요.
[quote="angpoo"][quote="권순선"][quote="ang
아닙니다...제가 잘 몰라서 대충 고치느라 빼먹었었네요. 지금 고쳤습니다. :-)
콜백 처리에 깔끔해보여서 제로보드에 기존의 Autolink 대신에 써보려
콜백 처리에 깔끔해보여서 제로보드에 기존의 Autolink 대신에 써보려고 했는데, HTML 이 섞이는 제로보드여서 그런지 링크 인식이 극도로 나빠서 포기했습니다.
제로보드의 preg 조건식은"/([^\"\'\=])(mms|http|HTTP|ftp|FTP|telnet|TELNET)\:\/\/(.[^ \n\<\"\'\)]+)/"
이고
이 PhpBB 개선 소스에서는
"#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is"
인데 그렇게 차이가 날만큼 큰 요소였을까요?
from bzImage
It's blue paper