기본 스킨으로 바꿨을 때 동일한 문제가 발생하지 않는다면 사용하고 계시는 스킨의 문제입니다.
그럴 경우 스킨을 고치시거나 다른 스킨으로 바꾸어 사용하세요.

혹시 해당 플러그인의 최신 패치(플러그인 페이지에 달린 댓글 중 맨 끝의 것)를 사용해보셨는지요?
오래 전에 만들어진 플러그인이라 그런지 URL 구조가 최신 버전의 텍스트큐브가 받아들이는 것과 다르네요.

스크랩의 경우 원칙적으로는 내용 복사 없이 일부 인용만 하고 해당 글로 링크하는 것이 가장 좋습니다만, 링크 대상이 없어질 경우를 우려하여 자신의 블로그에 담아두고자 한다면 본문 복사와 함께 출처(작성자 이름, 사이트 제목 및 내용을 따온 주소)를 명확히 밝히는 정도까지는 보통 용인되고 있습니다. (그렇지만 가장 중요한 것은 해당 블로그를 운영하는 주인장의 의사이고, 블로고스피어 자체가 문화적으로 전체 스크랩 및 스크랩만으로 운영되는 블로그는 좋아하지 않습니다.)

네이버 등에서 제공하는 퍼가기(스크랩) 기능은 원본 블로그와 스크랩하는 블로그가 똑같은 자사 서비스안에 있기 때문에 DB를 직접 접근하여 복사하는 것이라서 '깔끔하게' 구현되지만 텍스트큐브의 경우 그럴 방법이 없으므로 클립보드를 이용하여 사용자가 직접 복사·붙여넣기를 하는 방법밖에 없습니다.

두번째 질문은, 상용화를 문맥에 따라 어떻게 정의하느냐에 따라 달라집니다.

1. 태터툴즈/텍스트큐브를 이용하여 가입형 블로그 서비스를 만들고 여기서 수익을 창출한다. -> 설치하여 서비스만 하는 것은 (코드를 일부 수정하더라도) 소스코드 공개 의무가 없으며, 상표권만 침해하지 않으면 됩니다. 다음 티스토리도 소스코드 공개하지 않고 있죠. 제가 알기로 법적으로(?) 텍스트큐브 로고를 박아넣지는 않아도 되나 보통 도의적 차원에서 메시지 정도는 남겨두는 것으로 압니다.

2. 태터툴즈/텍스트큐브를 기반으로 웹서버에 설치하는 소프트웨어를 만들어 이를 판매한다. -> 이 경우 영리 목적의 판매 자체는 가능하지만 소스코드는 반드시 공개할 의무가 있습니다. 따라서 (특히 php 등으로 만들어지는 웹프로그램 특성상 컴파일한 실행파일이 따로 존재하지 않기 때문에) 많은 오픈소스 기반의 회사들은 오픈소스SW로 서비스를 운영하거나 유지보수·커스터마이징 등으로 부가 수익을 얻는 구조로 운영됩니다.

ps. 아마도 고려 대상은 아니겠지만, 태터툴즈 0.9x 버전은 오픈소스 라이선스(GPL)가 아니므로 단독 블로그 운영 외의 다른 목적으로 사용하려고 하신다면 원저작자인 JH님과 직접 상의하셔야 합니다.

현재 텍스트큐브의 BlogAPI 기능은 다른 프로그램에서 글을 쓴 후 텍스트큐브로 전송하면 그것을 받아 글로 올려주는 부분만 제공하는 걸로 알고 있습니다. (즉, 텍스트큐브 자체에서 다른 텍스트큐브로 글을 쏘는 것은 안 되는 걸로...)

음, Live Writer 등을 이용해서 데스크탑에서 글을 작성하신 다음 A, B 블로그 각각에 BlogAPI로 동시 포스팅하시는 것이 가능할 것  같습니다.

어쨌든 어떤 임의의 텍스트큐브 블로그에 원격으로 BlogAPI를 이용해 글을 올리시려면 BlogAPI 플러그인이 제공하는 주소와 접근할 때 사용 권한을 검사하기 위한 API Key를 알고 있으면 됩니다.

BlogAPI 플러그인을 활성화하신 다음, [설정] -> [글 작성]에 들어가시면 이 API Key를 임의로 생성하거나 관리자 비밀번호와 동일하게 쓸 수 있게 하는 옵션이 나옵니다. 이것을 이용하시면 됩니다.

흐음, 위지윅 에디터를 굉장히 많이(!) 커스터마이징하시고자 하는 거군요.
제 생각엔 거의 플러그인으로 구현 가능할 듯합니다만, 그림으로 첨부하신 것처럼 UI까지 완전하게 통합되려면 코어 쪽에도 추가적인 플러그인 이벤트가 필요하지 않을까 싶습니다.

어느 정도 개발 지식이 있으신 분 같으니, 현재 제가 개발하고 있는 구글맵 플러그인을 보시고 플러그인 URL Handler와 위지윅 에디터 툴바 버튼 추가를 잘 활용하시면 원하시는 기능을 직접 구현하실 수 있을 거라 생각합니다. 예를 들어보자면,

* GPS용 파일 업로드 : GPS 파일 삽입 버튼을 누르면 나오는 팝업(팝업 대상 페이지는 플러그인 URL Handler 이용해서 생성)에서 진행하면 됩니다.
* 여행 기간 정보 추가하기 : 플러그인이 자체적으로 사용할 DB Table을 정의할 수 있는데(제 구글맵 플러그인의 index.xml 참조), 이것을 각 글(entryId)와 mapping해주면 구현 가능합니다. 텍스트큐브 기본 코어에 추가하는 것보다는 필요하면 플러그인을 설치하셔 사용할 수 있도록 하는 편이 좋습니다. (단, 백업이나 복원시 이 데이터가 유실될 수  있으므로 해당 테이블 자체를 따로 백업해두셔야 합니다.)
* 위지윅 에디터에서 플러그인이 정의한 특정한 dummy box나 해당 box에 대한 정보를 편집할 수 있게 하는 UI 추가 기능 등은 아직 제공하고 있지 않습니다.

혹시, 시간이 괜찮으시다면 WoC 텍스트큐브 구글맵 플러그인 개선 프로젝트에 지원하셔서 함께 개발하는 것도 좋겠습니다. 주요 내용은 모바일 지원 및 위경도 좌표 도입이라고 되어 있지만 사실 이 부분은 간단해서 여행로그 플러그인을 하나 더 만드는 것도 가능합니다. ^^;

ps. 혹시 해당 기능을 공개하실 것인지 아니면 특정 내부 목적으로만 사용하시려는 것인지 알려주실 수 있는지요?

1., 2. GPS 파일이라는 게 정확히 어떤 것을 말씀하시는 건지요?
제가 구글맵 플러그인을 개발 중이고, 위경도 좌표 체계를 텍스트큐브에 내장시키는 것을 목표로 프로젝트를 진행 중입니다. 이를 이용하면 포스트 본문에 지도를 삽입하는 것도 가능하고, 지역로그도 구글맵으로 보여줄 수 있습니다.

3. 현재 지역태그 기능이 제공되고 있는데, 여행 기간에 대한 정보는 별도로 지원하지 않고 있습니다.

구글맵 플러그인은 아직 공식 배포되지는 않았고, 1.7.7 개발버전을 사용하시면 미리 써보실 수 있습니다.

현재 텍스트큐브의 경우 동시에 하나의 블로그를 여러 도메인으로 운영하는 것을 지원하지 않습니다. 따라서 관리자 로그인도 어느 하나의 주사용 도메인으로만 정해놓고 쓰실 수 있습니다.

주사용 도메인을 바꾸시려면 config.php의 도메인 관련 설정들을 모두 고쳐주세요. (열어보시면 처음 설치할 때 사용한 도메인으로 설정되어 있는 값들이 몇 개 있을 겁니다.)

http://daybreaker.info/blog/entry/i18n-and-Hangul
http://daybreaker.info/blog/entry/KSHS-Web-Main-Flash

음, 찾아보니 저도 마찬가지 현상이 발생하고 있군요.

일단 Firefox 3.0, IE7, Chrome에서 모두 같은 현상이 발생하고 있는데 IE 호환성 코드를 제거하고 표준 object 태그만 넣어도 안 되는 걸로 봐서는 뭔가 다른 문제일 수도 있겠다는 생각이 듭니다. (첨부한 swf 파일의 주소를 직접 치면 정상적으로 다운로드·재생되는 걸로 봐서 .htaccess 문제는 아닌 듯하고...)

좀더 자세히 조사해볼 필요가 있다고 생각되므로 티켓 #1191로 등록하였습니다.

고쳐주고 싶어도 개발자가 쓰는 환경에서 재현이 안 되는 것들은 정말 쉽지 않죠...
php가 그나마 배포의 장점이 있음에도 불구하고 옵션에 따라 언어의 기능이 워낙 크게 변하니...ㅠ_ㅠ

185

(1 답글들, 토의 및 과제 설정에 작성)

부가적으로 .plugin-content div 요소에 type="application/json" encoding="utf-8"을 넣는다든가 하는 것도 가능하겠죠. 보통 때는 서버사이드에서 처리된 후 보여질 테니 필요 없지만 TTXML에 담긴 형태로 존재할 경우 다른 툴이 처리할 때 도움이 될 수 있습니다.

다만, 이 문법을 처리하지 못하는 도구에서 보여줄 경우 .plugin-content 내부 내용이 보여지기 때문에 혼란을 유발할 수 있는데 해결방법으로는 div 대신 <!-- --> 주석문을 이용하거나 항상 style="display:none;"으로 설정하는 것이 있을 수 있습니다. 이 부분도 의견 부탁드립니다.

ps. 이 쓰레드에서 대충 정리되면 텍스트큐브 코어와 구글맵 플러그인에 우선 적용해보겠습니다.

186

(1 답글들, 토의 및 과제 설정에 작성)

$customClass : 플러그인이 지정한 클래스 이름 (index.xml 등에 여러 개 정의 가능?)
$customID : 플러그인이 지정한 ID (옵션)
$originalContent : 플러그인이 처리할 데이터
$processedContent : 플러그인이 처리한 결과
$fallbackMsg : 플러그인이 없는 등의 이유로 작동하지 못할 때 대신 보여줄 메시지

변환되기 전:

<div class="plugin-replacer $customClass" ttml:handler="$pluginName" ttml:attr1="value1" ...>
  <div class="plugin-content">$originalContent</div>
  <div class="plugin-fallback">$fallbackMsg</div>
</div>

위에서 ttml: 네임스페이스를 가지는 것은 플러그인에게 associative array 형태로 전달. 이것만으로 충분하다면 .plugin-content 영역은 넣지 않을 수도 있음.

변환된 후:

<div class="plugin-replaced $customClass" id="$customID">$processedContent</div>

또는

<div class="plugin-fallback">$fallbackMsg</div>

이런 형태는 어떨까요?

187

(21 답글들, 토의 및 과제 설정에 작성)

생각나서 한번 binary-to-text 인코딩 중 효율이 괜찮은 것이 어떤 것들이 있나 찾아봤습니다. (현재는 첨부파일을 TTXML에 넣기 위해서 base-64 인코딩을 사용하고 있죠)

yEnc가 알려진 것중 효율은 가장 좋으나 여러 비판과 논란이 많았고, ascii85라는 대안을 하나 찾았습니다. 4바이트 데이터가 5바이트로 변환되므로 용량 증가 25% 정도이며, 이는 base-64의 30~40%보다는 좀더 효율적입니다.

물론 어차피 대용량 백업 파일의 경우 gzip/zip 등으로 묶는 것이 가장 좋겠지만, 이미지나 첨부파일이 많은 경우 base64가 아닌 다른 binary-to-text 인코딩 알고리즘을 사용함으로써 조금이나마 성능 향상을 꾀할 수 있지 않을까 합니다.

다른 분들 의견은 어떠신가요?

ps. 단점은 php에서 기본 제공하지 않기 때문에 php 코드로 구현된 것을 가져다 써야 하는데 용량에서 이득을 보는 대신 성능에서 손해를 볼 가능성도 있습니다.

그리고 버그 보고하면서 검색해보니,

http://bugs.php.net/45996
http://bugs.gentoo.org/show_bug.cgi?id=249703

이미 어느 정도 추적은 되고 있는 듯합니다만, 뚜렷한 해결책은 나오지 않은 것 같군요. orz
또한 문제의 원인은 리눅스에서 많이 사용되는 XML 백엔드 라이브러리인 libxml 2.7.x 버전 자체의 버그인 것으로 보입니다.

일단 Gentoo bugzilla에 직접 보고해두었습니다만 언제 고쳐질지, 혹은 이후 버전에서 고쳐졌을지까지는 저도 모르겠네요;;;

http://bugs.gentoo.org/show_bug.cgi?id=251666

coolengineer 작성:

PHP 자체 라이브러리가 아니라 Textcube XML Parser를 이용할텐데, 약간 이상하군요.

음, 그 파서는 XML을 미리 읽어놓고 편하게 접근할 수 있는 DOM 라이브러리가 없기 때문에 php 4.x대에서 제공하던 SAX 방식의 XML 라이브러리를 이용해 DOM 접근 기능을 자체적으로 구현한 것입니다.
(텍스트큐브의 XML 컴포넌트는 직접 XML 파일을 문자열로 읽어 해석하는 게 아니라, SAX 방식으로 php에서 제공되는 파서를 이용해 자체적인 자료 구조로 DOM을 메모리에 저장하는 역할을 합니다)

이 버그가 발생하는 이유는 SAX 파서가 호출하는 character data handler에서 HTML entity 값을 제대로 변환하지 못하고 빈 문자열로 주기 때문인데, 이 현상이 gentoo + compiled php에서만 보고된 바 있습니다.

앞으로 텍스트큐브 1.8 이후부터는 php 5.2가 설치 조건에 포함되므로 이렇게 DOM 자료구조를 직접 구현할 필요 없이 기본 제공되고 표준에 보다 가까운 DOM 라이브러리를 사용할 수 있습니다.

191

(3 답글들, 질문과 답변 / 사용자 지원에 작성)

사용자 계정 디렉토리로 옮기셨다면 /home/userid가 아니라 /home/userid/public_html 아래의 어딘가로 옮기셨다는 얘기인데(일단 글로 봐서는 tc 디렉토리로 옮기신 듯), 그렇다면 텍스트큐브가 영향을 받는 것은 다음과 같습니다.

1. /home/userid/public_html의 .htaccess (다른 프로그램에 의해 설치되었을 수 있음)
2. /home/userid/public_html/tc에 .htaccess 파일이 정상적으로 복사되었는지 여부 (숨김 파일이므로 혹시 빠졌을 수도 있습니다)
3. tc 디렉토리 내부의 퍼미션 문제 (일반적으로 쉘에서 mv 명령 등으로 그대로 옮겼다면 문제가 없어야 하나, ftp 클라이언트 등으로 옮겼다면 제대로 설정되지 않았을 가능성이 있습니다)

위의 사항들을 점검해보시고, 정확히 어떤 디렉토리의 .htaccess 파일을 말씀하시는 건지 알려주시면 좀더 도움이 될 것 같네요. 일단 /var/www 디렉토리를 접근할 권한이 있는 걸 보니 서버를 직접 운영하시는 듯한데... 아파치 설정에도 문제가 없는지(mod_rewrite를 사용하기 위해 허용해주어야 하는 설정 등), 웹서버 에러 로그 파일(보통 500 error가 발생하면 서버 로그에 에러 사유가 기록됩니다) 등을 확인해보시는 게 좋겠습니다.

192

(1 답글들, 질문과 답변 / 사용자 지원에 작성)

텍스트큐브를 해당 도메인으로 접속하여 재설정하거나, config.php에서 도메인 관련 설정들을 모두 바꾸시면 됩니다.

193

(3 답글들, 질문과 답변 / 사용자 지원에 작성)

웹에서 URL로 다운로드할 경우, 전송 시간이 웹서버의 php 스크립트 실행허용 시간을 초과하면 중간에 중단이 되어버리는데 웹브라우저에서는 그 사실을 알기가 어렵습니다.
따라서 웹호스팅을 이용하시는 경우라면 백업 파일을 업로드해서 계정에서 직접 읽어들이게 하시는 것이 좋습니다.

캐시 문제가 아니라면 웹서버쪽에 파일 업로드가 잘못되었을 수도 있습니다.
알FTP보다는 Filezilla 같은 프로그램을 사용하길 권장드립니다.

1.7.6 버전이라면 lib이 아니라 library여야 맞습니다. lib, library 디렉토리를 모두 싹 지우셨다가 1.7.6 패키지에서 library 디렉토리만 따로 올려보심은 어떨지요?

싸이월드가 아닌 다른 곳에서 한번 더 테스트해보심은 어떨지요.
어쩌면 웹브라우저 설정 때문일 가능성도 있습니다.;

아마도 HTTP Header 중 Content-Type이 잘못되어서 웹브라우저가 이미지로 날아온 데이터를 텍스트로 해석해 보여준다거나 하는 상황 같습니다.

서버 설정 문제인지 텍스트큐브 문제인지는 좀더 살펴봐야겠네요;

구분자라는 게 디렉토리를 말씀하시는 건가요?
그러면 당연히 루트에 텍스트큐브가 설치된 것이 아니므로 루트로 접근하면 텍스트큐브가 접속되지 않습니다.

루트로 접속했을 때만 되어도 괜찮다면, blog 디렉토리 안의 모든 내용을 상위 디렉토리로 옮겨야 하구요(숨김 파일인 .htaccess 포함) config.php에서 경로 설정을 수정해주셔야 합니다.

그게 아니라 그냥 blog 디렉토리를 놔두고 루트로도 접속되게 하고 싶다면 redirect해주는 페이지(index.php)를 하나 만드셔야 합니다.

<?php header("Location: /blog"); ?>

이런 식으로 하시면 됩니다.

198

(2 답글들, 질문과 답변 / 사용자 지원에 작성)

음... 혹시 기존에 사용하고 계신 다른 웹프로그램에 의해 설치된 것이라면 막 삭제하시면 그 프로그램이 동작하지 않을 수도 있습니다. ;;

웹브라우저 캐시를 초기화하고 다시 같은 증상이 발생하는지 확인 부탁드립니다.

웹브라우저의 캐시를 초기화해보세요. 업데이트 후 이전 버전의 자바스크립트, 스타일시트 등이 남아있어서 관리자 모드가 오동작하는 경우가 꽤 있습니다.