우오오오 lunamoth님 완전 사랑합니다.
맞습니다. 그게 원인이었습니다.
블로그 댓글에 blogspot.com을 넣고 서브밋하니 null이라는 메시지가 경고 창으로 뜨고 아무런 반응이 없더군요.
서버 차원에서 스팸이 심한 저 사이트 주소를 원천적으로 차단한 모양입니다.
웹호스팅은 shared shell (http://sshel.com/)을 사용하고 있습니다.
서버 관리자에게 문의해봐야겠군요.
원인이 뭔지 알게 되니 시원하네요.
아직 로그인하지 않았습니다. 로그인 또는 회원 등록을 해 주시기 바랍니다.
TNF : Tatter Network Foundation forum » noname가 작성한 글
우오오오 lunamoth님 완전 사랑합니다.
맞습니다. 그게 원인이었습니다.
블로그 댓글에 blogspot.com을 넣고 서브밋하니 null이라는 메시지가 경고 창으로 뜨고 아무런 반응이 없더군요.
서버 차원에서 스팸이 심한 저 사이트 주소를 원천적으로 차단한 모양입니다.
웹호스팅은 shared shell (http://sshel.com/)을 사용하고 있습니다.
서버 관리자에게 문의해봐야겠군요.
원인이 뭔지 알게 되니 시원하네요.
에디터 관련의 2개를 제외한 플러그인 모두를 끄고 링크 추가를 해봤으나 여전히 알 수 없는 에러가 나더군요.
뭐가 원인인지 불명... blogspot 이게 대체 왜 문제가 되는 건지;;
예전에 patchworks라고 위지위그 에디터 부분을 완전히 뜯어고쳤던 걸로 아는데, 그 담당이 lifthrasiir님인 걸로 알고 있었습니다. 요 두 달 간 건강 때문에 요양 중이라는 사실을 오늘 우연히 알게 되었는데 해결이 안 된 원인이 그거 아닌가 싶기도 했었군요.
아무튼 지금 저건 새롭게 에디터가 바뀌면서부터 안 된 거죠? FF2에선 되는 데 IE7에선 안 되는 걸 보면 서로 코드를 다르게 해야하는 부분인가 보군요. 텍스트큐브 2.0에선 TTML2를 준비하고 있던 걸로 들었습니다만, 포매터랑 에디터는 또 다른 거 같고 아무튼 결국 예전에 되던 게 잘 안 되니 좀 답답하긴 합니다. 크게 문제는 없지만 가끔 실수로 특정 구간을 왕창 지웠다가 급히 살려야 할 때 ctrl+z가 안 되면 불편했거든요. ^^;
코드를 뜯어 보려니 너무 복잡한 것 같아서 엄두를 못 내겠고 아무튼 크게 또 뜯어고치지 않고 해결되었으면 좋겠습니다.
텍스트큐브 1.7에서도 이 문제가 여전하여 과거 토픽을 위로 올립니다.
몇 가지 더 테스트한 결과입니다.
홈페이지 주소에 blogspot라고만 넣으면 등록 잘 됩니다.
그러나 blogspot.com 라고 넣으면 등록 불가능입니다. (알 수 없는 에러라고 경고 창이 뜸)
blogspot.net은 등록 가능합니다.
blogspot.co.kr도 등록 가능합니다.
이걸 볼 때 역시 아무리 봐도 내부 필터링에 걸리는 것 같은 느낌이 드는군요. ^^;
※첨부 파일로 플러그인 목록을 캡처한 그림을 넣어둡니다.
(스크롤 압박이 심할 듯.. 세로로 상당히 깁니다. 7200 픽셀)
<del>그런데 파일 크기가 691KB인데 첨부파일 등록이 안 되네요?
첨부파일명은 plugin_list_at_sylphid_wave_in_textcube.png 인데 IE7, FF2에서 등록이 되지 않습니다. (아무런 메시지 없이 그냥 수정만 됨)</del>
새로 첨부한 파일 용량은 328KB. 안 쓰는 플러그인 목록을 끄고 용량 줄이니 업로드 되는군요.
이 포럼에선 용량 초과시 아무런 메시지도 안 나타나고 미리 어느 정도 용량까지 제한인지 알려주지 않아서 불편합니다.
(허용 용량과 파일명 길이 제한이 있는지 알기 위해 한참 헤맸습니다)
테스트를 해봤습니다.
링크 추가에서 rss 항목에 http://feeds.feedburner.com/mwultong 를 넣고 정보 가져오기를 하면
홈페이지 제목에, mwultong Blog ... 디카 / IT
홈페이지 주소에, http://mwultong.blogspot.com/
이렇게 나옵니다. 이 상태에서 추가하기를 클릭하면... “알 수 없는 에러가 발생했습니다.” 라는 경고 창이
뜬 후 아무런 동작도 이루어지지 않습니다. 분류를 바꿔도 마찬가지입니다.
이때 홈페이지 주소를 살짝 바꿔서 아래와 같이 하면 등록이 됩니다.
http://mwultong.blogspo.com/
(blogspot 뒤에 t 를 뺐습니다)
역시 저 문자열이 스팸 등의 필터에 걸리는 게 아닌가 싶은데요.
제가 생각해봐도 EAS에서 링크 추가할 때 저걸 검사할 리가 없을테고, 또 제가 환경설정에서 추가해놓은
필터링에는 저런 단어가 없습니다.
아무튼 묘한 현상인데 직접 저 rss 주소를 통해 텍스트큐브 1.7에서 링크 추가를 해보세요.
아참, 저 블로그를 추가한 건 꽤 오래 됐습니다. 구 태터툴즈 1.x일 때 추가했던 듯 한데 그때는 아무런
이상 없었습니다.
텍스트큐브 1.6.3을 사용하고 있을 때 플러그인으로 도아님이 만드신 tracewatch를 켜놓으면,
tracewatch의 리퍼러 주소에 blog/undefined 값이 한번씩 찍히더군요.
아마도 이벤트에 등록되지 않은 방명록 페이지나 태그 페이지 등을 클릭했을 때 저게 뜨는 게 아닐까 싶은데,
원래는 무엇을 의도하려 했는지 알고 싶습니다.
예전에 통계 플러그인을 개발하기 위해 방명록 등의 페이지에도 모두 이벤트를 등록해달라고 요청한 적이
있었는데, 그런 용도로 사용할 수도 있는지 모르겠군요.
텍스트큐브 버전 1.7로 업그레이드 후(기존 1.6.3 사용) 네트워크 - 링크 페이지에서 링크를 하나씩
수정하고 있었습니다.
그런데 특정 사이트 주소만 알 수 없는 에러라며 수정이 되지 않더군요.
해당 사이트 주소는 http://mwultong.blogspot.com/ 입니다만 이게 원인이었습니다.
blogspot 이라는 단어가 스팸 필터에 걸려서 중간에 처리가 되지 않았던 모양입니다.
(아마 저번 또는 예전의 스팸 폭격때 텍스트큐브 플러그인에 이 단어를 필터에 등록한 모양)
위 추측이 맞다면 링크를 추가할 때는 저 필터를 거치지 않고 예외로 하는 방법이 필요할 듯 합니다.
텍스트큐브 1.6.2를 쓰고 있고 브라우저는 IE7입니다.
FF에서는 동작을 하는데 IE7에서는 위지위그 에디터 상태에서 CTRL+Z로 되돌리기가 안 됩니다.
예전에 이 버그가 보고 되었는지 차후 수정한다는 글을 1.6 버전대에서 본 적이 있었는데, 아직 수정이
안 된 것 같습니다.
IE7은 구글 툴바와 IE7Pro 플러그인을 사용하고 있습니다.
브라우저 종류에 따른 차이가 생길 때가 있습니다.
FF인지 IE인지 버전은 얼마인지 적어두시면 참조할 정보가 될 겁니다.
또다른 브라우저에서도 다른 동작을 보일 때가 있는 걸로 아는데 아무튼 골치 아픈 문제 중 하나였던 걸로 기억하네요.
플러그인에서 스킨 내부에 있는 index.xml 파일의 값을 참조할 방법이 있는지 알고 싶습니다.
가령 skin/customize/1/index.xml 파일 내부에 <contentWidth>500</contentWidth> 라는 요소가
있으면 이 값을 플러그인에서 참조하고 싶습니다. (예를 들면 $skin_var['contentWidth'] 이런 식으로)
직접 스킨 디렉토리의 해당 파일을 읽어서 파싱하지 않고 텍스트큐브에서 제공하는 변수가 있는지요?
추가로...
컬럼이 char이나 varchar형일 때 index.xml에서 default 값을 NULL이 아닌 (공백)으로 처리하는 방법이 있나요?
<default></default> 이렇게 되어 있을 경우 NULL이 들어가더군요.
<default>''</default> 이나 <default>""</default> 으로는 (공백)을 기본값으로 지정할 수가 없었습니다.
MySQL에서 default 값은 NULL일 때보다 기본값이 들어가 있는 게 더 빠르다고 알고 있습니다.
(3.x 때의 이야기라 4.x 나 5.x 에서도 그대로인지는 모르겠습니다. ^^;)
3.
아직 해당 이벤트에 대한 설명이 없어서 확신은 못하겠지만, 분류/태그/검색/저장소 모두 ViewListHeadTitle 이벤트가 일어나는 것 같군요.
그러나 tag/태그명 으로 접근하지 않고 그냥 tag/ 로 접근했을 때 보이는 태그 목록에서는 일어나는 이벤트가 없는 것 같습니다. ViewSiteTags 이벤트를 리스너로 등록하여 테스트 해보았지만 반응이 없군요.
cover/ 에 접근할 때 일어나는 이벤트도 같이 추가 되었으면 합니다.
4.
ViewTagLists 이벤트에 대한 설명으로 '태그 리스트를 보여줄 때 사용하는 이벤트'라고 되어 있는데 설명이 모호합니다(처음엔 tag/ 로 접근할 때 일어나는 이벤트인 줄 알았습니다). '해당 글(또는 엔트리)의 태그 리스트를 보여줄 때 사용하는 이벤트' 식으로 보다 상세하게 수정하는 게 좋겠습니다.
5.
그리고 위에서 언급한 플러그인 이벤트 설명에서 아래의 내용에 대한 설명도 덧붙여주셨으면 합니다.
'UpdateDB_' . $plugin . '_' . $name ¶
ViewListHeadTitle ¶
ViewSiteTags ¶
ViewCommentListTitle ¶
ViewCommentIcon ¶
ViewGuestCommentIcon ¶
ViewArchiveDate ¶
...요구하는 게 많아서 죄송합니다. orz
1.
검색을 해봤으나 플러그인의 index.xml 에 들어가는 safety 엘러먼트의 속성을 잘 모르겠습니다.
<safety changeData="no" exposeData="no" accessLocal="no" accessRemote="no" accessRaw="no" />
각각의 속성 값이 어떤 경우에 어떻게 쓰이는지 알고 싶습니다.
(더불어 플러그인 만들면서 확실히 디버깅하기 힘들구나.. 하고 느끼고 있습니다;)
2.
ViewPostContent 이벤트를 이용하고 있는데 아래와 같은 파일에서 이 이벤트가 일어난다고 하더군요.
/blog/archive/item.php
/blog/category/index.php
/blog/index.php
/blog/item.php
/blog/rss/index.php
/blog/tag/index.php
그래서 이를 참고로 구현 중, category/ 접근과 tag/ 접근은 관리자 메뉴에서 스킨-출력 설정의 값에 따라
이벤트가 발생되지 않을 수도 있다는 것을 알았습니다.
분류 선택 시 글 목록을 표시합니다.
태그 선택 시 글 목록을 표시합니다.
이렇게 설정해 놓고 있을 경우, 분류나 태그에 해당하는 디렉토리로 접근하더라도 ViewPostContent 이벤트는 발생하지 않는 것 같네요. (당연한 건가요?)
http://dev.textcube.org/wiki/pluginEvents 페이지를 참고로 하면 분류만 접근했을 때 일어나는 이벤트가 없습니다. 이에 대한 이벤트 추가를 건의합니다.
그리고 설명이 없어서 잘 모르겠습니다만 ViewSiteTags 이벤트가 tag/ 로 접근시 일어나는 게 맞나요?
ViewArchiveDate 이벤트의 경우에도 정확히 아카이브가 어느 때 일어나는 이벤트인지 설명이 필요합니다.
그리고 검색시에 일어나는 이벤트도 추가되었으면 합니다.
이는 모두 분류/저장소/태그/검색 선택 시, '글 목록을 표시합니다.' 옵션으로 해놓으면 ViewPostContent
이벤트가 발생하지 않기 때문에 필요한 추가 사항입니다.
http://help.tattertools.com/ko/Plugin_Tutorial
이 포럼에서 검색해 찾아간 위의 플러그인 튜토리얼 사이트를 가도 업데이트가 안 되어 있어서 몇가지 시도를 해봤으나 unsigned 설정은 없는 것 같군요.
필드에 auto_increment 설정도 필요해서 <autoincrement>1</autoincrement> 로 해주고 위의 편법과 같이 시도해보니 테이블 생성이 안 되었습니다.
unsigned 설정을 하면서도 auto_increment 설정도 같이 할 수 있으면 합니다.
<storage>
<table>
<name>Plugins_name</name>
<fields>
<field>
<name>field_name</name>
<attribute>int</attribute>
<length>11</length>
<isnull>0</isnull>
<default>0</default>
</field>
</fields>
</table>
</storage>
index.xml 설정에서 테이블의 컬럼을 설정할 때 int(11) unsigned 형식으로 만들려고 합니다.
그런데 속성을 보니 unsigned 가 어디에 들어가는지 안 보여서, length 속성을 빼고
<attribute>int(11) unsigned</attribute> 이런 식으로 하니 제대로 생성이 되긴 하더군요.
이런 식으로 하는 게 편법인지 모르겠습니다. 만약 속성이 없다면 추가해주셨으면 합니다.
확실히 text 컬럼을 쓰는 것은 좀 부하 문제가 있지 않을까 걱정이 되긴 하는군요.
마찬가지로 리퍼러를 관리하는 테이블도 varchar(255)로 되어 있어서 가끔 리퍼러 로그가 잘릴 때가 있더군요. 사실 웬만한 경우 255를 넘는 건 드뭅니다만, 가끔 긴 질의로 들어오거나 entry명을 블로그 퍼머링크로 쓴 곳에서 방문하면 잘릴 때가 있습니다.
1. 플러그인을 개발할 때 (prefix)_Sessions 테이블을 참고하려 합니다.
그런데 이 테이블 레코드의 라이프 사이클을 몰라서 어느 정도의 주기로 유지되는지 알고 싶습니다.
config.php를 보면 $service['timeout'] = 3600 * …; 항목이 있는데 이 값에 따라 변동이 되는지
아니면 일정하게 정해진 시간에 따라 세션이 삭제되는지요?
2.
mysql> desc tt_Sessions;
+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| id | varchar(32) | NO | PRI | NULL | |
| address | varchar(15) | NO | PRI | NULL | |
| userid | int(11) | YES | | NULL | |
| preexistence | int(11) | YES | | NULL | |
| data | text | YES | | NULL | |
| server | varchar(64) | NO | | NULL | |
| request | varchar(255) | NO | | NULL | |
| referer | varchar(255) | NO | | NULL | |
| timer | float | NO | | 0 | |
| created | int(11) | NO | | 0 | |
| updated | int(11) | NO | | 0 | |
+--------------+--------------+------+-----+---------+-------+
11 rows in set (0.01 sec)
이 테이블에서 request, referer 컬럼이 varchar(255)로 정의되어 있는데 이걸 text로 변경해야 할
필요성이 보입니다. 가령 레코드의 request 컬럼 중에는 아래와 같이 거의 한계치에 가까운 값도
있습니다. (실제 길이는 248바이트입니다)
/blog/noname/entry/%eb%b0%9b%ec%b9%a8-%ea%b5%ac%eb%b6%84%ec%9d%84-%eb%aa%bb%ed%95%98%eb%8a%94-%ec%82%ac%eb%9e%8c%ec%9d%b4-%ec%9d%b4%ec%83%81%ed%95%98%ea%b2%8c-%eb%b3%b4%ec%9d%b4%eb%8a%94-%ea%b1%b4-%eb%82%98-%eb%bf%90%ec%9d%bc%ea%b9%8c%23comment2372
referer 컬럼도 마찬가지 이유로 255바이트를 넘는 경우가 있습니다.
지금 플러그인 설정을 눌러서 뜨는 팝업 창에서 저장 버튼을 누르면 자동으로 창이 닫힙니다.
하지만 플러그인 중에는 복잡한 설정을 해야하는 경우가 있으므로 자주 저장하고 블로그 화면을 확인하기도 합니다.
이럴 때 매번 창이 닫히니 또 클릭해서 열어야 하는 수고로움이 있더군요.
저장 버튼 바로 옆에 닫기가 있으니 저장만 하고 닫히지 않는 것을 기본값으로 했으면 합니다.
물론 저장 버튼 클릭시 아무런 반응도 없으면 안 되니 적절한 공간에 (하단 좌측이나 우측?)
명시적으로 저장 됐다는 메시지를 표시하는 게 좋겠습니다.
* 지금 팝업 창 소스를 보니 이미 관련 코드는 다 있네요.
window.close();
요 줄만 빼면 되겠군요.
...개발팀이었으면 모님이 결자해지! 라거나 외쳤을 상황일지도 ^^
뜬금없는 소리입니다만 이번에 tokigun님의 patchworks 프로젝트가 구현되고나면 그때쯤 정식 오픈했을 springnote와 에디터를 같이 만들어보는 건 어떨까요? 그쪽도 에디터 구현 부분에 각종 버그로 진땀을 흘리던데 나중에 공개할 예정이라고 들었습니다. 좀 더 미뤄도 되겠지만 아무래도 블로그에서 가장 큰 의미를 가지는 글 쓰기가 답답할 때가 많습니다.
저도 해당 버그는 주로 이미지 업로드 직후에 일어나곤 하더군요.
이미지 올리고 나면 입력기(세벌식 유저인데 IME 대신 날개셋을 씁니다)의 한/영 전환이 안 되서 에디터 바깥을 찍었다가 다시 찍어서 또 전환하는 불편함을 종종 겪습니다. 하도 에디터 부분의 불안한 증상(커서 캐럿이 튕기는 등)을 겪다보니 차라리 정말 ActiveX라도 도입했으면... 하는 생각이 들 정도입니다. -_- 물론 원하는 사용자에게만. (=불필요한 비용 증가? orz)
아무튼 patchworks의 완성을 기대하고 있습니다. 편집기 부분에서 기존의 자바스크립트 에디터가 가지는 한계를 최대한 극복해주기를.. (tokigun님인걸요. 믿어요 ^o^;)
방금 테스트 해보다가 그걸 깨닫고 왔더니 이미 답변이..
s_ad_div 를 여러번 사용하도록 만들 수는 없을까요? 지금은 글 본문이나 방명록 내부에서만 선언되도록 제한되어 있는 듯 한데, 관리자가 로그인한 상태에서만 보여주고 싶은 부분이 있습니다. 그걸 스킨의 기능만으로 구현하려고 했더니 안 되는군요.
스킨의 하위 호환성에 문제가 되지 않는다면 이 치환자가 좀 더 확장되었으면 합니다.
처음엔 s_ad_div가 여러번 사용할 수 없는 문제인지 알았으나 테스트 결과 버그인 듯 합니다.
s_ad_div 치환자를 쓸 때 이미 정의되어 있는 치환자보다 앞에 또 선언하면 공개<->비공개 전환 부분에서 버그가 발생합니다.
스킨에서
<s_ad_div>
<div class="admin">
<a href="[##_s_ad_m_link_##]">EDIT</a> |
<a href="#" onclick="[##_s_ad_m_onclick_##]">EDIT(WIN)</a> |
([##_s_ad_s1_label_##])→<a href="#" onclick="[##_s_ad_s2_onclick_##]">[##_s_ad_s2_label_##]</a> |
<a href="#" onclick="[##_s_ad_t_onclick_##]">TRACKBACK</a> |
<a href="#" onclick="[##_s_ad_d_onclick_##]">DELETE</a>
</div>
</s_ad_div>
이런 부분이 있을 때 이보다 위에 s_ad_div 영역을 선언해주면 s_ad_s1_label, s_ad_s2_label 치환자가 채워지지 않습니다.
원래는 '(발행)→비공개로 변경합니다' 라고 나와야 할 부분이 사라지고 그냥 '()→'으로 나옵니다.
대신 미리 선언된 부분 뒤에 추가한 s_ad_div 영역을 놓아주면 문제 없습니다. 아마 이 부분의 치환을 처음 등장하는 치환자에 한 번만 적용해서 그런 게 아닐까 싶군요.
피드버너의 일부 feed를 못 읽어오길래 왜 그런가 했더니 atom 1.0 버전은 아직 읽지 못하는 것 같습니다. 이 글을 보면 예전에 얘기된 적이 있을 듯 한데 관련 글을 한 번 더 올려봅니다.
못 읽는 atom 피드 예제는 아래에...
정치적인 이슈가 될지는 모르겠습니다만, 이제 웹사이트가 UTF-8이 기본으로 정착되어 가는 과정에서 DB 또한 UTF-8로 바뀌는 건 당연하다고 봅니다. 기존의 EUC-KR 사용이 워낙 보편화 되어 있어서 고쳐나가기 쉽지 않는 건 인정합니다. 그러나 오래도록 호스팅 사업을 해온 업체들에게도 환경을 업그레이드 해야할 의무가 있다고 봅니다. 특히 이건 CJK 국가에서 먼저 시행하지 않는 한 외국 업체들에게 먼저 기대할 수 없는 노릇입니다. 아쉬운 건 우리들이니까요.
개인이 아닌 TNF 입장에서 zero님에게 이 부분을 논의해보는 것은 어떨까 합니다. 유니코드가 정식으로 지원되지 않는 MySQL 구 버전에 대한 지원을 새로운 제로보드에선 하지 않는 방향으로... 물론 기존의 제로보드 유저를 버려선 안될테니 옮기고자 하는 유저에겐 서버 환경상의 제약이 있을 겁니다. 하지만 기존의 legacy 환경을 강제로 옮기는 부담을 안는 것보단 차라리 새로운 환경에 꼭 옮기고자 하는 사용자에게만 제공하는 방식이 올바르다고 봅니다. 굳이 잘 돌아가는 구 버전 제로보드를 그저 새 버전 쓰고 싶다고 다 옮길 필요는 없으니까요.
제로보드의 향후 서버 환경 지원에 따라 호스팅 업체의 방향에 큰 영향을 끼친다면 이런 부분도 고려해볼 필요가 있다고 봅니다.
네 그래서 편집기에서도 제목 선택은 h3에서 시작하더군요. 가끔 일부 스킨에서 사이드바에 h* 태그를 할당한 경우가 있긴 합니다만... (의미론적으로는 적합치 않을 듯)
TNF : Tatter Network Foundation forum » noname가 작성한 글