텍스트큐브 패치

텍스트큐브 1.7.7은 베타판 부터 사용했기 때문에 정식판이 나오자 바로 판올림했다. 3월 5일에 올라왔기 때문에 3월 6일에 판올림 한 것 같다. 텍스트큐브를 판올림하면 가장 먼저하는 일이 패치이다. 예전에는 절대 주소와 압축 전송 플러그인 때문에 상당히 많은 파일을 패치했다. 그러나 텍스트큐브가 판올림되면서 패치가 대부분 반영됐기 때문에 요즘은 몇가지 패치만 한다.

목차

  • 텍스트큐브 패치
    1. rewrite.php
    2. language/ko.php
    3. language/ko.php, interface/login/index.php
    4. plugins/zTransferGZip/index.xml
    5. library/piece/blog/list.php
    6. components/Textcube.Model.Statistics.php
    7. library/model/blog.comment.php
    8. library/model/blog.comment.php, library/piece/blog/commentList.php
  • 각주

텍스트큐브 패치

텍스트큐브 1.7.7은 베타판 부터 사용했기 때문에 정식판이 나오자 바로 판올림했다. 3월 5일에 올라왔기 때문에 3월 6일에 판올림 한 것 같다. 를 판올림하면 가장 먼저하는 일이 패치이다. 예전에는 절대 주소압축 전송 플러그인 때문에 상당히 많은 파일을 패치했다. 그러나 가 판올림되면서 패치가 대부분 반영됐기 때문에 요즘은 몇가지 패치만 한다.

1.7.7판을 받은 뒤 바로 한 패치 내역은 텍스트큐브 1.7.7 RC1으로 판올림에 적어 두었다. 그리고 1.7.7 정식판이기 때문에 추가로 다음과 같은 기능을 패치했다.

  1. rewrite.php
    이 패치를 한 자세한 이유는 나중에 다른 글로 설명하겠다. 보통 블로그의 주소로는 offree.net을 사용한다. 그러나 구글을 비롯한 여러 검색엔진에 doa.offree.net, forum.offree.net등의 주소가 등록되어 있기 때문에 주소를 통합하는 차원에서 한 패치다.

    패치하는 방법은 간단하다. rewrite.php을 좋아하는 편집기로 열고 7번째 줄에 다음 내용을 추가했다. 물론 여기서 offree.net은 자신의 블로그 주소로 바꿔야 한다. 이렇게 하면 어떤 주소로 접속하던 네임서버의 A레코드에 등록되지 않은 주소는 모두 offree.net으로 전환[1]된다.

    7: if($_SERVER['HTTP_HOST'] != 'offree.net') header("Location: https://offree.net".불_SERVER['REQUEST_URI']);
    
  2. language/ko.php
    패치라고 하기는 조금 힘들다. "비공개로 바꿉니다"라는 문구를 "비공개"로 바꿨다. 이외에 몇가지 문구를 추가로 바꿨다. 바꾸는 방법은 텍스트 큐브 판올림 및 패치에서 찾을 수 있다.

  3. language/ko.php, interface/login/index.php
    태터툴즈 후유증에서 설명한 것처럼 '태터계열'의 블로그 도구를 사용하는 사람은 습과적으로 Q를 누르는 때가 많다. 그리고 아무 생각없이 로그인을 하다가 로그인이 되지 않는 이유를 궁금해 할 때도 있다[2]. 그래서한 패치가 로그인 페이지에 로고를 추가하는 텍스트큐브: 로그인 페이지에 로고 추가하기이다. 이번에는 로고를 추가하는 것이 귀찮아 메시지만 추가했다.

  4. plugins/zTransferGZip/index.xml
    텍스트큐브 설명을 보면 1.7.7에는 "'FeedOBStart', 'FeedOBEnd' 이벤트가 추가됐다"고 한다. 확인해 보니 피드 압축 전송을 위해 새롭게 추가된 이벤트였다. 따라서 압축 전송 플러그인도 이에 따라 수정했다. 수정하는 방법은 아주 간단하다. 압축 전송 플러그인(zTransferGZip)의 'index.xml' 파일을 열고 'BINDING' 태그 사이에 다음 두줄을 추가하면 된다.

    <listener event="FeedOBStart">GZipStart</listener> 
    <listener event="FeedOBEnd">GZipEnd</listener> 
    
  5. library/piece/blog/list.php
    블로그에서 태그는 얼마나 중요할까?에서 설명한 것처럼 태그 목록에는 바로 아래에 페이지 이동 막대가 표시되지 않는다. 따라서 태그 목록에 이어 페이지 이동 막대를 출력할 수 있도록 패치했다. 더 자세한 내용은 블로그에서 태그는 얼마나 중요할까?를 보기 바란다.

  6. components/Textcube.Model.Statistics.php
    에서는 참조 URL을 이용한 검색어 통계를 제공한다. 기본적으로 1500개 참조 URL을 사용하기 때문에 하루 방문자수가 많은 사이트는 하루 분량의 검색어 통계도 되지 못한다. 따라서 나는 이 값을 1'5000으로 바꿔 사용해 왔다. 더 자세한 내용은 텍스트 큐브 판올림 및 패치의 통계 데이타 패치를 참조하기 바란다.

  7. library/model/blog.comment.php
    언제 부터인지 모르겠지만 댓글을 검색해 보면 댓글이 날짜순으로 정렬되지 않고 순서없이 출력됐다. 아마 내 기억으로는 1.7.7부터인 것 같은데 이 부분에 대한 패치를 했다. 패치하는 방법은 아주 간다하다. 좋아하는 편집기로 'library/model/blog.comment.php'을 연 뒤 351행의 끝에 " order by c.written"를 추가하면 된다.

    // 변경전
    351: and (c.comment like '%$search%' OR c.name like '%$search%')")) {
    
    // 변경후
    351: and (c.comment like '%$search%' OR c.name like '%$search%') order by c.written")) {
    
  8. library/model/blog.comment.php, library/piece/blog/commentList.php
    평상시는 아니지만 가끔 방명록을 검색해야 하는 때도 발생한다. 는 본문, 댓글, 트랙백은 검색해 주지만 방명록은 검색해 주지 않는다. 이 문제 때문에 방명록도 검색할 수 있도록 패치했다. 패치하는 방법은 다음과 같다.

    • library/model/blog.comment.php
      좋아하는 편집기로 'library/model/blog.comment.php' 파일을 연 뒤 356행에 다음 내용을 추가한다. 즉 if문 바로 아래쪽에 추가하면 된다.

      if ($result = POD::queryAll("SELECT id, entry, parent, name, comment, written
      FROM {$database['prefix']}Comments
      WHERE entry = 0
          AND blogid = $blogid $authorized
          and isFiltered = 0
          and (comment like '%$search%' OR name like '%$search%') order by written")) {
      foreach ($result as $comment)
          array_push($list['items'], $comment);
      }
      
    • library/piece/blog/commentList.php
      좋아하는 편집기로 'library/piece/blog/commentList.php' 파일을 연 뒤 11행을 다음처럼 바꾸면 된다.

      // 변경전
      11: dress('rplist_rep_link', "$blogURL/".($blog['useSloganOnPost'] ? "entry/".URL::encode($item['slogan'],$service['useEncodedURL']) : $item['entry'])."#comment{$item['id']}", $itemView);
      
        // 변경후
      11: if($item['entry']!=0) dress('rplist_rep_link', "$blogURL/".($blog['useSloganOnPost'] ? "entry/".URL::encode($item['slogan'],$service['useEncodedURL']) : $item['entry'])."#comment{$item['id']}", $itemView);
      12: else dress('rplist_rep_link', "$blogURL/guestbook/".불item['id']."#guestbook{$item['id']}", $itemView);
      

      위의 댓글 정렬 패치와 함께 패치했다면 그림처럼 마지막 '댓글 뒤에 방명록을 검색한 결과'가 표시[3]된다.

매번 판올림을 하고 무엇을 패치했는지 왜 올리는가 싶다. 그러나 이 작업을 해주지 않으면 다음 번 판올림할 때는 무엇을 패치했는지 몰라 헷갈릴 때가 많다. 또 이 덕에 엉뚱한 실수를 할 때도 종종있다. 따라서 보관차원에서 올리는 글이다.

기억은 유한하다.

관련 글타래


  1. 보통은 네임서버 A레코드로 등록되지 않은 주소로 접속하면 접속되지 않아야 정상이다. 그런데 카페24의 설정 때문인지 A레코드에 등록되지 않은 주소로도 모두 접속된다. 
  2. 내가 자주 그런다. 그래서 관리용 스킨을 바꿔 사용하는 분도 있다. 
  3. 조선일보 홈덱스에 대한 글을 남긴 분이 무한님인 것 같아 찾아봤다. 그러나 방명록 검색 기능은 제공하지 않기 때문에 찾는 것이 상당히 힘들었다. "엎어진 김에 쉬어 간다"고 마침 생각난 김에 방명록까지 검색할 수 있도록 패치했다.