잡담 :
오래전에 심심해서 만든 허접 에디터.. 또 다시 심심해서 업데이트 하고 있네요.
-
기능/특징 :
- 100%(?)Javascript로 어느환경에서든 사용가능.(Upload ASP, PHP)
- 나모와 비슷한 테이블 기능 구현.
- 플스크린 모드, 자동 세로크기 증가, 드레그엔드롭사이즈 조절 기능.
- 이미지, 플래쉬, 미디어 업로드 기능.
- 미사용 업로드 파일 자동 삭제 기능
- 타계정(URL) 이미지 가져오기 기능.(리모트업로드)
- 깔끔(?)한 다이얼로그창, 팝업창, 콘텍스트 메뉴 기능.
- 다중 에디터, 다중 스킨 기능.(다중스킨은 F버젼만 해당. T(0.8X.. 현재 업안함)버젼은 한페이지 동일스킨)
- 간단한 Config, Toolbar 설정기능.
- 기타 등등... 제작자가 귀차니즘의 고수라서.. 머리쓰기를 싫어함.
- 설치 과정 : 이미지 자동삭제 구현 DB사용으로 좀 어려울 수도 있음
- 파일을 다운로드 한후 압축을 풉니다.(설정먼저 하고 계정에 올리는것이 좋겠죠.)
- 루트디렉토리에 올리면 홈페이지 전체에서 사용하기 편하겠죠!
- 에디터를 생성할 페이지 상단에.. 아래 내용 추가.
<script id="HABYEditor" type="text/javascript" src="에디터 상대경로/habyeditor.js"></script>
- 페이지 하단에.. form밑이면 되겠죠. 아래 내용 추가.
<script language="javascript">
var newEditor = new HABYeditor('Textarea ID'); Textarea에 name하고 동일한 id를 주세요.
newEditor.setConfig["Skin"] = '에디터 스킨 디렉토리명';
newEditor.setConfig["ServerLanguage"] = '사용 서버스크립트(asp, php)';
newEditor.setConfig["MemberId"] = '회원아이디'; 업파일 공개/비공개
툴바선택은 두종류입니다.
newEditor1.setConfig["MenuButton"] = [ 에디터 툴바 목록 직접입력 예제
["SourceView", "Preview", "FullScreen"],
["Bold", "Italic", "UnderLine", "StrikeThrough"],
["Subscript", "Superscript"],
["JustifyLeft", "JustifyCenter", "JustifyRight", "JustifyFull"],
["InsertOrderedList", "InsertUnorderedList", "Outdent", "Indent"],
["InsertImage", "CreateLink", "UnLink"],
"newLine",
["FontFormat", "FontName", "FontSize"],
["ForeColor", "BackColor"]
]; 이렇게 직접 추가햐셔도 되며..
newEditor.setConfig["ToolbarSet"] = "Simple";
이렇게 /conf/menulist.conf.js파일안에 미리 정의해 두신후 불러서 사용하셔도 됩니다.
newEditor.setConfig["ToggleHtmlId"] = 'html/text 체크박스 ID'; 체크박스에 name하고 동일한 id를 주세요.
newEditor.setConfig["ToggleHtmlOn"] = 'html 기본 value'; 에디터에서 자동으로 생성.
newEditor.Create();
</script>
- setConfig항목은 /conf/setconfig.conf.js의 내용을 변경(영구적)하시든지..
위 처럼 editor.setConfig[항목]으로 정의하시면 됩니다.
새로운 사용자 설정도 위 파일에 넣으시든지 editor.setConfig[새로운항목]추가하시면 됩니다.
- 다음은 업로드 설정입니다. 데이타베이스를 사용합니다.
ASP:
업로드 폴더 리스트
CREATE TABLE [habyeditor_folder] (
[cno] [int] IDENTITY (1, 1) NOT NULL ,
[pcd] [varchar] (900) COLLATE Korean_Wansung_CI_AS NOT NULL ,
[mcd] [varchar] (900) COLLATE Korean_Wansung_CI_AS NOT NULL ,
[rct] [int] NOT NULL ,
[lct] [int] NOT NULL ,
[sct] [int] NOT NULL ,
[csc] [int] NULL ,
[ctn] [varchar] (20) COLLATE Korean_Wansung_CI_AS NULL
) ON [PRIMARY]
업로드 파일 리스트
CREATE TABLE [habyeditor_file] (
[mcd] varchar(900) COLLATE Korean_Wansung_CI_AS NULL,
[fileid] int NOT NULL,
[member] varchar(20) COLLATE Korean_Wansung_CI_AS NOT NULL,
[filetype] char(1) NOT NULL,
[filepath] varchar(255) COLLATE Korean_Wansung_CI_AS NOT NULL,
[filename] varchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
[imgwidth] smallint NULL,
[imgheight] smallint NULL,
[usefile] tinyint NULL,
[openfile] bit NULL,
[regdate] smalldatetime NOT NULL
) ON [PRIMARY]
사용 파일 리스트
CREATE TABLE [habyeditor_usefile] (
[fileid] int NOT NULL,
[boardid] varchar(50) COLLATE Korean_Wansung_CI_AS NOT NULL,
[parent] int NULL,
[child] int NULL
) ON [PRIMARY]
PHP:
업로드 폴더 리스트
CREATE TABLE `habyeditor_folder` (
`cno` int(11) NOT NULL auto_increment,
`pcd` varchar(900) NOT NULL,
`mcd` varchar(900) NOT NULL,
`rct` int(11) NOT NULL,
`lct` int(11) NOT NULL,
`sct` int(11) NOT NULL,
`csc` int(11) default NULL,
`ctn` varchar(20) default NULL,
PRIMARY KEY (`cno`)
) ENGINE=MyISAM;
업로드 파일 리스트
CREATE TABLE `habyeditor_file` (
`mcd` varchar(900) default NULL,
`fileid` int(11) NOT NULL,
`member` varchar(20) NOT NULL,
`filetype` char(1) NOT NULL,
`filepath` varchar(255) NOT NULL,
`filename` varchar(50) NOT NULL,
`imgwidth` smallint(6) default NULL,
`imgheight` smallint(6) default NULL,
`usefile` tinyint(4) default NULL,
`openfile` char(1) default NULL,
`regdate` datetime NOT NULL
) ENGINE=MyISAM;
사용 파일 리스트
CREATE TABLE `habyeditor_usefile` (
`fileid` int(11) NOT NULL,
`boardid` varchar(50) NOT NULL,
`parent` int(11) default NULL,
`child` int(11) default NULL
) ENGINE=MyISAM;
제게시판에 있던것 그대로입니다. 귀차나서.. 걍..
- 이젠.. /filemanager/asp(php)/의 모든 파일들을 열고..
자신의 설정을 하시면 됩니다. DB, 업로드 절대경로, 상대경로, 파일URL등등..
모르시면 테스트 게시판의 설치 설명을 참조하세요.
- 미사용 업로드파일 자동삭제기능을 사용 안하실거면 여기까지 하시면 됩니다.
업로드만 하고 그냥 나가버린다면.. 좀비파일들이 많이 생기겠죠.
- 이젠 자동삭제 기능 구현입니다. 사용하는 게시판에 맞게 넣으시면 됩니다.
먼저... 전게시판(홈페이지)의 공용파일에.. (예:제로보드의 경우 lib.php, 그누보드는 common.php겠죠..)
ASP : <!--#include file="에디터상대경로/filemanager/asp/habyfunction.asp"-->
PHP : include("에디터상대경로/filemanager/php/habyfunction.php");
위 항목을 인클루드 시키세요. 위 파일을 열어보시면 아주 기초적인 코딩이거든여.
수정해서 사용하셔도됩니다. 수정후 오류시엔 전 모름@@;;
- 이젠 글 저장/수정 완료하는 페이지에..
사용된 업로드 파일만 가져오기..
ASP:
habyupids = upload.form("HABYMedia");
PHP: 제로보드는 write_ok.php, 그누보드는 write_update.php
$habyupids = stripslashes($_POST["HABYMedia"]);
글 수정시에만.. 사용된 업로드 파일을 초기화 합니다. 수정시 제거된 파일이 존재할 수 있으므로...
ASP:
'위지윅에디터 업로드 파일 미사용
call deleteHABYMedia(db연결명, 게시판ID, 글고유번호1, 글고유번호2, 게시판제거시에만 사용)
'사용 예제입니다. 제 테스트 게시판을 참조하세요.
call deleteHABYMedia(db, td, parent, child, false)
제 테스트 게시판 글 접근을 idx가 아닌.. parent, child 두개를 사용합니다. 보통 idx하나로 접근하니..
call deleteHABYMedia(dbconn, boardid, idx, 0, false) child엔 0을 넣어주세요. ""로 넣어도 됩니다.
PHP:
//위지윅 파일 삭제
@deleteHABYMedia($connect, $id, $no, 0, 0); 제로보드.. write_ok.php
@deleteHABYMedia($connect_db, $write_table, $wr[wr_id], 0, 0); 그누보드.. write_update.php
설명은 ASP에서 했으므로..
위 사항은 꼭 수정글에만 해당됩니다. 새글/답글 일땐 안됩니다. 오작동합니다.
아래 내용은 새글/답글/수정모두 해당됩니다. 뭐 맨 마지막 디비닫기 전에 넣으면 되겠죠!
사용이미지 처리 부분입니다. 새글 / 답글 /수정글 모두 해당
ASP:
'위지윅에디터 업로드 파일 사용
call insertHABYMedia(db, habyupids, tb, parent, child)
위 수정에서 설명했듯이.. 뭐뭐 넣는진 아실겁니다.
PHP:
//위지윅에디터 업로드 파일 사용
@insertHABYMedia($connect, $habyupids, $id, $no, 0); 제로보드는 write_ok.php
@insertHABYMedia($connect_db, $habyupids, $id, $no, 0); 그누보드는 write_update.php
여기까지.. 글 저장 / 변경 할때입니다. 다음은 글/게시판 삭제시입니다.
- 이젠 삭제 페이지에.. 업로드 파일 제거.. 뭐 글 수정시에 넣은거랑 똑같습니다.
단!! 게시판 완전 게거시엔.. 마지막에.. 몬지 아시져!! 밑을 보세여@!
ASP:
'위지윅에디터 업로드 파일 미사용
call deleteHABYMedia(db연결명, 게시판ID, 글고유번호1, 글고유번호2, 게시판 제거시에만 사용)
네.. 게시판 완전 게거시 사용..!! 이건 게시판 완전히 제거할때.. 만 사용하는겁니다.
글삭제. 관리자메뉴 굴삭제시엔 해당 없습니다.
게시판 제거아닌시 true를 넣으면.. 완전히 제거됩니다. 조심!!
'사용 예제입니다. 제 테스트 게시판을 참조하세요.
call deleteHABYMedia(db, td, parent, child, false)
'게시판 완전 게거.
call deleteHABYMedia(db, td, 0, 0, true)
이걸 어디에 넣느야.. 글 삭제 부분에 모두 넣어줍니다.
삭제부분이라함은.. 일반글삭제.. 전체선택글 삭제.. 관리자 불량글 삭제.. 기타 등등 삭제 부분에 넣어줍니다.
PHP:
//위지윅 파일 삭제
@deleteHABYMedia($connect, $id, $s_data[no], 0, 0); 제로보드는 delete_ok.php
@deleteHABYMedia($connect_db, $write_table, $write[wr_id], 0, 0); 그누보드는 deletek.php
//위지윅 파일 삭제
@deleteHABYMedia($connect, $id, $selected[$i], 0, 0); 제로보드는 list_all.php
@deleteHABYMedia($connect_db, $write_table, $write[wr_id], 0, 0); 그누보드는DE_all.php
아래는 게시판 완전 제거입니다.
완전 게거시엔.. parent, child 0으로 넣어주세요.
//위지윅 파일 삭제
@deleteHABYMedia($connect, $table_name, 0, 0, 1); 제로보드 admin_exec_board.php
@deleteHABYMedia($connect_db, $tmp_bo_table, 0, 0, 1); 그누보드는 board_delete.inc.php
삭제부분이 더 있다면.. 다 찾아서 넣어주세요.
요기까지 삭제 부분입니다.
다음은 게시글 카피, 이동입니다.
- 게시글 카피, 이동은..
ASP :
'위지윅에디터 업로드 파일 이동/복사
call copyHABYMedia(db연결명, 원본게시판ID, 원본글고유번호1, 원본글고유번호2, 이동할게시판ID, 이동된글고유번호1, 이동된글고유번호2)
원본글은 아시겠고.. 이동할 곳의 게시판ID와 이동글,, insert사용할 글고유번호를 입력하시면 됩니다.
PHP: 부분의 게시글 이동/복사부분..
//위지윅 파일 이동 복사
@copyHABYMedia($connect, $id, $data[no], 0, $board_name, $no, 0); 제로보드는 list_all.php
// Comment 정리라는 문구 위에 넣으세요. 제로보드는 위 하나로 끝이예요.
그누보드는 move_update.php
@copyHABYMedia($connect_db, $write_table, $row2[wr_id], 0, $move_write_table, $insert_id, 0);
그누보드 이동일땐 아래 삭제 부분 추가
@deleteHABYMedia($connect_db, $write_table, $save[$i][wr_id], 0, 0);
|