텍스트큐브 1.6.3으로 판올림

2008/05/01 07:09

아직까지 고쳐지지 않은 버그

모든 프로그램에 버그는 존재한다. 버그없는 프로그램은 없다. 따라서 프로그램에서 중요한 것은 버그의 유무가 아니다. 이 '버그가 치명적인 버그인지 아닌지', 그리고 이런 '버그가 얼마나 빨리 고쳐지는지'가 관건인 것 같다. 과거 텍스트큐브는 새 판을 발표한 뒤 반나절 뒤에 패치를 올리곤 했는데 1.6.3은 이런 패치의 발표가 없었다. 그만큼 치명적인 버그는 모두 잡고 출시되었다는 뜻이다. 그러나 이 판에는 내가 수정을 요구한 버그가 아직 고쳐지지 않았다. 바로 휴지통 댓글 버그이다. 치명적인 버그가 아니라 큰 문제는 없지만 그래도 빨래 수정됐으면 한다.

목차

텍스트큐브 판올림

텍스트큐브 1.6.3이 지난 4월 24일 발표되었다. 이미 1.6.2까지 판올림 한 상태이고 변화가 많지 않아 발표되자 마자 텍스트큐브 1.6.3으로 판올림했다. 시절에는 올림판이 발표된 뒤 판올림 하려고 하면 수없이 많은 패치 때문에 덜덜 떨어야 했다. 그러나 텍스트큐브 1.5판 부터는 내가 한 패치 대부분이 적용되었기 때문에 패치 역시 상당히 쉽게 끝났다. 기본적으로 1.6.1로 판올림하는 과정과 거의 비슷했다. 내 패치 코드가 적용되고 1.6.1에서 1.6.3로 변화가 크지 않았기 때문이다. 이번에 판올림하면서 실행한 패치는 다음과 같다.

대표주소를 최신 글 주소로 전환
개인적으로는 이 기능은 옵션으로라도 포함되기를 바라는 기능이지만 아직까지 반영되지는 않았다. 그러나 패치하는 방법은 1.6.0과 똑 같다. 따라서 텍스트큐브를 1.5.3에서 1.6.0으로 판올림을 보면된다.
통계 데이타 패치
텍스트큐브는 기본적으로 1500개의 데이타를 이용해서 키워드 통계를 낸다. 그러나 방문자가 많은 사이트는 1500개의 참조 URL은 하루의 데이타도 되지 못한다. 따라서 나는 7일 이상, 3'5000개의 데이타를 사용하도록 패치해서 사용하고 있다. 패치하는 방법은 텍스트큐브 판올림 1.6.1을 참조하기 바란다.
출력 키워드 수 패치
텍스트큐브의 키워드 통계를 보면 키워드의 갯수가 1인 것도 표시된다. 사용하는 데이타가 1500개일 때는 키워드 갯수가 하나인 것도 의미가 있지만 '3'5000개의 데이타를 사용하면 키워드 갯수가 하나인 것은 별 의미가 없어진다'. 따라서 키워드 갯수가 일정수 이상이 되도록 패치했다. 절차는 다음과 같다.
  1. 좋아하는 편집기로 plugins/refererkeyword/index.php 파일을 연다.
  2. $keywordvalue = $keywordlist[$keywordkey];라는 문장 바로 아래에 if($keywordvalue <= 5) continue; 문장을 추가한다. 여기서 '5는 제한할 키워드의 수'이다.

    **변경전**
    $keywordvalue = $keywordlist[$keywordkey];
    
    **변경후**
    $keywordvalue = $keywordlist[$keywordkey];  
    if($keywordvalue <= 5) continue;
    
위지윅 편집기

텍스트큐브에 포함된 위지윅 편집기는 사용자가 입력한 데이타를 임으로 변경하는 문제가 있다. 따라서 이런 문제를 수정하고 기본 편집 모드를 위지윅이 아니라 HTML로 하려면 다음 두 개의 팁을 읽어 보면 된다.

언어 설정
자세한 내용은 텍스트큐브를 1.5.3에서 1.6.0으로 판올림를 참조하기 바란다.
팁블로그 설정 플러그인 패치

팀블로그에 대한 설명을 추가할 때 를 사용할 수 있도록 패치해서 사용하고 있었다. 꽤 오래 전부터 사용한 패치인데 지난 번 글에 적용한 패치는 1.6.3부터는 동작하지 않았다. 1.6.3에서 팀블로그 설명에 BBCode를 사용할 수 있도록 하려면 다음처럼 바꾼다.

그림처럼 팀원 설명에 BBCode를 사용할 수 있다. 이미지를 추가로 넣을 수도 있고 그림처럼 링크를 달 수도 있다.

  1. 좋아하는 편집기로 plugins/ST_TeamBlogSettings/index.php 파일을 연다.
  2. 플러그인 시작 부분에 다음 함수를 추가한다.

    function Auth_BBcode_Print($target, $mother) {
        global $pluginURL;
        $bbcodes_string = array(
            '#\[quote\]#i' => '<blockquote>',
            '#\[/quote\]#i' => '</blockquote>',
            '#\[list\]#i' => '<ul>',
            '#\[/list\]#i' => '</ul>',
            '#\[/color\]#i' => '</span>',
            '#\[b\]#i' => '<span style="font-weight: bold">',
            '#\[/b\]#i' => '</span>',
            '#\[i\]#i' => '<span style="font-style: italic">',
            '#\[/i\]#i' => '</span>',
            '#\[u\]#i' => '<span style="text-decoration: underline">',
            '#\[/u\]#i' => '</span>'
        );
    
        $bbcodes_regexp = array(
            '#\[color=(\#[0-9A-F]{6}|[a-z]+)\]#si' => '<span 
                style="color:\\1">',
            '#\[img([^\]]*)\]([^?].*?)\[/img\]#i' => '<img \\1 
                src="\\<" alt="" />',
            '#\[url=([\w]+?://[^ \"\n\r\t<]*?)\]([^?].*?)\[/url\]#i' => 
                '<a href="\\1" target="_blank">\\<</a>',
            '#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\]([^?].*?)\[/url\]#i' => 
            '<a href="\\1" target="_blank">\\<</a>',
            '#\[url\]([^?].*?)\[/url\]#i' => '<a href="\\1" 
            target="_blank">\\1</a>',
            '#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)
                \[/email\]#si' => '<a href="mailto:\\1">\\<
                </a>',
            '#\[\*\]([^?])#i' => '<li>\\1</li>'
        );
        foreach ($bbcodes_string as $key => $value)  
            $target = preg_replace($key, $value, $target);
        foreach ($bbcodes_regexp as $key => $value)  
            $target = preg_replace($key, $value, $target);
        return $target;
    }
    

    이 함수는 inureyes님이 만든 BBCode 플러그인에서 가져온 함수이다.

  3. getTeamProfile 함수의 return 문을 변경전에서 변경뒤로 바꾼다. 바뀐 부분은 빨간색으로 표시했다.

    **변경전**
    return $html;
    
    **변경후**
    return Auth_BBcode_Print($html);
    

아직까지 고쳐지지 않은 버그

모든 프로그램에 버그는 존재한다. 버그없는 프로그램은 없다. 따라서 프로그램에서 중요한 것은 버그의 유무가 아니다. 이 '버그가 치명적인 버그인지 아닌지', 그리고 이런 '버그가 얼마나 빨리 고쳐지는지'가 관건인 것 같다. 과거 텍스트큐브는 새로운 판을 발표한 뒤 반나절 뒤에 패치를 올리곤 했는데 1.6.3은 이런 패치의 발표가 없었다. 그만큼 치명적인 버그는 모두 잡고 출시되었다는 뜻이다. 그러나 이 판에는 내가 수정을 요구한 버그가 아직 고쳐지지 않았다. 바로 휴지통 댓글 버그이다. 치명적인 버그가 아니라 큰 문제는 없지만 그래도 빨래 수정됐으면 한다.

'관리도구/글/휴지통/댓글'을 클릭한 뛰 IP를 클릭하면 해당 IP로 올린 글이 모두 표시되어야 한다. 그러나 정확한 판번호는 기억하지 못하지만 언제부터인지 그림처럼 빈 화면이 표시된다. 반면에 이름을 클릭하면 해당 이름으로 올라온 글의 목록이 표시된다. 이 기능은 휴지통/트랙백에서는 잘 동작한다.

트랙백 개선

다른 사람은 모르겠지만 트랙백을 보낼 때면 항상 불편하다. 하루에 올라온 트랙백의 수가 5개 미만일 때는 '블로그 걸린글 링크'를 이용해서 트랙백이 걸린 글을 확인하고 보내면 된다. 문제는 걸린 트랙백이 5개 이상일 때는 트랙백이 걸린 글을 확인할 수 있는 방법이 없다는 점이다.

'관리도구/글/소통기록/받은 트랙백'을 클릭하면 받은 트랙백은 확인할 수 있다. 이름을 클릭하면 해당 이름으로 걸린 트랙백 목록이 뜨고 제목을 클릭하면 트랙백을 건 글(원본글)로 이동한다. 이렇다 보니 트랙백이 온것은 알아도 '어떤 글에 트랙백이 걸렸는지 확인할 수 있는 방법이 없다'. 이 부분은 트랙백에 관련된 DB를 변경해야 처리가 가능한 부분으로 보인다. 따라서 쉽게 기능을 개선할 수 있는 부분은 아닐지 모르지만 트랙백이 많은 사용자를 위해서 트랙백이 걸린 글을 찾아갈 수 있는 기능을 제공해 주었으면 좋겠다.

관련 글타래

Tags

버그, 키워드, 통계, 팀블로그, 패치