cheditor에서 이미지 저장경로 변경 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

cheditor에서 이미지 저장경로 변경 정보

cheditor에서 이미지 저장경로 변경

본문

cheditor에 이미지 업로드를 사용하면, cheditor의 지정 폴더로 이미지가 업로드가 되는 것을
기존 그누 이미지  업로드 폴더로 변경하려 합니다.

/cheditor/insert_image.php 파일의 12번째 줄중
-----------------------------------------------------------------------------------------------------------
    //////////////////////////////////////////////////////////////////////////
    // 이미지 파일이 저장될 디렉토리 경로를 지정합니다.
    // $save_as_directory의 퍼미션은 777로 설정합니다.

    $ym = date("ym", $g4[server_time]);

    //$save_as_directory = "/usr/local/apache/htdocs/cheditor2/attach/";
    $save_as_directory = "$g4[path]/data/$g4[editor]/$ym/";

    @mkdir($save_as_directory, 0707);
    @chmod($save_as_directory, 0707);

    //////////////////////////////////////////////////////////////////////////
    // $save_as_directory의 URL 경로를 입력합니다.
    //$save_as_url = "$g4[url]/data/$g4[editor]/$ym/";
    $save_as_url = "$g4[path]/data/$g4[editor]/$ym/";
-----------------------------------------------------------------------------------------------------------

    $save_as_directory = "$g4[path]/data/$g4[editor]/$ym/";
    $save_as_url = "$g4[path]/data/$g4[editor]/$ym/";

기존 변수를
    $save_as_url = "$g4[path]/data/file/테이블명/".urlencode($list[$i][file][0][file]);
이렇게 바꾸변 될 듯 한데, 여기서 테이블명을 못가져 오네요.

$g4[board_table], $bo_table 등 여러가지를 사용해봤고, url에서 가져오려니
insert_image.php를 가져오네요.

테이블 명을 가져올 방법이 없나요?

그리고 이미지가 있는 글 삭제시 cheditor에서는 업로드된 이미지를 삭제를
못한다고 그러는데 글 삭제지 이미지도 같이삭제 방법이 있나요?

댓글 전체

cheditor 의 이미지 저장경로를 바꿀려면 write 스킨에서 cheditor 펑션을 호출하는 부분이 있습니다.
(원래 펑션이 아니라 스크립트로 넘기지만 그누에선 관리자님이 수정하여 펑션으로 사용하도록 적용하셨습니다.)
이 펑션 부분을 수정하여 $bo_table 값을 cheditor 로 넘겨주십시오.

즉, lib/cheditor.lib.php 파일의 cheditor2() 에 아래부분을 추가해 주십시오.
그런다음  insert_image.php 파일에서 저장경로를 수정하시면 됩니다.

// 수정전
function cheditor2($form, $id, $width='100%', $height='250')
{
    global $g4;

    return "
    <input type='hidden' name='{$id}' id='{$id}'>
    <script>
    var ed_{$id} = new cheditor('ed_{$id}');
    ed_{$id}.editorPath = '{$g4[editor_path]}';
    ed_{$id}.width = '{$width}';
    ed_{$id}.height = '{$height}';
    ed_{$id}.pasteContent = true;
    ed_{$id}.pasteContentForm = 'ps_{$id}';
    ed_{$id}.formName = '{$form}';
    ed_{$id}.run();
    </script>";
}

// 수정후
function cheditor2($form, $id, $width='100%', $height='250')
{
    global $g4;
    global $bo_table; // 추가된 부분

    return "
    <input type='hidden' name='{$id}' id='{$id}'>
    <script>
    var ed_{$id} = new cheditor('ed_{$id}');
    var bo_tbl = $bo_table;  // 추가된 부분
    ed_{$id}.editorPath = '{$g4[editor_path]}';
    ed_{$id}.width = '{$width}';
    ed_{$id}.height = '{$height}';
    ed_{$id}.pasteContent = true;
    ed_{$id}.pasteContentForm = 'ps_{$id}';
    ed_{$id}.formName = '{$form}';
    ed_{$id}.run();
    </script>";
}

위와 같이 수정한 다음 insert_image.php 에서 저장경로부분에 위 변수($bo_tbl)를 추가해 주면 됩니다.

그리고 이미지 삭제시 cheditor 로 올린 이미지는 특별한 형태로 이미지 값을 받아올 수 있습니다.
아래 참고..(그누보드는 펑션으로 사용하므로 그누보드에서 사용시는 수정해서 적용해야 합니다.)
----------------------------------------------
에디터에 사용자가 삽입한 이미지들의 이름과 가로/세로 픽셀 크기를 얻기 위한 방법입니다.

CHEditor의 getImages() 함수를 여러분의 HTML 페이지에서 이용합니다.
예:
var images = myeditor.getImages();
images에는 각각의 이미지 정보가 문자열로 저장됩니다.
각각의 이미지는 콤마(,)로 분리되어 있습니다.
분리된 이미지는 다시 공백 문자로 '이미지이름 가로크기 세로크기'순으로 구분되어 있습니다.
예) myimg1.jpg 100 200,myimg2.png 70 130 ...

여러분의 html form에 input hidden 타입을 하나 만든 다음 위에서 얻은 images 값을 넣어 사용합니다.
예:
var images = myeditor.getImages();
document.myform.inputHidden.value = images;
sjsjin님 답변 감사합니다.
제가 사용한 방법은 write.php에서 input hidden으로 테이블명을 할당한 후, cheditor.js에서 get 방식으로 넘어
가게끔, insert_image.php?bo_table=$bo_table로 변경하고, insert_image.php에서 값을 받아 사용하였습니다.

sjsjin님께서 답변해 주신 내용이 간편한거 같아서 수정을 해보았는데, insert_image.php에서 값을 인식
못하는거 같습니다.

아무런 선언 등 없이
$save_as_url = "$g4[path]/data/$g4[editor]/$ym/"; //이 부분을
$save_as_url = "$g4[path]/data/$g4[editor]/$bo_tbl/"; //로 변경하니
출력 결과 "~~~경로/data/cheditor//00000.jpg" 이런식으로 출력됩니다.

뭔가 잘못된듯 한데 초보라 어떻게 해야 하는지 정확히 아는게 없네요..

그리고 이미지 삭제에 대한 함수 값 이용도 여전히 헤메고 있습니다.
^^ 고달픔의 연속이네요~

감사히 답글을 주셨는데 잘 활용을 못하네요.. 죄송스럽군요..
컨텐트 업데이트가 중요한 시점이라 우선 cheditor 사용을 안하는 방법을 찾아서
사용하고, 추후에 시간이 나면 다시 한번 시도해 봐야 겠네요.

진심으로 답변 감사드립니다.
전체 23,568 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT