간단한 원인 : 엉뚱한 곳에서 빈 줄이 출력되었다.

원인 : 
  • 엉뚱한 곳에서 (보통 xe/files/config/config.user.inc.php 에서 실수함) 빈 줄이 추가됨
  • 실제로 날라오는 XML자료의 첫 번째 줄에 <response>가 나타나지 않고 빈 줄이 추가됨
  • xml을 처리한 javascript상에서 xml이 아닌 일반 메시지로 판단 
    (정규식에 의해 첫 번째에 <response>가 나타나면 xml로 파싱해서 처리하고 그렇지 않으면 일반 메시지로 판단
    앞에 새 줄(\n)이 있으므로 /^<response>/에 해당하지 않으므로 일반 메시지로 판단됨)
  • 해당 경고 메시지가 뜬다
추가 : 이런 경우는 보통 __OB_GZHANDLER_ENABLE__ 을 활성화 하면 에러남
  • 메시지 내용은 header상에서는 압축되었다고 했으나, 정작 메시지 내용은 압축된 자료 앞에 \n이 추가되어됨
  • 브라우저상에서 정상적인 압축 자료로 인식하지 못하고 지원하지 않는 인코딩이라는 창이 뜸

해결 방법 : 엉뚱한 빈 줄을 찾아야 된다. (output buffering 기능을 끄면 header전에 출력되는곳을 알 수 있으나 정작 어디서 꺼야될지는 정확하게 모르겠다.) 일단 xe/files/config/config.user.inc.php에 빈 줄이 있는 지 (특히 <? 앞이나 ?> 뒤에 확인할 것) 확인한다.


Posted by Parker Falcon
modules/editor/skins/default 업데이트
modules/editor/tpl/images 업데이트
modules/editor/editor.controller.php 업데이트
modules/editor/editor.model.php 업데이트
modules/file/file.controller.php 업데이트
modules/file/file.admin.view.php 업데이트
modules/file/file.model.php 업데이트
file.model.php 수정
80 //if($module_srl) $file_config = $oModuleModel->getModulePartConfig('file',$module_srl);

'Digital Life > 볼만한 이야기' 카테고리의 다른 글

감옥에서 승리하리라.  (0) 2009.03.10
[링크] 시게이트 7200.11 살리는법  (0) 2009.01.22
청계천 탐앤탐스  (0) 2008.10.29
grep - 파일 내부의 문자 찾기  (0) 2008.10.27
.htaccess 파일을 만들 때  (0) 2008.10.16
Posted by Parker Falcon
제로보드 XE 1.0.6 에는 포인트 기능에서 조그마한 문제가 있습니다.

글을 작성할 떄 포인트가 줄어드는 게시판에, 포인트가 부족한 상태에서도 글을 작성할 수 있다는 사실.

좀 귀찮은 문제이어서 바로 수정하였습니다.

modules/board/board.view.php 입니다.

약 263줄 부터입니다.

         /**
         * @brief 글 작성 화면 출력
         **/
        function dispBoardWrite() {
            // 권한 체크
            if(!$this->grant->write_document) return $this->dispBoardMessage('msg_not_permitted');

            // check point
            if(Context::get('is_logged')) {
                $logged_info = Context::get('logged_info');
                $oPointModel = &getModel('point');
                $current_point = $oPointModel->getPoint($logged_info->member_srl);
                $oModuleModel = &getModel('module');
                $point_config = $oModuleModel->getModuleConfig('point');
                $module_srl = Context::get('module_srl');
                $current_module_point = ($point_config->module_point[$module_srl]['insert_document']? $point_config->module_point[$module_srl]['insert_document'] : $point_config->insert_document);
                if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');
                debugPrint ('cur = '.$current_point.' mod = '.$current_module_point );
            }


            $oDocumentModel = &getModel('document');

아 그리고 $lang->msg_not_enough_point 라는 메시지는 적당히 추가해주면 됩니다.

"포인트가 부족합니다" 정도는 어떨까요?

2009년 1월 8일 추가 :

1.1.1 에서 제대로 작동하지 않아서 http://quota.tistory.com/129 에 업데이트 하였습니다.
Posted by Parker Falcon
잠 안와서 몇 시간 밤 새다가 만들었네요 ㅠㅠ

다시는 이런짓 안해야지 ㅠㅠ

설치 방법 - 그냥 풀어서, 덮어씌우시거나 알아서 폴어 옮기시거나... 이전 자료 날라갔다고 저에게 뭐라하셔도 소용없습니다.

저번에 zip 안올려서 곤란하신 분들 생각에 이번에는 두 버전 같이 올립니다...

point-log3.zip point-log3.tar.bz2


이용 방법


조금 더 고치기

알려진 문제점


추가 - 0.2 버전에 몇 가지 사소한 수정하여 0.2.1 올렸습니다.
= 이전에 debugPrint로 사용하던 소스가 일부 남아서 없에고 올렸습니다.
= 관리자가 임의로 포인트를 정해 줄 경우 메시지로 기록이 남습니다.
= 관리자 메뉴에서 검색 후 이동할 때 검색 쿼리가 따라다니는 문제점을 해결하였습니다.
= 글 쓰기 과정에서 점수 변화량을 제대로 출력하지 못한 문제를 해결하였습니다.
Posted by Parker Falcon
제로보드 XE 에서는 권한이 없는 행동을 할 경우,

정말 말 그대로 '권한이 없습니다' 라는 메시지를 띄웁니다.

물론 논리적인 문제가 있는 메시지는 아니지만,

사람들에게 너무 딱딱하고, 또한 권한에 따라서 메시지를 다르게 하고 싶은 경우가 있습니다.

이런 경우 이렇게 해보세요.


Posted by Parker Falcon
제로보드 XE 에서 개인적으로 생각할 때 부족한 기능 중 하나인 다중 언어 모듈이 일단 완성되었다.

하는 일이라고는, 현재 설정된 언어에 따라서 해당하는 주소로 redirect하는 일이기는 하지만,

여러 언어를 위한 페이지를 위해서 언어별로 레이아웃이나 메뉴을 똑같이 여러개 만들 필요성은 없어졌다.

다만 아직은 테스트 단계이고, release 는 아직 계획에는 없다.

아무튼 잘 작동해서 다행이고, 조금 더 user-friendly 하게 만들어야지.

샘플 사진 하나

사용자 삽입 이미지

동영상은?


Posted by Parker Falcon
현재 서버에 등록된 파일을 크기순으로 출력하는 위젯입니다.

사용자 삽입 이미지


라이선스는 GPL
코드에 대한 저작권은 따로?

http://www.zeroboard.com/17336097
Posted by Parker Falcon
메뉴 모듈의 기능을 몇 가지 추가하였습니다.

사용자 삽입 이미지

아래에 붉은색 테두리를 친 부분인데요, 활용 방법은 아래와 같습니다.
사용자 삽입 이미지
이렇게 하나의 메뉴 아이템으로 서브메뉴 이미지까지 처리할 수 있게 변경하였습니다.

원본 소스가 GPL이고, 이 개작도 GPL입니다.

http://www.zeroboard.com/17320295
Posted by Parker Falcon
./modules/rss/tpl 에 rss20.html 을 아래와 같이 바꿉니다.
(1.0.4 기준)

다만 작동 여부는 장담 못해요.

{'<?xml version="1.0" encoding="utf-8"  standalone="yes"?>'}

<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:media="http://search.yahoo.com/mrss" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title><![CDATA[{$info->title}]]></title>
<link><![CDATA[{$info->link}]]></link>
<description><![CDATA[{$info->description}]]></description>
<language>{$info->language}</language>
<pubDate>{$info->date}</pubDate>
<totalCount>{$info->total_count}</totalCount>
<!--@foreach($document_list as $oDocument)-->
<!--@foreach($oDocument->getUploadedFiles() as $key => $UploadedFiles)-->
<item>
<title><![CDATA[{$oDocument->getTitleText()}]]></title>
<author><![CDATA[{$oDocument->getNickName()}]]></author>
<link><![CDATA[{$oDocument->getPermanentUrl()}]]></link>
<!--@if($oDocument->thumbnailExists())-->
<media:thumbnail url="{$UploadedFiles->download_url}"/>
<media:content url="{$UploadedFiles->download_url}"/>
<!--@end-->
<!--@if($mid_list[$oDocument->get('module_srl')]->open_rss=='Y')-->
<description><![CDATA[{$oDocument->getContent(false,false,true)}]]></description>
<!--@else-->
<description><![CDATA[{$oDocument->getContentText(100)}]]></description>
<!--@end-->
<pubDate>{$oDocument->getRegdateGM()}</pubDate>
<!--@foreach($oDocument->get('tag_list') as $tag)-->
<category><![CDATA[{$tag}]]></category>
<!--@end-->
</item>
<!--@end-->
<!--@end-->
</channel>
</rss>

'Digital Life' 카테고리의 다른 글

전자기기는 재부팅이 필수!  (0) 2008.08.09
인코딩은 어렵네  (0) 2008.08.01
워크래프트 1.22 패치 오류  (0) 2008.07.02
많아도 18만건..  (0) 2008.05.20
17년 후 - 지식체널e 에서 사라진 부분.  (0) 2008.05.16
Posted by Parker Falcon

인터넷에서 뉴스를 잠시 보다가 기대작 ‘제로보드XE 1.0’ 1년만에 정식출시라는 기사를 보게 되었다.

(링크는 해당 신문사로 바로 연결해 두었지만, 실제로는 네이버상에서 기사를 읽었다.)

개인적으로 관심을 가지고 있던 (좋아하고, 좋아하지 않고와는 다른 문제로) 제로보드XE의

정식 출시라는 소식을 접해 듣고 기사를 읽었다. 그리고 밑에 간단한 답글과 트랙백이 달려있는 것을 확인했다.

흥미로운 트랙백(서명덕기자는 기사를 이런식으로 쓰나?)이 있어서 들어가서 읽어 보았다.

내용을 대충 요약하자면 이런 것이다.
(내가 피곤한 늦은 밤에 쓴 글이기 때문에, 사실을 왜곡 할 가능성이 있으니 정확한 사실을 알고 싶은 사람은 두 사람의 글을 읽고 직접 비교하기 바랍니다.)

  1. [서명덕 기자]님 께서 [댣로그] 블로그에서 [제로보드XE 정식버젼 출시]라는 게시물을 읽었다.
  2. [서명덕 기자]님 께서 [조선일보]에 [기대작 ‘제로보드XE 1.0’ 1년만에 정식출시]라는 기사를 올렸다.
  3. [댣로그 관리자]님 께서 [서명덕 기자]님 께서 작성하신 기사를 읽었다.
  4. [댣로그 관리자]님 께서 자신이 쓴 글과 신문 기사를 비교해 보면서 많은 유사점을 발견했다.
  5. [댣로그 관리자]님 께서 [서명덕 기자의 제로보드 정식출시] 기사는 [자신의 게시물]을 [복사해놓고 단어나 표현만 바꿔놓은것이나 다름없]다고 생각하면서 [서명덕 기자의 기사에 대한 문제 제기] 게시물을 올렸다.
  6. [서명덕 기자]님 께서 [댣로그] 블로그에 가서 [몇 줄은 그대로 쓴 것이 맞고 나머지는 직접 참고한 것은 아니다] 정도의 해명으로 [댓글]을 작성했다.

이 정도가 아닌가 생각합니다.

그리고 그 이후의 경과는 제가 생각하기에는 [댣로그 관리자]님 께서는 [서명덕 기자]님의 해명에 만족 하지 못하고 더 강도 높은 사과를 원하지만 그렇게 되지 않은 것으로 보입니다.

제 생각은 이러합니다.

세상에 글의 종류는 다양합니다만, 객관적 사실에 중요성을 둔 글(예를 들면 과학적 실험 결과의 보고서)이 있고 주관적 의견에 중점을 둔 글(사설, 논평 등)이 있습니다. 만약 지금 이야기 하고자 하는 "글이 매우 유사 하다"라는 문제가 뒤의 글, 즉 주관적인 의견이 중요한 글에서 일어났다면 표절과 같은 논란의 대상이 되는것은 쉽게 생각할 수 있습니다. 하지만 객관적인 사실에 관한 글이라면 조금 다르다고 생각합니다.

경우에 따라서는 약간 달라질 수도 있겟지만, 보통의 경우는 큰 특징에 대해서는 일치합니다. 예를 들어서 DMB와 음악 재생 기능이 있는 예쁜 카메라가 출시 되었을 때, 제품에 대한 설명에는 DMB로 TV를 볼 수 있고, 음악 파일을 넣어서 들을 수 있으며, 디자인이 예쁘다는 이야기가 들어가 있을 것 입니다. 설명 부분은 여러 사람이 쓰더라도 큰 차이는 없을 것 입니다. 물론 특정 분야의 전문가라면 거기에 있는 DMB의 칩에 관한 이야기나 안테나의 전자기학적 구조에 대한 이야기를 쓸 수도 있지만, 많은 사람들에게 제품을 설명 하는 글에 쓸 내용과는 거리가 있습니다.

지금 경우는 좀 전에 설명한 경우와 비슷하다고 보니다. 둘 다 제로보드XE의 1.0출시라는 사실을 두고 이러이러한 일을 할 수 있는 이런 기능과 저런 기능이 있다는 글을 썼습니다. 사실을 쓴 부분에서는 큰 내용은 대부분 일치 합니다. 더군다나 중요한 단어들(RSS나 모듈화 같은)은 겹치지 않기가 힙듭니다. 물론 그러한 내용을 쓰는 부분에서 [댣로그 관리자]님 께서 첫번째로 지적하신 부분은 [서명덕 기자]님 께서 인정하셨으니 더이상 이야기 하지는 않겠습니다. 하지만 그 이외의 부분들( #2 #3 #4 )에 대해서는 [서명덕 기자]님 께서 보고 'copy'했다는 것 보다는 같은 사실을 보고 특징을 같이 본 것이라고 생각합니다. '1년' 이라는 표현 등 다른 겹치는 부분도 애초에 처음 글인 [제로보드의 공지사항]에서 시작된 것이 봅니다.

아무튼 블로그가 인터넷 상에서 자신의 생각등을 남기는 것이고, 생각은 자유롭게 할 수 있지만 불화나 오해가 생기지 않았으면 좋겠습니다.

'Analog Life' 카테고리의 다른 글

불법 연행시 대처요령  (0) 2008.06.05
싫다고 할까?  (0) 2008.03.31
[펌] 노홍철이 좀 짱인듯?  (0) 2008.02.21
Trois Amis에서 iTunes로 새로운 즐거움을!  (0) 2008.01.31
새로운 맥주 - Blue Nile / White Nile #2  (0) 2008.01.15
Posted by Parker Falcon