밥먹자님의 '카테고리의 다른 글 출력 플러그인(추가 기능)'은 텍스트큐브 1.8에서 잘 작동하지 않는다. 1.8대로 판올림한 텍스트큐브의 플러그인 문법이 바뀌면서 DB를 이용하는 플러그인 가운데 잘 작동하지 않는 게 생겼다. 밥먹자님의 플러그인도 1.8에서 목록이 출력되지 않는데, 1.8.3.1에서는 플러그인을 그대로 쓰면 블로그가 먹통이 된다. 비슷한 기능을 하는 플러그인들 가운데 티스토리처럼 현재 글의 앞뒤 목록을 보여 주는 것은 밥먹자님이 만든 것이 유일해서, 이 플러그인이 작동하지 않는 것이 텍스트큐브 1.8로 넘어가는 걸림돌이었다.
요사이 블로그 활동이 뜨음하신 듯한 밥먹자님이 언제 수정해 주실까 고대하다가, 다행히 '플러그인 개발자를 위한 텍스트큐브 1.8 안내'를 보고 해결할 길을 찾았다.
데이터베이스로의 접근을 위하여 텍스트큐브 1.7까지 사용하던 DBQuery 클래스는 1.8부터 더이상 사용되지 않습니다. 1.7부터 도입된 POD 클래스를 대신 사용하면 거의 같은 동작을 얻을 수 있습니다. 텍스트큐브 1.8은 POD 아답터를 바탕으로 새로 도입되는 DBModel 을 사용하여 데이터 동작 및 모델을 구성합니다.
만약 DBQuery 클래스를 이용하여 데이터베이스에 직접 쿼리를 날리는 방식으로 플러그인이 작성되어 있다면, DBQuery 를 POD로 바꾸는 것으로 사용이 가능합니다. 하지만 POD를 사용하여 데이터베이스에 직접 접근하는 경우, 서로 다른 문법을 사용하는 다양한 데이터베이스 (MySQL/MySQLi/PostgreSQL/Cubrid) 지원에 문제가 있을 수 있습니다.
...
Step 2. 데이터베이스를 사용하는 플러그인
정상적인 텍스트큐브 1.7 플러그인인 경우, 데이터베이스 접근을 위해서 사용하는 객체가 DBQuery 또는 TableQuery 일 것입니다.
- DBQuery 의 경우 : POD로 바꿉니다. 그냥 DBQuery를 POD로 모두 바꾸면 됩니다.
- TableQuery의 경우 : 위의 설명을 보고 해당 부분을 DBModel로 재작성합니다. DBModel 의 설계는 TableQuery에 기반하고 있으므로, 변환은 의외로 쉽습니다.
DB로 접근할 때 쓰던 DBQuery 클래스의 기능은 1.8부터는 POD 클래스로 바꾸어야 쓸 수 있다고 하였다. index.php를 열어서 'DBQuery'를 모두 'POD'로 바꾸면 글 목록이 잘 나온다.