Html & Script

[자료] 위지윅 에디터 V0.97.9F* 2007/02/08

페이지 정보

본문

익스플로러 6.0+, 파이어폭스2.0+, 오페라9+에서 동작합니다.
제로보드 테스트 http://fiesole.oranc.co.kr/zb4/zboard.php?id=free
다중(스킨)에디터 예제 http://everst.co.kr/q&a/mssqlhm/editor/test.htm
asp테스트 게시판 http://everst.co.kr/q&a/mssqlhm/board/board.asp?mode=forum

[* 상위버젼/ 패치시엔 바로바로 위 테스트 게시판에 업로드됩니다. *]
[* all_은 전체 소스파일 첨 사용자, up_은 0.96.8F업파일.. *]

v0.96.8f에서...
* IE에서 <hr id="null" /> id="null" 제거!!
* removeFormat 추가!!

* 간단한 기능은 추가해서 사용하세요.

[** 버젼/제작자 부분 삭제/변경하신 분들이 계신데.. 변경/삭제 안됩니다.**]
[** 개인홈피가 아닐시엔 사용되는곳 알려주셔야 합니다.**]
[** 무료프로그램에 포함 배포는 가능하지만.. 유료프로그램 포함 배포는 금지합니다.**]
[** 판매는 금지합니다.**]

[*dialog/lib 파일업로드 부분만 복사해 두시고 파일이름이 변경된것이 있으므로... *]
[*전부 삭제하신후에.. 압축을 풀어 사용하시고.. *]
[*파일 업로드 부분은 다시 복사해 덮어쓰기 하시면 되요. *]
[*단 0.93.f이하 버젼은 모두 복하하셔야 합니다. url업로드가 추가되어.. *]

** 파폭에선...
* 사용자 콘텍스트메뉴 사용시 붙혀넣기, 복사하기 잘르기안됩니다.(파폭 기본설정)

** 오페라에선....
* 떠있는 레이어 표현시 onmousedown이벤이 안되므로 레이어를 움직이려면 마우스의 흴로 동작합니다.
* 사용자콘텍스트메뉴도 안됩니다.
* 찾기/바꾸기 안됩니다.

[문의, 버그는 테스트 게시판이나.. demagogy@edunet4u.net]
 
 
 
제로보드4 적용시키기..
 
먼저.. 에디터파일을 제로보드 루트디렉토리에 복사를 합니다. (예 :zb4/editor)

그다음은 업로드파일 설정의 위해서.. 디비 테이블은 하나 생성합니다.
디비테블이 왜이래.. 하시는분들이 계시겠죠.. 제게시판에 적용된그대로라서..

CREATE TABLE haby_board_editorupload (
  mediaid varchar(255) NOT NULL,
  ssid varchar(255) NOT NULL,
  idxid int(11) NOT NULL,
  num int(11) NOT NULL,
  tb varchar(20) NOT NULL,
  parent int(11) default NULL,
  child int(11) default NULL,
  filename varchar(50) NOT NULL,
  usefile char(1) default NULL,
  regdate datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=euckr(원하는언어)

그다음은 editor/dialog/lib/php/upload_inc.php 파일을 열고.

 $cfgUploadDir  = "/home/public_html/zb4/data"; <==root부터 data폴더까지의 절대경로 입력

 $Dbconn = @mysql_connect("디비", "아이디", "비밀번호") or die("DB 연결 실패");
 @mysql_select_db("디비계정", $Dbconn);  <== 데이터베이스 설정을 합니다.

그 다음은.. editor/dialog/lib/php/upload.php 파일을 열고.
찾기로 $upimgpath = 항목을 검색한후에..

$upimgpath = "http://fiesole.oranc.co.kr/zb4/data/".$boardtb."/editor/".$upimgname;

실제 이미지절대경로를 넣어주세요 http://fiesole.oranc.co.kr/만 변경하면 되겠죠.
중요:상대경로는 입력은 정상이나 미리보기 할 수 없습니다. 게시판에서의 상대경로와 에디터에서의 상대경로가 다르기때문에...

이젠 에디터에서의 설정은 끝났어요.

이젠 제로보드 설정입니다.

먼저 skinpath/write.php 파일을 열고..
상단에  [SCRIPT language=javascript id=HABYEditor src="./editor/habyeditor.js"][/SCRIPT] 삽입

하단에..
[/FORM]보다 아래여야합니다.
상단에 삽입시엔.. 함수로 만드신후 onload에 추가하세요. 안전한 테그검색을 위해 하단에 넣는것을 추천합니다.)
[?=$hide_html_start?]

[script language="javascript"]
 var newEditor  = new HABYeditor('memo');
 newEditor.setConfig["BoardId"]        = 'free';        // 게시판 테이블명
 newEditor.setConfig["Skin"]           = 'gray';        // 에디터 스킨
 newEditor.setConfig["ServerLanguage"] = 'php';         // 사용 언어
 newEditor.setConfig["ToggleHtmlId"] = 'use_html';    // html 체크박스 id(id를 먼저 추가하세요. 안하면 ie베외한 브라우져에서 동작안함)
 newEditor.setConfig["ToggleHtmlOn"] = '2';           // html 기본값(위지윅사용시엔 자동 br제거)
 newEditor.Create();
[/script]
 
[?=$hide_html_end?]

다음은 zb4/write.php파일을 열고..

// HTML 출력 <== 이 위부분에다.. 아래 내용 삽입하세요.
제가 PHP했던적이 호랭이가 금연시작 할때부터라서.. 초보적인 수준이니.. 구문들은 수정해서 사용하셔도...

// 위지윅에디터 업로드 파일 고유번호 구하기
  $sql = "select max(idxid) as maxidxid from haby_board_editorupload where ssid = '".session_id()."' and tb = '".$id."'";
  $rs  = mysql_query($sql, $connect);
  $row = mysql_fetch_object($rs);
  $max = $row->maxidxid;
  if(!$max) $idxid = 1;
  else $idxid = $idxid + 1;
  mysql_free_result($rs);
  setcookie("HABY_IndexId", session_id()."_".$idxid, 0, '/');

다음은 zb4/write_ok.php파일을 열고..
// 각종 변수 검사 하단에다.. 아래내용 삽입하시고...

// 위지윅 에디터 업파일 인덱스 받기
 $habyupids = $_POST["HabyMediaIds"];
 $habyupids = str_replace("\\", "", $habyupids);

그 담은..
/***************************************************************************
 * 수정글일때
 **************************************************************************/
마지막 }닫기 전에 아래내용삽입하세요.

  //위지윅에디터 업로드 파일 미사용으로 변경
  mysql_query("update haby_board_editorupload set usefile = '0', regdate = curdate() where parent = '$no' and tb = '$id'", $connect);

왜이리 복잡해.. 하시는 분이 계실지 모르지만.. 업로드만 해놓고 사용안한 파일들이 많아서.. 사용안한 파일은 2일후에 자동 삭제를 위해서..
머리나쁜 제 머리에서생각 할수 있는 편한 방법이 요거라서.. 일일이 디비검사해서 수동으로 지우는것도다 편함을 위해..

그 담은..

// MySQL 닫기 전에다..

 //위지윅에디터 사용된 업로드 파일 사용으로 변경
 if($habyupids)
 {
  mysql_query("update haby_board_editorupload set parent = '$no', usefile = '1' where mediaid in ($habyupids) and tb = '$id'", $connect);
 }

이젠 마지막 설정..
다음은 zb4/delete_ok.php파일을 열고..

// MySQL 닫기 전에다..

   //위지윅에디터 업로드 파일 미사용으로 변경
   mysql_query("update haby_board_editorupload set usefile = '0' where parent = '$s_data[no]' and tb = '$id'", $connect);

ASP처럼 파일도 함께 여기서 지울까 하다가.. 속도문제로.. 걍 자동 삭제 모드로.. 넘겼어요. 사실은 귀차니즘 고수라서.. 여기서 지우나..
파일업할때 이틀지난 파일 지우니.. 똑같아서.. 소스 느릴필요 없을듯..
 

관련자료

등록된 댓글이 없습니다.
Today's proverb
우리가 최선을 다해야 하는 이유는 사람들을 감동시키기 위해서가 아니다. 최선을 다할 때만이 자신이 즐겁게 일할 수 있기 때문이다. (앤드류 매튜스)