웹마스터 팁

현재 이슈트래커 기능은 리눅스 서버에 설치된 제로보드에서만 정상적으로 동작이 됩니다.

만일, 윈도우나 맥서버에 설치된 제로보드에서 이슈 트래커를 정상적으로 이용하려면 약간의 코드를 수정해야 합니다.

이러한 문제가 발생하는 원인은 각 운영 체제 별로 줄바꿈 문자에 대한 처리가 틀려서 나타나는 현상입니다.

각 운영체제별 줄바꿈 문자는 아래와 같이 처리됩니다.

윈도우 : 캐리지 리턴(Cr) & 라인 피드(Lf)
리눅스 : 라인 피트(Lf)
맥       : 캐리지 리턴(Cr)

그러므로 줄바꿈 문자를 처리하기전에 한가지 형식으로 통일 후 처리하도록 코드를 수정하면 모든 운영체제에서 사용가능하게 됩니다.

xe설치경로/modules/issuetracker/classes/svn.class.php 파일에서 '\n' 으로 각 문자열을 분리하기 전에 치환함수를 이용해서 처리 후 분리하도록 아래의 소스코드에서 18라인과 같이 소스코드를 수정해야 합니다.

 function getList($path, $revs = null) {
    if(substr($path,0,1)=='/') $path = substr($path,1);
    if(strpos($path,'..')!==false) return;

    $command = sprintf(
        '%s --non-interactive %s --config-dir %s list %s%s%s',
        $this->svn_cmd,
        $this->_getAuthInfo(),
        $this->tmp_dir,
        $this->url,
        $path,
        $revs?'@'.(int)$revs:null
    );

    $buff = $this->execCmd($command, $error);

    // 운영체제 별 줄바꿈 문자 처리가 틀리므로 \n으로 통일시키기
    $buff = str_replace(array("\r\n", "\r"), "\n", $buff);

    $list = explode("\n",$buff);

    if(!count($list)) return null;

    $file_list = $directory_list = $output = array();

    foreach($list as $name) {
        if(!$name) continue;
        $obj = null;
        $obj->name = $name;
        $obj->path = $path.$name;

        $logs = $this->getLog($obj->path, $revs, null, false, 1);
        $obj->revision = $logs[0]->revision;
        $obj->author = $logs[0]->author;
        $obj->date = $this->getDateStr("Y-m-d H:i",$logs[0]->date);
        $obj->gap = $this->getTimeGap($logs[0]->date);
        $obj->msg = $this->linkXE($logs[0]->msg);

        if(substr($obj->path,-1)=='/') $obj->type = 'directory';
        else $obj->type = 'file';

        if($obj->type == 'file') $file_list[] = $obj;
        else $directory_list[] = $obj;
    }
    return array_merge($directory_list, $file_list);
}

코드에서 위의 18라인에서 처럼 추가해야 하는 부분이 총 3군데가 있습니다.

찾아서 직접수정하기 힘드시면 첨부된 svn.class.php 파일을 해당 위치에 덮어씌우기 하시면 됩니다.
태그 연관 글
  1. [2013/01/02] 묻고답하기 SVN, 트렁크, 브런치, 구글프로젝트 by Apollos2304
  2. [2012/01/06] Blog XE core 10000리비전 돌파... by XE *11
  3. [2011/08/29] 묻고답하기 xe 1.4.7 정도에서 svn 연동 사용이 가능한지요? by enzoy
  4. [2011/05/17] 웹마스터 팁 XE 프로젝트 호스팅 SVN 내용을 Google 프로젝트 호스팅으로 이전하기 by 난다날아
  5. [2011/03/24] Blog XE - SVN 배포 절차 변경. by XE Developers *3
제목 글쓴이 날짜
SSL 적용시 작은 iframe 없애기 [1] file explode 2013.11.28
multimedia file 첨부 시 자동으로 jw player 로 설정 더뿌 2013.11.27
추천/비추천/신고시 확인(메시지 창 띄우기)하기 [21] explode 2013.11.27
phpMyAdmin 사용시 주의 사항 [2] explode 2013.11.27
메시지톡 버튼 게시판에 넣기 [18] file 착한악마 2013.11.26
디자인을 위한 팁...Adobe Generator for Photoshop CC [7] kj1212_ 2013.11.26
[수정] 댓글 삭제 간략화하기 [9] XE만세 2013.11.26
[수정]알림센터 Lite에 메일발송 기능을 추가하기 [11] file 매실茶 2013.11.25
AXISJ AXUpload5(HTML5) 파일첨부란 높이 조정하는 방법 [6] 착한악마 2013.11.25
에디터 "입력창 크기 자동조절" 체크를 기본으로 하기 [8] 투씨 2013.11.24
댓글창 배경이미지 클릭시 사라지게 만들기 [2] 귀머거리하늘 2013.11.23
'본문내 이미지 조절 애드온' 이 페이지모듈에서는 자동으로 작동 안 하게 하는 방법 sejin7940 2013.11.23
롤링 배너 이해하는데 도움이 될것 같아 올립니다 [4] file 예뜨락 2013.11.22
도메인이 바뀐후 기본 URL을 바꿨지만 2차메뉴의 링크는 바뀌지 않은 경우. [9] Ryuj 2013.11.20
모바일 게시판 사용시 글 수정 / 댓글 수정 누르면 <br/> 태그가 뜰때 팁 [12] 사쿠냥ㅋ 2013.11.19
Content 확장위젯2 에서 권한설정 안되던 버그 xe1.7 garnecia 2013.11.18
다운로드 랭킹 위젯 simulz 님 스킨 단락 흐트러짐 문제 해결 [2] socialskyo 2013.11.14
레이아웃을 불려오지 않게 하는 코드 [4] 착한악마 2013.11.13
본문 링크 새창으로 띄우기.. [9] 멀티비타민 2013.11.11
복권 모듈 가운데 긁었을때 반응하게 하기 [6] file 귀머거리하늘 2013.11.09