#19518918 단락편집기를 XE Core로 통합

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@8081 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2011-02-09 06:29:09 +00:00
parent 78b6b26d6c
commit c63410745a
84 changed files with 11289 additions and 102 deletions

View file

@ -0,0 +1,10 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="./css/editor.css" />
<title>XpressEngine DrEditor</title>
</head>
<body class="xe_content editable">
</body>
</html>

View file

@ -0,0 +1,81 @@
@charset "utf-8";
/* NHN (developers@xpressengine.com) */
/* -- Button Gray Style -- */
.buttonGray,
.buttonGray button{ position:relative; border:0; margin:0; display:inline-block; color:#000; font-family:Tahoma, Sans-serif; cursor:pointer; text-decoration:none !important; white-space:nowrap; vertical-align:middle; background-color:transparent; background-image:url(../img/buttonGray.gif) !important; background-repeat:no-repeat;}
.buttonGray{ margin-right:2px;}
.buttonGray button{ left:2px; overflow:visible;}
/* Medium Size */
.buttonGray.medium { background-position:left -30px;}
.buttonGray.medium button{ height:24px; padding:0 10px 0 8px; *padding:0 5px 0 3px; font:12px/25px Sans-serif; background-position:right -30px; _top:-1px;}
/* Strong Button */
.buttonGray.strong * { font-weight:bold !important;}
/* Icon Add */
.buttonGray .icon { position:relative; margin-right:5px; vertical-align:middle;}
/* Button Reset */
.buttonDrEditor,
.buttonDrEditor a,
.buttonDrEditor button,
.buttonDrEditor input { position:relative; margin:0; display:inline-block; text-decoration:none !important; border:0; font-size:12px; font-family:Tahoma, Sans-serif; white-space:nowrap; background:url(../img/buttonWhite.gif) no-repeat; vertical-align:middle; overflow:visible; color:#333;}
.buttonDrEditor { height:23px; padding:0; margin-right:2px; background-position:left top;}
.buttonDrEditor a,
.buttonDrEditor button,
.buttonDrEditor input{ left:2px; *vertical-align:top; cursor:pointer;}
/* Button Size */
.buttonDrEditor.large { height:29px; background-position:left -30px; }
.buttonDrEditor.xLarge { height:35px; background-position:left -65px; }
.buttonDrEditor.small { height:18px; background-position:left -107px; }
.buttonDrEditor a,
.buttonDrEditor button,
.buttonDrEditor input { height:23px; padding:0 10px 0 8px; font-size:12px; line-height:23px; background-position:right top;}
.buttonDrEditor.large a,
.buttonDrEditor.large button,
.buttonDrEditor.large input { height:30px; padding:0 10px 0 8px; font-size:16px; line-height:29px; background-position:right -30px;}
.buttonDrEditor.xLarge a,
.buttonDrEditor.xLarge button,
.buttonDrEditor.xLarge input { height:35px; padding:0 10px 0 8px; font-size:20px; line-height:35px; background-position:right -65px;}
.buttonDrEditor.small a,
.buttonDrEditor.small button,
.buttonDrEditor.small input { height:18px; padding:0 6px 0 4px; font-size:11px; line-height:18px; background-position:right -107px;}
/* Button Text Color */
.buttonDrEditor *:hover,
.buttonDrEditor *:active,
.buttonDrEditor *:focus{ color:#690;}
.buttonDrEditor.green,
.buttonDrEditor.green a,
.buttonDrEditor.green button,
.buttonDrEditor.green input { background-image:url(../img/buttonGreen.gif); color:#fff;}
.buttonDrEditor.green *:hover,
.buttonDrEditor.green *:active,
.buttonDrEditor.green *:focus{ color:#ff0;}
.buttonDrEditor.black,
.buttonDrEditor.black a,
.buttonDrEditor.black button,
.buttonDrEditor.black input { background-image:url(../img/buttonBlack.gif); color:#fff;}
.buttonDrEditor.black *:hover,
.buttonDrEditor.black *:active,
.buttonDrEditor.black *:focus{ color:#ff0;}
.buttonDrEditor.red,
.buttonDrEditor.red a,
.buttonDrEditor.red button,
.buttonDrEditor.red input { background-image:url(../img/buttonRed.gif); color:#fff;}
.buttonDrEditor.red *:hover,
.buttonDrEditor.red *:active,
.buttonDrEditor.red *:focus{ color:#ff0;}
.buttonDrEditor.blue,
.buttonDrEditor.blue a,
.buttonDrEditor.blue button,
.buttonDrEditor.blue input { background-image:url(../img/buttonBlue.gif); color:#fff;}
.buttonDrEditor.blue *:hover,
.buttonDrEditor.blue *:active,
.buttonDrEditor.blue *:focus{ color:#ff0;}
/* Button Text Strong */
.buttonDrEditor.strong * { font-weight:bold !important;}

View file

@ -0,0 +1,348 @@
@charset "utf-8";
/* NHN (developers@xpressengine.com) */
/* Textyle Editor */
.textyleEditor{ position:relative; *zoom:1; margin:0 0 1em 0;}
.textyleEditor:after{ content:""; display:block; clear:both;}
.textyleEditor .editorContainer{ position:relative; width:100%; display:table; table-layout:fixed;}
.textyleEditor .editorContainer .editorArea{ opacity:1; filter:alpha(opacity=100);}
.textyleEditor .editorContainer .writeArea{ position:relative; *zoom:1;}
/* Writing Toolbar */
.wToolbarContainer{ position:relative; margin:20px 0 40px 0; height:62px; overflow:hidden; z-index:1000; _zoom:1;}
.wToolbarContainer.more{ height:auto;}
.wToolbar{ position:relative; height:62px; margin:0 10px; *zoom:1; background-image:url(../img/bgWritingToolbarCenter.gif); background-repeat:repeat-x; }
.wToolbarContainer.more .wToolbar{ height:auto; padding:0 0 5px 0; background-position:0 bottom; border-top:1px solid #bec2ca;}
.wToolbar .cap{ position:absolute; top:0; height:62px; background-repeat:no-repeat; font-size:0; line-height:0; background:url(../img/bgWritingToolbar.gif) no-repeat; z-index:1;}
.wToolbar .top{ display:none; position:absolute; top:-1px; width:10px; height:7px; background:url(../img/bgWritingToolbarMore.gif) no-repeat; z-index:2;}
.wToolbarContainer.more .cap{ height:100%; _top:auto; _bottom:0; _height:300px; background:url(../img/bgWritingToolbarMore.gif) no-repeat;}
.wToolbarContainer.more .top{ display:block;}
.wToolbar .capLeft{ width:10px; left:-10px; background-position:left top;}
.wToolbar .topLeft{ left:-10px; background-position:left top;}
.wToolbarContainer.more .cap.capLeft{ background-position:left bottom;}
.wToolbar .capRight{ width:10px; right:-10px; background-position:right top;}
.wToolbar .topRight{ right:-10px; background-position:right top;}
.wToolbarContainer.more .capRight{ background-position:right bottom;}
.wToolbar ul{ position:relative; margin:0 70px 0 0; padding:0; *zoom:1; height:58px; z-index:2;}
.wToolbarContainer.more ul{ height:auto; _height:58px; background:url(../img/hrToolbarMore.gif);}
.wToolbar ul:after{ content:""; display:block; clear:both;}
.wToolbar li{ position:relative; float:left; list-style:none; margin-bottom:4px; width:11.1%; *width:11%; _margin-top:0; _margin-right:-1px;}
.wToolbar li button{ position:relative; padding:0; width:100%; height:57px; *height:59px; border:0; background:transparent; cursor:pointer; font-size:11px; color:#44506a; background-image:url(../img/iconWritingToolbar.gif); background-repeat:no-repeat;}
.wToolbar li button .tx{ display:inline-block; padding-top:37px; height:20px;}
.wToolbar li.more{ float:none; position:absolute; top:1px; right:-70px; width:60px; background:url(../img/vrToolbarMore.gif) repeat-y; _zoom:1;}
.wToolbar li.more button{ width:60px;}
.wToolbarContainer.more li{ margin-bottom:0;}
.wToolbarContainer.more li.more{ height:100%;}
.wToolbarContainer.more li.more button{ height:100%; _height:114px; background:url(../img/iconWritingToolbarFolder.gif) no-repeat center !important;}
.wToolbarContainer.more li.more button .nx{ top:0;}
.wToolbar li.hover button{ background-color:#bfc3cb;}
.wToolbar li.hx button{ background-position:center top;}
.wToolbar li.txt button{ background-position:center -100px;}
.wToolbar li.link button{ background-position:center -200px;}
.wToolbar li.list button{ background-position:center -300px;}
.wToolbar li.quote button{ background-position:center -400px;}
.wToolbar li.img button{ background-position:center -500px;}
.wToolbar li.movie button{ background-position:center -600px;}
.wToolbar li.file button{ background-position:center -700px;}
.wToolbar li.hr button{ background-position:center -800px;}
.wToolbar li.index button{ background-position:center -900px;}
.wToolbar li.material button{ background-position:center -1000px;}
.wToolbar li.help button{ background-position:center -1100px;}
.wToolbar li.more button{ background-position:center -1187px;}
.wToolbar li .dragable{ position:absolute; display:none; bottom:38px; right:0; padding:0; border:0; width:20px; height:20px; overflow:hidden; background:url(../img/iconMovable.gif) no-repeat center center !important; cursor:move; font-size:0; line-height:0; text-indent:-200%;}
.wToolbarContainer.more li.hover .dragable{ _display:block;}
.wToolbarContainer.more li:hover .dragable{ display:block;}
.wToolbar li .nx{ position:absolute; text-align:center; top:8px; left:50%; font:bold 10px Tahoma, Geneva, sans-serif; color:#fff; width:18px; height:18px; line-height:16px; opacity:.7; background:url(../img/bgShortcut.png) no-repeat center top; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./modules/editor/skins/dreditor/img/bgShortcut.png', sizingMethod='crop');}
/* Writing Area + Material Area */
.wArea,
.mArea{ display:none; position:relative; *zoom:1; padding:20px; margin:0;}
.wArea{ background:#f5f5f5; border:1px solid #e9e9e9;}
.mArea{ background:url(../img/bgChess76.gif); border:1px solid #666;}
.mArea{ margin:20px 0;}
.wArea.open,
.mArea.open{ display:block;}
.wArea .cap,
.mArea .cap{ position:absolute; width:10px; height:10px; background-repeat:no-repeat; font-size:0; line-height:0; overflow:hidden;}
.wArea .cap{ background-image:url(../img/bgRouningF5.gif);}
.mArea .cap{ background-image:url(../img/bgRouning76.gif);}
.wArea .cap.capTL,
.mArea .cap.capTL{ top:-1px; left:-1px; background-position:left top;}
.wArea .cap.capTR,
.mArea .cap.capTR{ top:-1px; right:-1px; background-position:right top;}
.wArea .cap.capBL,
.mArea .cap.capBL{ bottom:-1px; left:-1px; background-position:left bottom;}
.wArea .cap.capBR,
.mArea .cap.capBR{ bottom:-1px; right:-1px; background-position:right bottom;}
.wArea .h4,
.mArea .h4{ font-size:16px; margin:0 0 10px 0;}
.wArea .h4{ color:#555;}
.mArea .h4{ color:#fff;}
.mArea .controls{ position:absolute; top:20px; right:20px;}
/* Writing Area */
.wArea .buttonArea{ position:relative; text-align:left; *zoom:1;}
.wArea .buttonArea .buttonGray button{ _top:0;}
.wArea .buttonArea .info{ display:inline; padding:0 0 0 15px; color:#777;}
.wArea .inputTitle{ width:98%; border:1px solid #ddd; background:#fff url(../img/bgInputText.gif) no-repeat; color:#767676; padding:6px 0 0 10px; height:21px; font-size:14px; margin-bottom:10px;}
.wArea .inputLink{ width:98%; border:1px solid #ddd; background:#fff url(../img/bgInputText.gif) no-repeat; color:#767676; padding:6px 0 0 10px; height:21px; font-size:11px; margin-bottom:10px;}
.wArea .inputText{ width:98%; border:1px solid #ddd; background:#fff url(../img/bgInputText.gif) no-repeat; color:#767676; padding:6px 0 0 10px; height:21px; font-size:12px; margin-bottom:10px;}
.wArea .inputFile{ width:100%; border:1px solid #ddd; background:#fff url(../img/bgInputText.gif) no-repeat; color:#767676; padding:6px 0 0 10px; height:29px; font-size:12px; margin-bottom:10px;}
.wArea .inputTextarea{ width:98%; border:1px solid #ddd; background:#fff url(../img/bgInputText.gif) no-repeat; color:#767676; padding:10px 0 0 10px; height:150px; font-size:12px; line-height:1.5; margin-bottom:10px;}
.wArea .inputRadio{ width:13px; height:13px; vertical-align:middle;}
.wArea .hr{ border-top:1px solid #e6e6e6; border-bottom:1px solid #fff; font-size:0; line-height:0; overflow:hidden; height:0; margin:15px -20px;}
/* Material Area */
.mArea .reload{ position:absolute; top:24px; right:40px; width:15px; height:16px; padding:0; cursor:pointer; border:0; *margin:0 5px 0 0; background:transparent url(../img/buttonRefresh.gif) no-repeat; vertical-align:middle;}
.mArea .reload span{ position:absolute; width:0; height:0; font-size:0; line-height:0; overflow:hidden; z-index:-1; visibility:hidden;}
.mArea .close{ position:absolute; top:24px; right:20px; width:15px; height:16px; padding:0; cursor:pointer; border:0; *margin:0 5px 0 0; background:transparent url(../img/buttonClose.gif) no-repeat; vertical-align:middle;}
.mArea .close span{ position:absolute; width:0; height:0; font-size:0; line-height:0; overflow:hidden; z-index:-1; visibility:hidden;}
.mArea .noData{ position:relative; border-top:1px solid #ddd; border-bottom:1px solid #ddd; background:#fff; padding:10px 20px;}
.mArea dl{ position:relative; background:#fff;}
.mArea dt{ position:relative; padding:7px 15px; font-weight:bold; color:#fff; background:#555; border-top:1px solid #444;}
.mArea dd{ margin:0 15px; padding:5px 0;}
.mArea dd .buttonDrEditor{ position:absolute; top:8px; right:10px;}
.mArea .eArea{ border:0; padding:0;}
.mArea .paginate{ position:relative; width:100px; margin:0 auto; text-align:center; padding:0; font-size:12px; color:#fff; *zoom:1;}
.mArea .paginate:after{ content:""; display:block; clear:both;}
.mArea .paginate button{ width:17px; height:17px; padding:0; background:transparent url(../img/buttonPaginate.gif) no-repeat 0 0; cursor:pointer; border:0; vertical-align:middle;}
.mArea .paginate button span{ position:absolute; width:0; height:0; font-size:0; line-height:0; overflow:hidden; visibility:hidden; z-index:-1;}
.mArea .paginate .prev{ float:left; background-position:left top;}
.mArea .paginate .next{ float:right; background-position:right top;}
/* Writing Area Blank */
.editorArea .wArea { display:block;}
.wArea.blank{ padding:15px 30px; margin:0;}
.wArea.blank dt{ font-size:12px; font-weight:bold; color:#333;}
.wArea.blank dd{ margin:0 0 5px 0; color:#767676;}
.wArea.blank .drEditorBugReport{ position:absolute; margin:0 !important; top:20px; right:30px;}
/* Writing Area Hx */
.wArea.hx ul{ margin:0 0 5px 0; padding:0; list-style:none;}
.wArea.hx li{ display:inline !important; font-weight:bold !important; color:#333 !important;}
.wArea.hx li label{ margin-right:30px;}
.wArea.hx .inputTitle{ font-weight:bold !important;}
.wArea.hx li.h3,
.wArea.hx .inputTitle.h3{ font-size:18px !important; height:28px;}
.wArea.hx li.h4,
.wArea.hx .inputTitle.h4{ font-size:16px !important; height:26px;}
.wArea.hx li.h5,
.wArea.hx .inputTitle.h5{ font-size:13px !important; height:23px;}
/* Writing Area List */
.wArea.list .toolbar{ border:1px solid #ddd; list-style:none; margin:0 0 -1px 0; padding:0; background:#fafafa; padding:6px 20px;}
.wArea.list .toolbar li{ display:inline; margin-right:5px;}
.wArea.list .toolbar li button{ position:relative; width:23px; height:22px; padding:0; border:0; cursor:pointer; background-image:url(../img/buttonListToolbar.gif); background-repeat:no-repeat;}
.wArea.list .toolbar li button:hover,
.wArea.list .toolbar li button:active,
.wArea.list .toolbar li button:focus{ border:1px solid #ddd;}
.wArea.list .toolbar li button.type_disc{ background-position:center 0;}
.wArea.list .toolbar li button.type_circle{ background-position:center -30px;}
.wArea.list .toolbar li button.type_square{ background-position:center -60px;}
.wArea.list .toolbar li button.type_decimal{ background-position:center -90px;}
.wArea.list .toolbar li button.type_lower-alpha{ background-position:center -120px;}
.wArea.list .toolbar li button.type_upper-alpha{ background-position:center -150px;}
.wArea.list .toolbar li button.type_lower-roman{ background-position:center -180px;}
.wArea.list .toolbar li button.type_upper-roman{ background-position:center -210px;}
.wArea.list .toolbar li button span{ position:absolute; width:0; height:0; font-size:0; line-height:0; overflow:hidden; visibility:hidden;}
.wArea.list .listArea{ padding:1em 0; margin-bottom:1em; background:#fff url(../img/bgInputText.gif) no-repeat; border:1px solid #ddd;}
.wArea.list .listArea ul{ border:0;}
.wArea.list .listArea input{ border:0; border-bottom:1px solid #ddd; background:transparent; width:96%; padding:3px 4px;}
/* Writing Area Image */
.wArea.img .image{ position:relative; margin-bottom:10px; background:#fff; padding:0; _width:100%; overflow:hidden;}
.wArea.img .image img{ max-width:100%;}
.wArea.img .uploading{ display:none; padding:0 0 0 20px; background:url(../img/iconLoading.gif) no-repeat left center;}
.wArea.img .uploading button{ border:2px solid #ccc; background:#eee; cursor:pointer; font-size:11px; font-weight:bold; padding:0; overflow:visible; vertical-align:middle; margin:0 10px;}
.wArea.img .info{ font-size:11px; color:#737fa1; margin:0;}
.wArea.img .resize{ display:none;}
.wArea.img .resize.open{ display:block;}
.wArea.img .resize dl *{ vertical-align:middle;}
.wArea.img .resize dt{ display:inline; font-weight:bold;}
.wArea.img .resize dd{ display:inline; margin:0;}
.wArea.img .resize .width{ width:60px; text-align:right; padding:1px 4px; height:16px;}
.wArea.img .resize .width.original{ background:#d4d0c8;}
.wArea.img .resize .resizeInfo{ margin:0 0 0 1em;}
.wArea.img .resize .resizeError{ display:none; padding:.5em 3.5em; margin:1em 6px 1em 0; color:#ff6633; background:#fff url(../img/iconCheckSmall.gif) no-repeat 2em center;; border:1px solid #ddd;}
.wArea.img .resize .resizeError.open{ display:block;}
.wArea.img .align{ display:none;}
.wArea.img .align dt{ display:inline; font-weight:bold;}
.wArea.img .align dd{ display:inline; margin:0;}
/* Writing Area File */
.wArea.file .buttonFileUpload,
.wArea.file .buttonFileUpload button{ position:relative; display:inline-block; height:39px; background-color:transparent; background-image:url(../img/buttonUpload.gif); background-repeat:no-repeat; cursor:pointer;}
.wArea.file .buttonFileUpload{ background-position:left top;}
.wArea.file .buttonFileUpload button{ left:7px; border:0; padding:0 15px 0 25px; background-position:right top; font-size:12px; font-weight:bold; color:#fff; line-height:39px; overflow:visible;}
.wArea.file .buttonFileUpload .swfupload{ margin:0 !important; cursor:pointer;}
.wArea.file .info{ font-size:11px; color:#737fa1;}
.wArea.file .info .help{ position:relative; font-size:11px; border:0; background:none; padding:0; cursor:pointer; *zoom:1; color:#f66; overflow:visible;}
.wArea.file .inputFile{ display:none;}
.wArea.file .inputFile.open{ display:block;}
.wArea.file dl{ margin:0; padding:0;}
.wArea.file dd{ font-size:11px; margin-bottom:3px; margin:0;}
.wArea.file dd strong{ margin-right:15px; color:#555; font-weight:normal;}
.wArea.file dd em{ color:#767676; font-style:normal; margin-right:15px;}
.wArea.file dd .buttonDelete{ border:0; padding:0; width:17px; height:17px; vertical-align:middle; cursor:pointer; background:url(../img/buttonTableDataX.gif) no-repeat center center;}
.wArea.file dd .buttonDelete span{ position:absolute; width:0; height:0; overflow:hidden; font-size:0; line-height:0; z-index:-1; visibility:hidden;}
.wArea.file .summary{ text-align:right; font-size:11px;}
.wArea.file .summary{ color:#555;}
.wArea.file .summary em{ color:#767676; font-style:normal; margin-left:10px;}
/* Writing Area Hr */
.wArea.hr ul{ margin:0 0 20px 0; padding:0; list-style:none; font-size:12px; color:#555; *zoom:1;}
.wArea.hr li{ position:relative; margin-bottom:10px; *zoom:1;}
.wArea.hr li label{ position:relative; background:#f5f5f5; padding:0 15px 0 30px; margin-left:-30px; z-index:1; display:none;}
.wArea.hr li .inputRadio{ position:relative; z-index:10; display:none;}
.wArea.hr .inputToggle,
.wArea.hr .inputContinue{ position:absolute; top:0; border:1px solid #ddd; font-size:12px; color:#767676; width:150px; padding:3px 4px; height:14px; text-align:right; background-image:url(../img/bgInputText.gif); background-repeat:no-repeat;}
.wArea.hr .inputShow{ right:170px;}
.wArea.hr .inputHide,
.wArea.hr .inputContinue{ right:0;}
.wArea.hr .hRule{ position:absolute; width:100%; top:50%; left:0; display:block; border-top:1px solid #e6e6e6; border-bottom:1px solid #fff; font-size:0; line-height:0; overflow:hidden; height:0;}
/* Edit Area */
.eArea{ position:relative; padding:0 20px; margin:0; font-size:12px; border:1px solid #fff; overflow:visible !important; _zoom:1;}
.eArea.xe_dr_hr{ padding-top:1em; padding-bottom:1em;}
.eArea a{ color:#648AB9;}
.eArea button.holder{ position:absolute; left:-2000px; top:0px; }
.eArea .eTool{ display:none;}
.eArea .eFocusTrigger{ position:absolute; top:0; left:0; font-size:0; line-height:0; border:0; background:transparent; width:1px; height:1px; overflow:hidden; opacity:0; filter:alpha(opacity=0);}
.eArea .eFocusTrigger:focus{ border:1px solid;}
.eArea .del{ display:none; position:absolute; top:0; right:20px; border:0; padding:0; width:20px; height:20px; cursor:pointer; background:transparent url(../img/buttonTableDataX.gif) no-repeat center;}
.eArea .del span{position:absolute; width:0; height:0; overflow:hidden; font-size:0; line-height:0; z-index:-1; visibility:hidden;}
.eArea.xe_dr_img p{ overflow:hidden; width:100%;}
.eArea.xe_dr_img p img{ *padding:1em 0;}
.eFocus{ border:1px solid #d8d8de; z-index:999; background:#f9f9f9;}
.eArea .cap{ display:none;}
.eFocus .cap{ display:none; *display:block; position:absolute; width:10px; height:10px; background-repeat:no-repeat; font-size:0; line-height:0; overflow:hidden;}
.eFocus .cap.capTL{ top:-1px; left:-1px; background-position:left top;}
.eFocus .cap.capTR{ top:-1px; right:-1px; background-position:right top;}
.eFocus .cap.capBL{ bottom:-1px; left:-1px; background-position:left bottom;}
.eFocus .cap.capBR{ bottom:-1px; right:-1px; background-position:right bottom;}
.eFocus .eTool{ display:block; height:24px; position:absolute !important; z-index:99; top:-24px !important; left:-1px !important; white-space:nowrap; margin:0 0 0 2px !important; padding:0 5px 0 0 !important; border:0 !important; background:url(../img/bgEtool.gif) no-repeat right top !important;}
.eFocus .eTool li{ position:relative; left:-2px; display:block; float:left; height:22px; padding:2px 3px 0 5px; background:url(../img/vrContentNavigation.gif) no-repeat left center;}
.eFocus .eTool li.edit{ background:url(../img/bgEtool.gif) no-repeat left top;}
.eFocus .eTool li button{ border:0; padding:0; overflow:visible; cursor:pointer; background-color:transparent; font-size:11px; vertical-align:middle;}
.eFocus .eTool li.move button,
.eFocus .eTool li.delete button{ overflow:hidden; width:17px; height:17px; background-position:center center; background-repeat:no-repeat;}
.eFocus .eTool li.move button{ background-image:url(../img/iconMovable.gif); cursor:move;}
.eFocus .eTool li.delete button{ background-image:url(../img/buttonWasteBox.gif);}
.eFocus .eTool li.move button span,
.eFocus .eTool li.delete button span{ position:absolute; width:0; height:0; overflow:hidden; font-size:0; line-height:0; z-index:-1; visibility:hidden;}
.eFocus .del{ display:block;}
/* txEditor */
.txEditor{ position:relative; width:98%; padding-right:10px; margin-bottom:10px; border:1px solid #ddd; *zoom:1; background:#fff;}
.txEditor .toolbar{ position:relative; z-index:10; margin:0 -10px 0 0; padding:6px 10px; list-style:none; *zoom:1; background:#fafafa; border-bottom:1px solid #ddd;}
.txEditor .toolbar:after{ content:""; display:block; clear:both;}
.txEditor .toolbar li{ position:relative; float:left; margin-right:5px;}
.txEditor .toolbar li button{ border:0; padding:0; height:22px; background-color:transparent; background-image:url(../img/buttonEditorToolbar.gif); background-repeat:no-repeat; cursor:pointer; vertical-align:middle;}
.txEditor .toolbar li button:hover,
.txEditor .toolbar li button:active,
.txEditor .toolbar li button:focus,
.txEditor .toolbar li button.active{ border:1px solid #ddd;}
.txEditor .toolbar li button span{ position:absolute; width:0; height:0; overflow:hidden; font-size:0; line-height:0; z-index:-1; visibility:hidden;}
.txEditor .toolbar li select{ font-size:12px; vertical-align:middle; height:21px;}
.txEditor .toolbar li.undo button{ width:23px; background-position:center -210px;}
.txEditor .toolbar li.redo button{ width:23px; background-position:center -240px;}
.txEditor .toolbar li.strong button{ width:23px; background-position:center 0;}
.txEditor .toolbar li.em button{ width:23px; background-position:center -30px;}
.txEditor .toolbar li.underline button{ width:23px; background-position:center -60px;}
.txEditor .toolbar li.del button{ width:23px; background-position:center -90px;}
.txEditor .toolbar li.vRule{ padding-left:10px; margin:0 5px; background:url(../img/vrEditorToolbar.gif) no-repeat left center;}
.txEditor .toolbar li.aHref button{ width:23px; background-position:center -120px;}
.txEditor .toolbar li.fSize{ margin-right:5px;}
.txEditor .toolbar li.fColor{ margin-right:5px; z-index:2;}
.txEditor .toolbar li.fColor button{ width:28px; background-position:center -150px;}
.txEditor .toolbar li.bgColor{ margin-right:5px; z-index:1;}
.txEditor .toolbar li.bgColor button{ width:28px; background-position:center -180px;}
.txEditor .toolbar li.left button{ width:23px; background-position:center -270px;}
.txEditor .toolbar li.center button{ width:23px; background-position:center -300px;}
.txEditor .toolbar li.right button{ width:23px; background-position:center -330px;}
.txEditor .toolbar li.justify button{ width:23px; background-position:center -360px;}
.txEditor .toolbar li.character button{ width:23px; background-position:center -390px;}
.txEditor .toolbar li.list button{ width:23px; background-image:url(../img/buttonListToolbar.gif); background-repeat:no-repeat;}
.txEditor .toolbar li.disc button{ background-position:center 0;}
.txEditor .toolbar li.circle button{ background-position:center -30px;}
.txEditor .toolbar li.square button{ background-position:center -60px;}
.txEditor .toolbar li.decimal button{ background-position:center -90px;}
.txEditor .toolbar li.alphaLower button{ background-position:center -120px;}
.txEditor .toolbar li.alphaUpper button{ background-position:center -150px;}
.txEditor .toolbar li.romanLower button{ background-position:center -180px;}
.txEditor .toolbar li.romanUpper button{ background-position:center -210px;}
.txEditor .toolbar li .uri{ display:none; position:absolute; left:10px; top:25px; padding:15px 20px; border:1px solid #ddd; background:#fff; *zoom:1; *white-space:nowrap;}
.txEditor .toolbar li .uri h3{ font-size:12px; margin:0 0 .5em 0;}
.txEditor .toolbar li .uri .link{ border:1px solid #ccc; padding:3px 4px; height:14px; font-size:12px; width:200px; font-size:11px; color:#666;}
.txEditor .toolbar li .uri p{ margin:.5em 0;}
.txEditor .toolbar li .uri p input{ width:13px; height:13px; margin:0 3px 0 0; vertical-align:middle;}
.txEditor .toolbar li .uri .btn_area{ text-align:center;}
.txEditor .toolbar li .uri .btn_area .buttonGray,
.txEditor .toolbar li .uri .btn_area .buttonGray button{ background-image:url(../img/buttonGray.gif);}
.txEditor .toolbar li .uri .btn_area .buttonGray{ background-position:left top;}
.txEditor .toolbar li .uri .btn_area .buttonGray button{ background-position:right top; line-height:18px; border:0 !important; width:auto; padding:0 6px 0 4px;}
.txEditor .toolbar li .palette{ display:none; width:211px; position:absolute; left:0; top:25px; padding:8px 0 7px 8px; margin:0; list-style:none; border:1px solid #ddd; background:#fff; *zoom:1;}
.txEditor .toolbar li .palette:after{ content:""; display:block; clear:both;}
.txEditor .toolbar li .palette.open{ display:block;}
.txEditor .toolbar li .palette li{ float:left; margin:0 1px 1px 0; font-size:0; line-height:0;}
.txEditor .toolbar li .palette button{ position:relative; overflow:hidden; width:11px; height:11px;}
.txEditor .toolbar li .palette button span{ position:absolute; width:0; height:0; overflow:hidden; font-size:0; line-height:0; z-index:-1; visibility:hidden;}
.txEditor .inputRichText{ position:relative; margin-right:-10px; position:relative; *zoom:1; z-index:1; padding:3px 0 3px 3px; background-image:url(../img/bgInputText.gif); background-repeat:no-repeat; background-position:0 0;}
.txEditor .inputRichText iframe{ width:100%; height:136px; border:0; overflow-x:hidden;}
.txEditor .resizeVertical{ position:relative; margin-right:-10px; border-top:1px solid #ddd; height:10px; background:url(../img/buttonResizeVertical.gif) no-repeat center center; *zoom:1; font-size:0; line-height:0;}
.txEditor .resizeVertical button{ width:100%; height:10px; border:0; margin:0; padding:0; background:transparent; cursor:n-resize; vertical-align:middle;}
.txEditor .resizeVertical button span{ position:absolute; width:0; height:0; font-size:0; line-height:0; overflow:hidden; visibility:hidden; z-index:-1;}
.txEditor .toolbar li.character .layer{ width:433px; height:242px; overflow:hidden; padding:0;}
.txEditor .toolbar li.character .layer .close{ position:absolute; background:url(../img/buttonLayerClose.gif) no-repeat center; width:20px; height:21px; top:4px; right:3px; border:0 !important;}
.txEditor .toolbar li.character .layer ul{ margin:0; padding:0; list-style:none;}
.txEditor .toolbar li.character .layer h3{position:absolute; width:0; height:0; overflow:hidden; visibility:hidden;}
.txEditor .toolbar li.character .layer .nav{ position:absolute; top:8px; left:-1px; overflow:hidden; white-space:nowrap; line-height:normal;}
.txEditor .toolbar li.character .layer .nav li{ display:inline; margin:0 -4px 0 0; padding:0 8px; background:url(../img/vr_layer_character.gif) no-repeat 0 center;}
.txEditor .toolbar li.character .layer .nav li a{ color:#444; text-decoration:none; letter-spacing:-1px;}
.txEditor .toolbar li.character .layer .nav li a:hover,
.txEditor .toolbar li.character .layer .nav li a:active,
.txEditor .toolbar li.character .layer .nav li a:focus{ text-decoration:underline;}
.txEditor .toolbar li.character .layer .nav li a.on{ font-weight:bold; color:#004790; display:inline;}
.txEditor .toolbar li.character .layer .list{ position:absolute; left:7px; top:30px; width:421px; height:172px; background:url(../img/bx_character.gif) no-repeat;}
.txEditor .toolbar li.character .layer .list li{ position:relative; top:1px; left:1px; float:left; width:20px; height:18px; margin:0 1px 1px 0;}
.txEditor .toolbar li.character .layer .list li button{ width:20px; height:18px; background:none; padding:0; vertical-align:top;}
.txEditor .toolbar li.character .layer .list li button:hover,
.txEditor .toolbar li.character .layer .list li button:active,
.txEditor .toolbar li.character .layer .list li button:focus{ border:2px solid #27c11a;}
.txEditor .toolbar li.character .layer .list li button span{ overflow:visible; font-size:12px; width:auto; height:auto; position:relative; visibility:visible; line-height:normal; z-index:1;}
.txEditor .toolbar li.character .layer p{ position:absolute; top:212px; left:7px; margin:0 !important;}
.txEditor .toolbar li.character .layer p *{ vertical-align:top;}
.txEditor .toolbar li.character .layer p label{ position:relative; top:4px; margin:0 7px 0 0; color:#333; letter-spacing:-1px; line-height:normal;}
.txEditor .toolbar li.character .layer p input{ padding:3px 0 0 4px; margin:0 4px 0 0; width:300px; height:16px; border:1px solid #acacac; border-right:1px solid #dadada; border-bottom:1px solid #dadada; font-size:12px;}
.txEditor .toolbar li.character .layer p button{ position:relative; *top:1px; width:38px; height:21px; background:url(../img/buttonLayerConfirm.gif) no-repeat; border:0 !important;}
.txEditor .toolbar .font9px { font-size:9px }
.txEditor .toolbar .font10px { font-size:10px }
.txEditor .toolbar .font11px { font-size:11px }
.txEditor .toolbar .font12px { font-size:12px }
.txEditor .toolbar .font14px { font-size:14px }
.txEditor .toolbar .font16px { font-size:16px }
.txEditor .toolbar .font18px { font-size:18px }
.txEditor .toolbar .font20px { font-size:20px }
.txEditor .toolbar .font24px { font-size:24px }
.txEditor .toolbar .font28px { font-size:28px }
.txEditor .toolbar .font32px { font-size:32px }
.txEditor .toolbar .font36px { font-size:36px }
/* Drag and Drop */
.xe_dr_placeholder { background-color:#F8F4CE; margin:5px 0; height:20px; padding:10px 0; z-index:0; -moz-border-radius:5px; -webkit-border-radius:5px; z-index:1; }
.drag_handle { position:absolute; height:100%; width:10px; top:0; opacity:.5; filter:alpha(opacity=50); background:#ddd url(../img/iconDragHandler.gif) no-repeat center; cursor:n-resize; margin:0 2px !important; padding:0 !important; border:0 !important; _zoom:1;}
.drag_handle.left { left:0; }
.drag_handle.right { right:0; }
.eArea .drag_handle {display:none}
.eFocus .drag_handle {display:block}
.editorContainer .ui-draggable{ margin:0 0 3em 0 !important;}

View file

@ -0,0 +1,6 @@
@charset "utf-8";
/* NHN (developers@xpressengine.com) */
html, body { height:100%; background-color:transparent; padding:0; margin:0;}
body{ margin:1em;}
.xe_content{ color:#000; font-size:12px; line-height:1.5;}

View file

@ -0,0 +1,52 @@
@charset "utf-8";
/* NHN (developers@xpressengine.com) */
/* textyleContent */
.textyleContent{ font-size:12px; line-height:1.6; clear:both;}
.textyleContent h1{ font-size:24px;}
.textyleContent h2{ font-size:20px;}
.textyleContent h3{ font-size:18px;}
.textyleContent h4{ font-size:16px;}
.textyleContent h5{ font-size:14px;}
.textyleContent h6{ font-size:12px;}
/* Attached File */
.textyleContent dl.attachedFile { margin:1em 0; padding:1em 0; background:#f9f9f9; border:1px solid #eee; }
.textyleContent dl.attachedFile dt { padding:0 2em .5em 2em; margin:0 0 1em 0; font-weight:bold; text-indent:1em; border-bottom:1px solid #eee; background:#f9f9f9 url(../img/iconClip.gif) no-repeat 2em .3em; font-size:12px;}
.textyleContent dl.attachedFile em{ font-size:11px; font-weight:normal; font-style:normal; margin:0 5px;}
.textyleContent dl.attachedFile dd{ margin:0; padding:0 2em; color:#8b8b8b; font-size:11px;}
.textyleContent dl.attachedFile dd a{ text-decoration:none; color:#0092cf; margin-right:10px;}
.textyleContent dl.attachedFile dd a:hover,
.textyleContent dl.attachedFile dd a:active,
.textyleContent dl.attachedFile dd a:focus{ text-decoration:underline;}
/* Table Of Content */
.textyleContent .toc{ background:#fff; border:1px solid #ddd; font-size:14px; line-height:1.6; margin:1em 0; padding:15px;}
.textyleContent .toc li{ font-weight:bold; color:#555; margin-left:35px;}
.textyleContent .toc li.toc3{}
.textyleContent .toc li.toc4{ margin-left:55px;}
.textyleContent .toc li.toc5{ margin-left:75px;}
.textyleContent .toc li a{ color:#648ab9; text-decoration:none; font-weight:normal;}
.textyleContent .toc li a:hover,
.textyleContent .toc li a:active,
.textyleContent .toc li a:focus{ text-decoration:underline;}
/* Object */
.textyleContent object,
.textyleContent embed{ margin:1em 0;}
/* Horizontal Rule */
.textyleContent hr{ display:block; position:static; border-bottom:0; height:1px; overflow:hidden; color:#e2e2e2; clear:both;}
/* Blockquote */
.textyleContent blockquote{ margin-left:0; margin-right:0; padding:1em 40px; background:#f6f6f6 url(../img/bgBlockquote.gif) no-repeat 20px 1.5em; -moz-border-radius:5px; -webkit-border-radius:5px; }
/* Cite */
.textyleContent cite{ display:block; margin:1em 0;}
/* Link */
.textyleContent .xe_dr_link p strong{ display:block;}
/* P */
.xe_content p,
.textyleContent p{ margin:1em 0 !important;}

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<component name="fold">
<title xml:lang="ko">접기</title>
<title xml:lang="en">Fold</title>
<title xml:lang="vi">Co giãn</title>
<title xml:lang="zh-TW">摺疊</title>
<description xml:lang="ko">접고 펼치는 블럭을 추가할 수 있습니다.</description>
<description xml:lang="en">접고 펼치는 블럭을 추가할 수 있습니다.</description>
<description xml:lang="vi">Chức năng này sẽ giúp bạn tạo một đoạn văn bản tự động co giãn khi đưa chuột tới.</description>
<description xml:lang="zh-TW">新增一個可展開與摺疊的段落。</description>
<date>2010-01-22</date>
<version>0.2</version>
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
<name xml:lang="ko">NHN</name>
<name xml:lang="en">NHN</name>
<name xml:lang="vi">NHN</name>
<name xml:lang="zh-TW">NHN</name>
</author>
</component>

View file

@ -0,0 +1,5 @@
<?PHP
$lang->edit->fold = 'Fold';
$lang->edit->fold_default = 'More..|Less..';
$lang->edit->fold_description = '\'More|Less\'와 같이 입력해주세요.';
?>

View file

@ -0,0 +1,5 @@
<?PHP
$lang->edit->fold = '접기';
$lang->edit->fold_default = '펼치기..|접기..';
$lang->edit->fold_description = '\'펼치기|접기\'와 같이 입력해주세요.';
?>

View file

@ -0,0 +1,5 @@
<?PHP
$lang->edit->fold = 'Co giãn';
$lang->edit->fold_default = 'Giãn ra.. | Co lại..';
$lang->edit->fold_description = 'Hãy nhập từ thay cho từ mặc định là \'Giãn ra|Co lại\'.';
?>

View file

@ -0,0 +1,5 @@
<?PHP
$lang->edit->fold = '摺疊';
$lang->edit->title2 = '標題2';
$lang->edit->title3 = '標題3';
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 B

View file

@ -0,0 +1,12 @@
.wToolbar li.fold button{ background:url(fold.gif) no-repeat center 12px; }
.editorArea ._fold{ padding:0;}
.editorArea ._fold ._fold_cap{ border:3px solid #f90; padding:5px 20px; margin:2px;}
.editorArea ._fold_first ._fold_cap{ border-bottom:0;}
.editorArea ._fold_last ._fold_cap{ border-top:0;}
.editorArea ._fold span { cursor:pointer; font-weight:bold; }
.editorArea ._fold_last span { display:none; }
.editorArea ._fold span.more { display:none; }
.editorArea ._fold_more span.less { display:none; }
.editorArea ._fold_more span.more { display:inline; }
.editorArea ._fold_hide { display:none; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

View file

@ -0,0 +1,17 @@
<!--%import("fold.js")-->
<!--%import("fold.css")-->
<div class="wArea fold">
<fieldset>
<legend>{$lang->edit->fold}</legend>
<input name="" type="text" class="inputText" value="" title="{$lang->edit->fold_default}" />
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button"><img src="iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button"><img src="buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
<p class="info">{$lang->edit->fold_description}</p>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>

View file

@ -0,0 +1,205 @@
/**
* Fold component
* @author NHN (developers@xpressengine.com)
*/
jQuery(function($){
var editor = xe.getApp('DrEditor')[0];
var Fold = xe.createPlugin('Fold', {
configs : {},
init : function() {
this.configs = {};
},
create : function(seq) {
var config = editor.getConfig(seq);
var _editor = config.writeArea.find('>div.fold');
var _text = _editor.find('input[type=text]');
var next = _text.next();
_text.remove();
this.cast('ADD_DEFAULT_EDITOR_ACTION', [seq, _editor, 'FOLD']);
next.before(_text);
_text
.blur(function(){ if(!$.trim(this.value)) this.value = this.title })
.val(_text.attr('title'));
this.configs[seq] = {
editor : _editor,
text : _text,
marker : [],
before : null
};
return this.configs[seq];
},
assign_class : function(seq) {
if (this.configs[seq].marker.length) {
this.configs[seq].marker.eq(0).removeClass('_fold_last').addClass('_fold_first');
this.configs[seq].marker.eq(1).removeClass('_fold_first').addClass('_fold_last');
}
},
toggle : function(seq, button) {
var parent = button.parent().parent();
var target = parent.nextAll('div.eArea');
var n_fold = target.index(target.filter('div._fold'));
if (button.is('.more')) {
target.slice(0, n_fold).removeClass('_fold_hide');
parent.removeClass('_fold_more');
} else {
target.slice(0, n_fold).addClass('_fold_hide');
parent.addClass('_fold_more');
}
},
API_BEFORE_SETTING_CONTENT : function(sender, params) {
var self = this;
var seq = params[0];
var obj = params[1];
var button = obj.children('div.fold_button:first');
var container = obj.children('div.fold_container');
if (button.length && container.length) {
var more = button.find('button.more').text(); // copy only text
var less = button.find('button.less').text();
var fold = $('<div class="eArea _fold"><div class="_fold_cap">&raquo; <span class="more"></span><span class="less"></span></div></div>').attr('type', 'fold');
fold.find('span.more').click(function(){ self.toggle(seq,$(this)) }).text(more);
fold.find('span.less').click(function(){ self.toggle(seq,$(this)) }).text(less);
container.before(fold).before(container.children()).before(fold.clone(true)).remove();
if (!this.configs[seq]) this.create(seq);
this.configs[seq].marker = obj.children('div._fold');
this.assign_class(seq);
} else {
container.before(container.children()).remove();
}
button.remove();
},
API_AFTER_GETTING_CONTENT : function(sender, params) {
var seq = params[0];
var obj = params[1];
var chd = obj.children();
var fold = chd.filter('div._fold');
if (!fold.length) return true;
var n_start = chd.index(fold.eq(0));
var n_end = chd.index(fold.eq(1));
if (n_start+1 >= n_end) return true;
var div = $('<div class="fold_container" style="display:none" />');
chd.slice(n_start+1, n_end).appendTo(div);
fold.eq(0).before(div);
fold.remove();
var more = fold.find('span.more').html();
var less = fold.find('span.less').html();
var button = $('<div class="fold_button"><button type="button" class="more">'+more+'</button><button type="button" class="less" style="display:none">'+less+'</button></div>');
div.before(button);
},
API_OPEN_FOLD_EDITOR : function(sender, params) {
var seq = params[0];
var box = params[1];
var bef = params[2];
var cfg = this.configs[seq];
if (!cfg) cfg = this.create(seq);
if (!box && cfg.marker.length) {
alert('접기 영역은 하나만 사용할 수 있습니다.');
return false;
}
this.cast('RESET_EDITOR', [seq, cfg.editor, 'FOLD']);
cfg.before = null;
if (box) {
var more = box.find('span.more').text();
var less = box.find('span.less').text();
cfg.text.val(more+'|'+less);
box.hide().after(cfg.editor);
} else if (bef) {
cfg.before = bef;
$(bef).after(cfg.editor);
} else {
cfg.editor.appendTo(editor.getConfig(seq).editArea);
}
cfg.editor.show().find('input[type=text]:first').focus();
this.cast('SCROLL_INTO_VIEW', [seq, cfg.editor]);
},
API_CLOSE_FOLD_EDITOR : function(sender, params) {
var self = this;
var seq = params[0];
var save = params[1];
var cfg = this.configs[seq];
var txt = $.trim(cfg.text.val());
var box = editor.getConfig(seq).editArea.children('div._fold:hidden');
var fold = null, fold2 = null;
if (txt == '') txt = cfg.text.attr('title');
if (save) {
txt = txt.split('|');
if (box.length) {
fold = editor.getConfig(seq).editArea.children('div._fold');
fold.find('span.more').text( txt[0] );
fold.find('span.less').text( txt[1] || '' );
} else {
fold = $('<div class="eArea _fold"><div class="_fold_cap">&raquo; <span class="more"></span><span class="less"></span></div></div>').attr('type', 'fold');
fold.find('span.more').click(function(){ self.toggle(seq,$(this)) }).text( txt[0] );
fold.find('span.less').click(function(){ self.toggle(seq,$(this)) }).text( txt[1] || '' );
fold2 = (box=fold).clone(true);
if (cfg.before) {
cfg.before.before(fold).after(fold2);
} else {
cfg.editor.before(fold).before(fold2);
}
fold = editor.getConfig(seq).editArea.children('div._fold');
}
cfg.marker = fold;
this.assign_class(seq);
this.cast('SAVE_PARAGRAPH', [seq]);
}
box.show();
cfg.editor.hide().appendTo(editor.getConfig(seq).writeArea);
if(!box.length) box = cfg.editor.prev('div.eArea');
this.cast('SELECT_PARAGRAPH', [seq, box, box, box]);
},
API_AFTER_ONMOVE_PARAGRPH : function(sender, params) {
var seq = params[0];
var chd = editor.getConfig(seq).editArea.children();
if(typeof(this.configs[seq]) == 'undefined') return;
chd.filter('div._fold_hide').removeClass('_fold_hide');
this.configs[seq].marker = chd.filter('div._fold');
this.assign_class(seq);
if (this.configs[seq].marker.length) this.configs[seq].marker.removeClass('_fold_more');
},
API_AFTER_DELETE_PARAGRAPH : function(sender, params) {
var self = this;
var seq = params[0];
var target = params[1];
if (target.filter('div._fold').length) {
this.configs[seq].marker.remove()
this.configs[seq].marker = [];
}
}
});
editor.registerPlugin(new Fold);
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 B

View file

@ -0,0 +1,687 @@
<!--// 스킨 css 로드 -->
<!--%import("css/dreditor.css")-->
<!--%import("css/style@content.css")-->
<!--%import("css/button.css")-->
<!--// 기본 JS 로드 -->
<!--%import("../../tpl/js/editor_common.js")-->
<!--%load_js_plugin("ui")-->
<!--// 에디터 JS 로드 -->
<!--%import("js/Xpress_Editor.js")-->
<!--%import("js/DrEditor.js",optimized=false)-->
<!--%import("js/xe_interface.js",optimized=false)-->
<!--// 글감 모듈 유무 판단 -->
<!--@if(file_exists(_XE_PATH_.'modules/material/material.class.php'))-->
{@$material_exists = true}
<!--@else-->
{@$material_exists = false}
<!--@end-->
{@$cookie_tool=explode(',', $_COOKIE['DrEditorToolbar'])}
{@$default_tool=explode(',', 'hx,txt,material,link,list,quote,img,movie,file,hr,index')}
{@$external_components=array_keys($drComponentList)}
{@$enable_tool=array_unique(array_merge($cookie_tool, $default_tool, (array)$external_components))}
<!-- 자동저장용 폼 -->
<!--@if($enable_autosave)-->
<input type="hidden" name="_saved_doc_title" value="{htmlspecialchars($saved_doc->title)}" />
<input type="hidden" name="_saved_doc_content" value="{htmlspecialchars($saved_doc->content)}" />
<input type="hidden" name="_saved_doc_message" value="{$lang->msg_load_saved_doc}" />
<div style="display:none"><p class="editor_autosaved_message" id="editor_autosaved_message_{$editor_sequence}" style="display:none"></p></div>
<!--@end-->
<!-- 폼을 알아내기 위한 더미 -->
<input type="hidden" name="editor_sequence" id="dreditor_dummy_{$editor_sequence}" value="{$editor_sequence}" />
<!-- 에디터 -->
<div id="DrEditor{$editor_sequence}" class="textyleEditor">
<!-- class="textyleEditor" | class="textyleEditor keepClose" -->
<div class="editorContainer">
<!-- Editor Area -->
<div class="editorArea textyleContent"></div>
<!-- Writer Area -->
<div class="writeArea textyleContent">
<div class="wArea hx">
<!-- class="wArea hx" | class="wArea hx open" -->
<fieldset>
<legend>{$lang->edit->title}</legend>
<ul>
<li class="h3"><input name="hx" type="radio" value="h3" id="h3" class="inputRadio" checked="checked" /><label for="h3">{$lang->edit->title1}</label></li>
<li class="h4"><input name="hx" type="radio" value="h4" id="h4" class="inputRadio" /><label for="h4">{$lang->edit->title2}</label></li>
<li class="h5"><input name="hx" type="radio" value="h5" id="h5" class="inputRadio" /><label for="h5">{$lang->edit->title3}</label></li>
</ul>
<input name="" type="text" class="inputTitle h3" value="{$lang->edit->insert_dr_title}" title="{$lang->edit->insert_dr_title}" />
<!-- class="inputTitle h3" | class="inputTitle h4" | class="inputTitle h5" -->
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
</div>
<ul class="eTool">
<li class="edit"><button type="button">{$lang->cmd_edit}</button></li>
<li class="move"><button type="button"><span>{$lang->cmd_move}</span></button></li>
<li class="delete"><button type="button"><span>{$lang->cmd_delete}</span></button></li>
</ul>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<div class="wArea txt">
<!-- class="wArea txt" | class="wArea txt open" -->
<fieldset>
<legend>Text</legend>
<input type="hidden" />
<div class="txEditor">
<ul class="toolbar tool">
<li class="xpress_xeditor_ui_undo undo"><button type="button" title="Ctrl+Z:{$lang->edit->undo}"><span>{$lang->edit->undo}</span></button></li>
<li class="xpress_xeditor_ui_redo redo"><button type="button" title="Ctrl+Y:{$lang->edit->redo}"><span>{$lang->edit->redo}</span></button></li>
<li class="vRule xpress_xeditor_ui_fontName">
<select class="xpress_xeditor_ui_fontName_select">
<option value="">{$lang->edit->fontname}</option>
<!--@foreach($lang->edit->fontlist as $key=>$obj)-->
<option value="{$key}" style="font-family:{$key}">{$obj}</option>
<!--@end-->
</select>
</li>
<li class="fSize xpress_xeditor_ui_fontSize">
<select class="xpress_xeditor_ui_fontSize_select">
<option>{$lang->edit->fontsize}</option>
<option value="9px" class="font9px">9px</option>
<option value="10px" class="font10px">10px</option>
<option value="11px" class="font11px">11px</option>
<option value="12px" class="font12px">12px</option>
<option value="14px" class="font14px">14px</option>
<option value="16px" class="font16px">16px</option>
<option value="18px" class="font18px">18px</option>
<option value="20px" class="font20px">20px</option>
<option value="24px" class="font24px">24px</option>
<option value="28px" class="font28px">28px</option>
<option value="32px" class="font32px">32px</option>
<option value="36px" class="font36px">36px</option>
</select>
</li>
<li class="xpress_xeditor_ui_lineHeight">
<select class="xpress_xeditor_ui_lineHeight_select">
<option value="">{$lang->edit->lineheight}</option>
<option value="1">100%</option>
<option value="1.2">120%</option>
<option value="1.4">140%</option>
<option value="1.6">160%</option>
<option value="1.8">180%</option>
<option value="2">200%</option>
</select>
</li>
<li class="strong vRule xpress_xeditor_ui_bold"><button type="button"><span>{$lang->edit->bold}</span></button></li>
<li class="em xpress_xeditor_ui_italic"><button type="button"><span>{$lang->edit->italic}</span></button></li>
<li class="underline xpress_xeditor_ui_underline"><button type="button"><span>{$lang->edit->underline}</span></button></li>
<li class="del xpress_xeditor_ui_lineThrough"><button type="button"><span>{$lang->edit->strike}</span></button></li>
<li class="aHref vRule xpress_xeditor_ui_hyperlink">
<button type="button" title="{$lang->edit->url}"><span>{$lang->edit->url}</span></button>
<!-- URL 레이어 -->
<div class="uri xpress_xeditor_hyperlink_layer" style="display:none;">
<fieldset>
<h3>{$lang->edit->hyperlink}</h3>
<input name="" class="link" type="text" value="http://" title="URL" />
<p><input name="" id="target" type="checkbox" value="" /><label for="target">{$lang->edit->target_blank}</label></p>
<div class="btn_area">
<span class="buttonGray small"><button type="button" class="confirm" title="{$lang->cmd_confirm}">{$lang->cmd_confirm}</button></span>
<span class="buttonGray small"><button type="button" class="cancel" title="{$lang->cmd_cancel}">{$lang->cmd_cancel}</button></span>
</div>
</fieldset>
</div>
<!-- /URL 레이어 -->
</li>
<li class="fColor xpress_xeditor_ui_fontColor">
<button type="button" title="{$lang->edit->help_fontcolor}"><span>{$lang->edit->fontcolor}</span></button>
<!-- 팔레트 레이어 -->
<div class="xpress_xeditor_fontcolor_layer" style="display:none;">
<ul class="palette xpress_xeditor_color_palette">
<li><button type="button" title="#ff0000" style="background:#ff0000"><span>#ff0000</span></button></li>
<li><button type="button" title="#ff6c00" style="background:#ff6c00"><span>#ff6c00</span></button></li>
<li><button type="button" title="#ffaa00" style="background:#ffaa00"><span>#ffaa00</span></button></li>
<li><button type="button" title="#ffef00" style="background:#ffef00"><span>#ffef00</span></button></li>
<li><button type="button" title="#a6cf00" style="background:#a6cf00"><span>#a6cf00</span></button></li>
<li><button type="button" title="#009e25" style="background:#009e25"><span>#009e25</span></button></li>
<li><button type="button" title="#00b0a2" style="background:#00b0a2"><span>#00b0a2</span></button></li>
<li><button type="button" title="#0075c8" style="background:#0075c8"><span>#0075c8</span></button></li>
<li><button type="button" title="#3a32c3" style="background:#3a32c3"><span>#3a32c3</span></button></li>
<li><button type="button" title="#7820b9" style="background:#7820b9"><span>#7820b9</span></button></li>
<li><button type="button" title="#ef007c" style="background:#ef007c"><span>#ef007c</span></button></li>
<li><button type="button" title="#000000" style="background:#000000"><span>#000000</span></button></li>
<li><button type="button" title="#252525" style="background:#252525"><span>#252525</span></button></li>
<li><button type="button" title="#464646" style="background:#464646"><span>#464646</span></button></li>
<li><button type="button" title="#636363" style="background:#636363"><span>#636363</span></button></li>
<li><button type="button" title="#7d7d7d" style="background:#7d7d7d"><span>#7d7d7d</span></button></li>
<li><button type="button" title="#9a9a9a" style="background:#9a9a9a"><span>#9a9a9a</span></button></li>
<li><button type="button" title="#ffe8e8" style="background:#ffe8e8"><span>#ffe8e8</span></button></li>
<li><button type="button" title="#f7e2d2" style="background:#f7e2d2"><span>#f7e2d2</span></button></li>
<li><button type="button" title="#f5eddc" style="background:#f5eddc"><span>#f5eddc</span></button></li>
<li><button type="button" title="#f5f4e0" style="background:#f5f4e0"><span>#f5f4e0</span></button></li>
<li><button type="button" title="#edf2c2" style="background:#edf2c2"><span>#edf2c2</span></button></li>
<li><button type="button" title="#def7e5" style="background:#def7e5"><span>#def7e5</span></button></li>
<li><button type="button" title="#d9eeec" style="background:#d9eeec"><span>#d9eeec</span></button></li>
<li><button type="button" title="#c9e0f0" style="background:#c9e0f0"><span>#c9e0f0</span></button></li>
<li><button type="button" title="#d6d4eb" style="background:#d6d4eb"><span>#d6d4eb</span></button></li>
<li><button type="button" title="#e7dbed" style="background:#e7dbed"><span>#e7dbed</span></button></li>
<li><button type="button" title="#f1e2ea" style="background:#f1e2ea"><span>#f1e2ea</span></button></li>
<li><button type="button" title="#acacac" style="background:#acacac"><span>#acacac</span></button></li>
<li><button type="button" title="#c2c2c2" style="background:#c2c2c2"><span>#c2c2c2</span></button></li>
<li><button type="button" title="#cccccc" style="background:#cccccc"><span>#cccccc</span></button></li>
<li><button type="button" title="#e1e1e1" style="background:#e1e1e1"><span>#e1e1e1</span></button></li>
<li><button type="button" title="#ebebeb" style="background:#ebebeb"><span>#ebebeb</span></button></li>
<li><button type="button" title="#ffffff" style="background:#ffffff"><span>#ffffff</span></button></li>
<li><button type="button" title="#e97d81" style="background:#e97d81"><span>#e97d81</span></button></li>
<li><button type="button" title="#e19b73" style="background:#e19b73"><span>#e19b73</span></button></li>
<li><button type="button" title="#d1b274" style="background:#d1b274"><span>#d1b274</span></button></li>
<li><button type="button" title="#cfcca2" style="background:#cfcca2"><span>#cfcca2</span></button></li>
<li><button type="button" title="#cfcca2" style="background:#cfcca2"><span>#cfcca2</span></button></li>
<li><button type="button" title="#61b977" style="background:#61b977"><span>#61b977</span></button></li>
<li><button type="button" title="#53aea8" style="background:#53aea8"><span>#53aea8</span></button></li>
<li><button type="button" title="#518fbb" style="background:#518fbb"><span>#518fbb</span></button></li>
<li><button type="button" title="#6a65bb" style="background:#6a65bb"><span>#6a65bb</span></button></li>
<li><button type="button" title="#9a54ce" style="background:#9a54ce"><span>#9a54ce</span></button></li>
<li><button type="button" title="#e573ae" style="background:#e573ae"><span>#e573ae</span></button></li>
<li><button type="button" title="#5a504b" style="background:#5a504b"><span>#5a504b</span></button></li>
<li><button type="button" title="#767b86" style="background:#767b86"><span>#767b86</span></button></li>
<li><button type="button" title="#00ffff" style="background:#00ffff"><span>#00ffff</span></button></li>
<li><button type="button" title="#00ff00" style="background:#00ff00"><span>#00ff00</span></button></li>
<li><button type="button" title="#a0f000" style="background:#a0f000"><span>#a0f000</span></button></li>
<li><button type="button" title="#ffff00" style="background:#ffff00"><span>#ffff00</span></button></li>
<li><button type="button" title="#951015" style="background:#951015"><span>#951015</span></button></li>
<li><button type="button" title="#6e391a" style="background:#6e391a"><span>#6e391a</span></button></li>
<li><button type="button" title="#785c25" style="background:#785c25"><span>#785c25</span></button></li>
<li><button type="button" title="#5f5b25" style="background:#5f5b25"><span>#5f5b25</span></button></li>
<li><button type="button" title="#4c511f" style="background:#4c511f"><span>#4c511f</span></button></li>
<li><button type="button" title="#1c4827" style="background:#1c4827"><span>#1c4827</span></button></li>
<li><button type="button" title="#0d514c" style="background:#0d514c"><span>#0d514c</span></button></li>
<li><button type="button" title="#1b496a" style="background:#1b496a"><span>#1b496a</span></button></li>
<li><button type="button" title="#2b285f" style="background:#2b285f"><span>#2b285f</span></button></li>
<li><button type="button" title="#45245b" style="background:#45245b"><span>#45245b</span></button></li>
<li><button type="button" title="#721947" style="background:#721947"><span>#721947</span></button></li>
<li><button type="button" title="#352e2c" style="background:#352e2c"><span>#352e2c</span></button></li>
<li><button type="button" title="#3c3f45" style="background:#3c3f45"><span>#3c3f45</span></button></li>
<li><button type="button" title="#00aaff" style="background:#00aaff"><span>#00aaff</span></button></li>
<li><button type="button" title="#0000ff" style="background:#0000ff"><span>#0000ff</span></button></li>
<li><button type="button" title="#a800ff" style="background:#a800ff"><span>#a800ff</span></button></li>
<li><button type="button" title="#ff00ff" style="background:#ff00ff"><span>#ff00ff</span></button></li>
</ul>
</div>
<!-- /팔레트 레이어 -->
</li>
<li class="bgColor xpress_xeditor_ui_bgColor">
<button type="button" title="{$lang->edit->help_fontbgcolor}"><span>{$lang->edit->fontbgcolor}</span></button>
<div class="xpress_xeditor_bgcolor_layer" style="display:none;"></div>
</li>
<li class="left vRule xpress_xeditor_ui_justifyleft">
<button type="button" title="{$lang->edit->help_align_left}"><span>{$lang->edit->align_left}</span></button>
</li>
<li class="center xpress_xeditor_ui_justifycenter">
<button type="button" title="{$lang->edit->help_align_center}"><span>{$lang->edit->align_center}</span></button>
</li>
<li class="right xpress_xeditor_ui_justifyright">
<button type="button" title="{$lang->edit->help_align_right}"><span>{$lang->edit->align_right}</span></button>
</li>
<li class="justify xpress_xeditor_ui_justifyfull">
<button type="button" title="{$lang->edit->help_align_justify}"><span>{$lang->edit->align_justify}</span></button>
</li>
<li class="character vRule xpress_xeditor_ui_sCharacter">
<button type="button" title="{$lang->edit->special_character}"><span>{$lang->edit->special_character}</span></button>
<!-- 특수문자 레이어 -->
<div class="layer xpress_xeditor_sCharacter_layer" style="display:none">
<h3>{$lang->edit->insert_special_character}</h3>
<button type="button" class="close" title="{$lang->edit->close_special_character}"><span>{$lang->edit->close_special_character}</span></button>
<ul class="nav">
<li><a href="#character1" class="on">{$lang->edit->symbol}</a></li>
<li><a href="#character2">{$lang->edit->number_unit}</a></li>
<li><a href="#character3">{$lang->edit->circle_bracket}</a></li>
<li><a href="#character4">{$lang->edit->korean}</a></li>
<li><a href="#character5">{$lang->edit->greece},{$lang->edit->Latin}</a></li>
<li><a href="#character6">{$lang->edit->japan}</a></li>
</ul>
<ul style="display: block;" id="character1" class="list"></ul>
<ul style="display: none;" id="character2" class="list"></ul>
<ul style="display: none;" id="character3" class="list"></ul>
<ul style="display: none;" id="character4" class="list"></ul>
<ul style="display: none;" id="character5" class="list"></ul>
<ul style="display: none;" id="character6" class="list"></ul>
<p>
<label for="preview">{$lang->edit->selected_symbol}</label>
<input id="preview" name="" type="text" />
<button type="button" title="{$lang->confirm}"><span>{$lang->confirm}</span></button>
</p>
<button type="button" class="close" title="{$lang->edit->close_special_character}"><span>{$lang->edit->close_special_character}</span></button>
</div>
<!-- /특수문자 레이어 -->
</li>
</ul>
<div class="inputRichText xpress_xeditor_editing_area_container">
<iframe src="{$editor_path}blank.html" frameborder="0" scrolling="yes" title="{$lang->edit->richtext_area}"></iframe>
</div>
<div class="resizeVertical xpress_xeditor_editingArea_verticalResizer">
<button type="button"><span>{$lang->edit->edit_height_control}</span></button>
</div>
</div>
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<div class="wArea link">
<!-- class="wArea link" | class="wArea link open" -->
<fieldset>
<legend>{$lang->edit->link}</legend>
<input name="" type="text" class="inputText" value="" title="{$lang->edit->insert_site_name}" />
<input name="" type="text" class="inputLink" value="" title="http://" />
<input name="" type="text" class="inputText" value="" title="{$lang->edit->insert_explain}" />
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<div class="wArea list">
<!-- class="wArea list" | class="wArea list open" -->
<fieldset>
<legend>{$lang->cmd_list}</legend>
<ul class="toolbar">
<li><button type="button" class="type_disc"><span>disc</span></button></li>
<li><button type="button" class="type_circle"><span>circle</span></button></li>
<li><button type="button" class="type_square"><span>square</span></button></li>
<li><button type="button" class="type_decimal"><span>decimal</span></button></li>
<li><button type="button" class="type_lower-alpha"><span>lower alpha</span></button></li>
<li><button type="button" class="type_upper-alpha"><span>upper alpha</span></button></li>
<li><button type="button" class="type_lower-roman"><span>lower roman</span></button></li>
<li><button type="button" class="type_upper-roman"><span>upper roman</span></button></li>
</ul>
<div class="listArea"></div>
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
<p class="info">{$lang->edit->list_explain}</p>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<div class="wArea quote">
<!-- class="wArea blockquote" | class="wArea blockquote open" -->
<fieldset>
<legend>{$lang->edit->blockquote}</legend>
<textarea name="" cols="50" rows="5" class="inputTextarea" title="{$lang->edit->insert_blockquote}"></textarea>
<input name="" type="text" class="inputText" value="" title="{$lang->edit->insert_cite}" />
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<div class="wArea img">
<!-- class="wArea img" | class="wArea img open" -->
<fieldset>
<legend>{$lang->edit->image}</legend>
<input name="Filedata" type="file" class="inputFile" title="{$lang->edit->find_image}" />
<p class="uploading">{$lang->edit->uploading} <button type="button">{$lang->cmd_cancel}</button> <span></span></p>
<p class="info">{sprintf($lang->edit->uploading_info,($file_config->allowed_filesize/(1024*1024)))}</p>
<div class="hr"></div>
<div class="image">
<img src="" alt="{$lang->edit->uploaded_image}" />
</div>
<div class="align">
<dl>
<dt>{$lang->edit->image_align} :</dt>
<dd>
<input type="radio" name="align" id="img_align_left" value="left" /><label for="img_align_left">{$lang->edit->align_left}</label>
<input type="radio" name="align" id="img_align_center" value="center" /><label for="img_align_center">{$lang->edit->align_center}</label>
<input type="radio" name="align" id="img_align_right" value="right" /><label for="img_align_right">{$lang->edit->align_right}</label>
</dd>
</dl>
</div>
<div class="resize">
<dl>
<dt>{$lang->edit->image_width} :</dt>
<dd><em></em> px → <input name="" type="text" class="width copy" value="" title="" /> px <span class="buttonGray medium"><button type="button" class="btn_resize">{$lang->edit->resize}</button></span> <span class="resizeInfo">{$lang->edit->resize_info}</span></dd>
</dl>
<p class="resizeError">{$lang->edit->resize_error}</p>
</div>
<input name="" type="text" class="inputText desc" value="" title="{$lang->edit->insert_image_explain}" />
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<div class="wArea movie">
<!-- class="wArea mov" | class="wArea mov open" -->
<fieldset>
<legend>{$lang->edit->mov}</legend>
<textarea name="" cols="50" rows="5" class="inputTextarea" title="{$lang->edit->insert_mov}"></textarea>
<textarea name="" cols="50" rows="5" class="inputTextarea" title="{$lang->edit->insert_mov_explain}"></textarea>
<input name="" type="text" class="inputText" value="" title="{$lang->edit->insert_cite}" />
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<!--@if($allow_fileupload)-->
<!--%import("js/uploader.js",optimized=false)-->
<!--%import("../../tpl/js/swfupload.js",optimized=false)-->
<script type="text/javascript">//<![CDATA[
uploaderSettings=
{
"editorSequence" : {$editor_sequence},
"sessionName" : "{session_name()}",
"allowedFileSize" : "{$file_config->allowed_filesize}",
"allowedFileTypes" : "{$file_config->allowed_filetypes}",
"allowedFileTypesDescription" : "{$file_config->allowed_filetypes}",
"insertedFiles" : {(int)$files_count},
"replaceButtonID" : "swfUploadButton{$editor_sequence}",
"fileListAreaID" : "uploaded_file_list_{$editor_sequence}",
"previewAreaID" : "preview_uploaded_{$editor_sequence}",
"uploaderStatusID" : "uploader_status_{$editor_sequence}"
};
//reloadFileList(editorUploadSettings);
//]]></script>
<div class="wArea file">
<!-- class="wArea file" | class="wArea file open" -->
<fieldset>
<legend>{$lang->edit->file}</legend>
<span id="swfUploadButton{$editor_sequence}" class="buttonFileUpload"><button type="button">{$lang->edit->file_select}</button></span>
<p class="info">{sprintf($lang->edit->file_uploadinfo,($file_config->allowed_filesize/(1024*1024)),($file_config->allowed_attach_size/(1024*1024)))} <!--button type="button" class="help">파일 업로드에 문제가 발생하는 경우 클릭.</button--></p>
<!--input name="" type="file" class="inputFile" title="파일 찾기" /-->
<!-- class="inputFile" | class="inputFile open" -->
<div class="hr"></div>
<dl class="attachedFile">
<dd style="display:none"><strong>{filename}</strong> <em>{filesize}</em> <button type="button" class="buttonDelete"><span>{$lang->cmd_delete}</span></button></dd>
</dl>
<p class="summary">{$lang->edit->file_total} <em class="filesize">{total_filesize}</em></p>
<div class="hr"></div>
<input name="" type="text" class="inputText" value="" title="{$lang->edit->insert_file_explain}" />
<input name="" type="text" class="inputText" value="" title="{$lang->edit->insert_cite}" />
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<!--@end-->
<div class="wArea hr">
<!-- class="wArea hr" | class="wArea hr open" -->
<fieldset>
<legend>{$lang->edit->hr}</legend>
<ul>
<li><span class="hRule"></span><input name="hr" type="radio" value="hline" id="hr1" class="inputRadio" checked="checked" /> <label for="hr1">{$lang->edit->hr_simple}</label></li>
</ul>
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<div class="wArea index">
<!-- class="wArea index" | class="wArea index open" -->
<fieldset>
<legend>{$lang->edit->toc}</legend>
<div class="buttonArea">
<span class="buttonGray medium strong"><button type="button" title="Ctrl+Enter"><img src="img/iconCheckSmall.gif" width="12" height="8" alt="" class="icon" />{$lang->cmd_confirm}</button></span>
<span class="buttonGray medium"><button type="button" title="ESC"><img src="img/buttonCloseLayerX.gif" width="7" height="7" alt="" class="icon" />{$lang->cmd_cancel}</button></span>
<p class="info">{$lang->edit->toc_explain}</p>
</div>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<div class="wArea mArea material">
<!-- class="mArea" | class="mArea open" -->
<fieldset>
<legend>{$lang->edit->materials}</legend>
<h4 class="h4">{$lang->edit->materials}</h4>
<div class="controls">
<span class="buttonDrEditor black"><button type="button" class="_reload">{$lang->edit->refresh}</button></span>
<span class="buttonDrEditor black"><button type="button" class="_close">{$lang->edit->close_materials}</button></span>
</div>
<p class="noData">{$lang->edit->no_materials}</p>
<div class="_container">
<dl>
<dt>{regdate}</dt>
<dd>
<div class="eArea">{content}</div>
<span class="buttonDrEditor green small"><button type="button">{$lang->edit->insert}</button></span>
</dd>
</dl>
</div>
<!-- pagenate -->
<div class="paginate">
<button type="button" class="prev" title="{$lang->edit->paging_prev_help}"><span>{$lang->edit->paging_prev}</span></button>
<button type="button" class="next" title="{$lang->edit->paging_next_help}"><span>{$lang->edit->paging_next}</span></button>
<span>{current}/{total}</span>
</div>
<!-- pagenate -->
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<div class="wArea mArea help">
<!-- class="mArea" | class="mArea open" -->
<fieldset>
<legend>{$lang->edit->help}</legend>
<h4 class="h4">{$lang->edit->help}</h4>
<div class="controls">
<span class="buttonDrEditor black"><button type="button">{$lang->edit->close_help}</button></span>
</div>
<dl>
<dt>{$lang->edit->help_first_dt_1}</dt>
<dd>{$lang->edit->help_first_dd_1}</dd>
<dt>{$lang->edit->help_first_dt_2}</dt>
<dd>{$lang->edit->help_first_dd_2}</dd>
<dt>{$lang->edit->help_first_dt_3}</dt>
<dd>{$lang->edit->help_first_dd_3}</dd>
<dt>{$lang->edit->help_first_dt_4}</dt>
<dd>{$lang->edit->help_first_dd_4}</dd>
<dt>{$lang->edit->help_first_dt_5}</dt>
<dd>{$lang->edit->help_first_dd_5}</dd>
</dl>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</fieldset>
</div>
<!-- wArea blank-->
<div class="wArea blank">
<!-- class="wArea blank" | class="wArea blank open" -->
<h4 class="h4">{$lang->edit->help_first_title}</h4>
<dl>
<dt>{$lang->edit->help_first_dt_1}</dt>
<dd>{$lang->edit->help_first_dd_1}</dd>
<dt>{$lang->edit->help_first_dt_2}</dt>
<dd>{$lang->edit->help_first_dd_2}</dd>
<dt>{$lang->edit->help_first_dt_3}</dt>
<dd>{$lang->edit->help_first_dd_3}</dd>
<dt>{$lang->edit->help_first_dt_4}</dt>
<dd>{$lang->edit->help_first_dd_4}</dd>
<dt>{$lang->edit->help_first_dt_5}</dt>
<dd>{$lang->edit->help_first_dd_5}</dd>
</dl>
<p class="drEditorBugReport"><a href="http://dreditor.xpressengine.net/?mid=issuetracker&amp;act=dispIssuetrackerViewIssue" target="_blank" title="{$lang->edit->cmd_new_window}">{$lang->edit->help_bug_report}</a></p>
<span class="cap capTL"></span>
<span class="cap capTR"></span>
<span class="cap capBL"></span>
<span class="cap capBR"></span>
</div>
<!-- /wArea blank-->
<!-- External Components -->
<!--@foreach($drComponentList as $k=>$v)-->
{$v->html}
<!--@endforeach-->
<!-- /External Components -->
<!-- wToolbar -->
<div class="wToolbarContainer">
<!-- class="wToolbarContainer" | class="wToolbarContainer more" -->
<div class="wToolbar">
<!-- class="wToolbar" | class="wToolbar hx | txt | link | list | quote | img | movie | file | hr | index | material | help" -->
<ul>
<!--<li class="close"><button type="button" title="{$lang->edit->close_toolbar}(~)"></button></li>-->
<!--@foreach($enable_tool as $k => $v)-->
<!--@if($k<9)-->
{@$_title = $lang->edit->help_shortcut.'('.($k+1).')'}
<!--@else-->
{@$_title = ''}
<!--@endif-->
<!--@if($v=='hx')-->
<li class="hx"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->title_title}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='txt')-->
<li class="txt"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->text}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='link')-->
<li class="link"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->link}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='list')-->
<li class="list"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->list}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='quote')-->
<li class="quote"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->blockquote}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='img')-->
<li class="img"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->image}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='movie')-->
<li class="movie"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->mov}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='file' && $allow_fileupload)-->
<li class="file"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->file}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='hr')-->
<li class="hr"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->hr}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='index')-->
<li class="index"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->toc}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($v=='material')-->
<li class="material"><button type="button" title="{$_title}"><span class="tx">{$lang->edit->material}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@elseif($drComponentList[$v])-->
<li class="{$v}"><button type="button" title="{$_title}"><span class="tx">{$drComponentList[$v]->title}</span></button><span class="dragable">{$lang->edit->move_button}</span></li>
<!--@end-->
<!--@end-->
<li class="help"><button type="button"><span class="tx">{$lang->edit->help}</span></button></li>
<li class="more"><button type="button" title="(0)"><span class="tx">{$lang->edit->more}</span><span class="nx">0</span></button></li>
</ul>
<!-- JS for Prototype -->
<script type="text/javascript">
//<![CDATA[
jQuery(function($){
$('.wToolbar button').slice(0,9).append('<span class="nx"></span>');
$('.wToolbar li').slice(0,9).each(function(i){
$(this).find('.nx').append(i+1);
});
});
//]]>
</script>
<!-- /JS for Prototype -->
<!--
<div class="shortcut">
<ul>
<li><span>1</span></li>
<li><span>2</span></li>
<li><span>3</span></li>
<li><span>4</span></li>
<li><span>5</span></li>
<li><span>6</span></li>
<li><span>7</span></li>
<li><span>8</span></li>
<li><span>9</span></li>
<li class="more"><span>0</span></li>
</ul>
</div>
-->
<span class="cap capLeft"></span>
<span class="cap capRight"></span>
<span class="top topLeft"></span>
<span class="top topRight"></span>
<span class="arrow"></span>
</div>
</div>
<!-- /wToolbar -->
</div>
<!-- /Editor Area -->
</div>
</div>
<!-- /에디터 -->
<!-- 에디터 활성화 -->
<script type="text/javascript">//<![CDATA[
var editor_path = "{$editor_path}";
var auto_saved_msg = "{$lang->msg_auto_saved}";
var delete_dr_confirm_msg = "{$lang->edit->msg_dr_delete_confirm}";
var no_selected_object_msg = "{$lang->edit->msg_no_selected_object}";
var insert_value_msg = "{$lang->edit->msg_insert_value}";
var submit_without_saving_msg = "{$lang->edit->confirm_submit_without_saving}";
var msg_close_before_write = "{$lang->msg_close_before_write}";
if (typeof(xe.lang) == 'undefined') xe.lang = {};
xe.lang.attached_files = '{$lang->edit->attached_files}';
xe.lang.shortcut = '{$lang->edit->help_shortcut}';
xe.lang.drag_this = '{$lang->edit->drag_this}';
xe.lang.cmd_del = '{$lang->edit->cmd_del}';
editorStart_xe(
'{$editor_sequence}',
'{$editor_primary_key_name}',
'{$editor_content_key_name}',
'{$editor_height}',
'{$colorset}',
'{$content_style}',
'{$content_font}',
'{$content_font_size}'
);
//]]></script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 970 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 968 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,254 @@
var uploadedFiles = new Array();
var orderedFiles = new Array();
var uploaderSettings = new Array();
var loaded_images = new Array();
var swfUploadObjs = new Array();
var reloadCallback = new Array();
/**
* 업로드를 하기 위한 준비 시작
* 함수는 editor.html 에서 파일 업로드 가능할 경우 호출됨
**/
// window.load 이벤트일 경우 && 문서 번호가 가상의 번호가 아니면 기존에 저장되어 있을지도 모르는 파일 목록을 가져옴
function editorUploadInit(obj) {
if(typeof(obj["editorSequence"])=="undefined") return;
if(typeof(obj["sessionName"])=="undefined") obj["sessionName"]= "PHPSESSID";
if(typeof(obj["allowedFileSize"])=="undefined") obj["allowedFileSize"]= 2*1024*1024;
if(typeof(obj["allowedFileTypes"])=="undefined") obj["allowedFileTypes"]= "*.*";
if(typeof(obj["allowedFileTypesDescription"])=="undefined") obj["allowedFileTypesDescription"]= "All Files";
if(typeof(obj["replaceButtonID"])=="undefined") obj["replaceButtonID"] = "swfUploadButton"+obj["editorSequence"];
if(typeof(obj["insertFiles"])=="undefined") obj["insertFiles"] = 0;
// xAddEventListener(window,'load', function() {XEUploaderStart(obj); } );
XEUploaderStart(obj);
}
// 파일 업로드를 위한 기본 준비
function XEUploaderStart(obj) {
try { document.execCommand('BackgroundImageCache',false,true); } catch(e) { };
var oBtn = jQuery('#'+obj['replaceButtonID']);
var btnWidth = 500;
var btnHeight = 40;
oBtn.css('position','relative');
var dummy = xCreateElement("span");
dummy.id = "dummy"+obj["replaceButtonID"];
oBtn.get(0).appendChild(dummy);
var settings = {
flash_url : request_uri+"modules/editor/tpl/images/SWFUpload.swf",
upload_url: request_uri,
post_params: {
"mid" : current_mid,
"act" : "procFileUpload",
"editor_sequence" : obj["editorSequence"]
},
file_size_limit : parseInt(parseInt(obj["allowedFileSize"],10)/1024,10),
file_queue_limit : 0,
file_upload_limit : 0,
file_types : obj["allowedFileTypes"],
file_types_description : obj["allowedFileTypesDescription"],
custom_settings : {
progressTarget : null,
cancelButtonId : null
},
debug: false,
// Button settings
button_window_mode: 'transparent',
button_placeholder_id: dummy.id,
button_text: null,
button_image_url: "",
button_width: btnWidth,
button_height: btnHeight,
button_text_style: null,
button_text_left_padding: 0,
button_text_top_padding: 0,
// The event handler functions are defined in handlers.js
file_queued_handler : fileQueued,
file_queue_error_handler : fileQueueError,
file_dialog_complete_handler : fileDialogComplete,
upload_start_handler : uploadStart,
upload_progress_handler : uploadProgress,
upload_error_handler : uploadError,
upload_success_handler : uploadSuccess,
upload_complete_handler : uploadComplete,
queue_complete_handler :queueComplete
};
if(typeof(xeVid)!='undefined') settings["post_params"]["vid"] = xeVid;
settings["post_params"][obj["sessionName"]] = xGetCookie(obj["sessionName"]);
settings["editorSequence"] = obj["editorSequence"];
settings["uploadTargetSrl"] = editorRelKeys[obj["editorSequence"]]["primary"].value;
for(var x in obj) {
if (typeof settings[x] != 'undefined') settings[x] = obj[x];
}
uploaderSettings[obj["editorSequence"]] = settings;
var swfu = new SWFUpload(settings);
var swfObj = jQuery('#'+swfu.movieName);
swfUploadObjs[obj["editorSequence"]] = swfu.movieName;
if(!swfObj) return;
jQuery(swfObj).css({
display : 'block',
cursor : 'pointer',
position : 'absolute',
left : 0,
width : btnWidth,
height : btnHeight,
top : '-3px'
});
}
function fileQueued(){
}
function fileQueueError(file, errorCode, message) {
try {
switch(errorCode) {
case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED :
alert("You have attempted to queue too many files.\n" + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
break;
case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
alert("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
alert("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
alert("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
default:
alert("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
}
} catch(ex) {
this.debug(ex);
}
}
function fileDialogComplete(numFilesSelected, numFilesQueued) {
try {
this.startUpload();
} catch (ex) {
this.debug(ex);
}
}
function uploadStart(file) {
return true;
}
function uploadProgress(file, bytesLoaded, bytesTotal) {
try {
/*
var obj = xGetElementById(this.settings["fileListAreaID"]);
var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
var filename = file.name;
if(filename.length>20) filename = filename.substr(0,20)+'...';
var text = filename + ' ('+percent+'%)';
if(!obj.options.length || obj.options[obj.options.length-1].value != file.id) {
var opt_obj = new Option(text, file.id, true, true);
obj.options[obj.options.length] = opt_obj;
} else {
obj.options[obj.options.length-1].text = text;
}
*/
} catch (ex) {
this.debug(ex);
}
}
function uploadSuccess(file, serverData) {
try {
if(this.getStats().files_queued !== 0) this.startUpload();
} catch (ex) {
this.debug(ex);
}
}
function uploadError(file, errorCode, message) {
try {
switch (errorCode) {
case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
alert("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
alert("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.IO_ERROR:
alert("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
alert("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
alert("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
alert("Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
// If there aren't any files left (they were all cancelled) disable the cancel button
if (this.getStats().files_queued === 0) {
jQuery('#'+this.customSettings.cancelButtonId).attr('disabled', true);
}
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
break;
default:
alert("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
break;
}
} catch (ex) {
this.debug(ex);
}
}
function uploadComplete(file) {
try {
reloadFileList(this.settings);
} catch(e) {
this.debug(ex);
}
}
function queueComplete(numFilesUploaded) {
}
function reloadFileList(settings) {
var params = new Array();
params["file_list_area_id"] = settings["fileListAreaID"];
params["editor_sequence"] = settings["editorSequence"];
params["upload_target_srl"] = settings["uploadTargetSrl"];
params["mid"] = current_mid;
var response_tags = new Array("error","message","files","upload_status","upload_target_srl","editor_sequence","left_size");
exec_xml("file","getFileList", params, completeReloadFileList, response_tags, settings);
}
function completeReloadFileList(ret_obj, response_tags, settings) {
var upload_status = ret_obj['upload_status'];
var editor_sequence = ret_obj['editor_sequence'];
var upload_target_srl= ret_obj['upload_target_srl'];
var files = ret_obj['files'];
var left_size = parseInt(parseInt(ret_obj["left_size"],10)/1024,10);
if(!files || typeof(files['item'])=='undefined') return;
if (!jQuery.isArray(files['item'])) files['item'] = [ files['item'] ];
orderedFiles = files['item'];
jQuery.each(files['item'], function(){
var file_srl = this.file_srl;
uploadedFiles[file_srl] = this;
});
if (jQuery.isFunction(reloadCallback[editor_sequence])) {
reloadCallback[editor_sequence](upload_target_srl);
}
}

View file

@ -0,0 +1,107 @@
/**
* @file xe_interface.js
* @brief XE Editor Standard Interface
* @author NHN (developers@xpressengine.com)
*/
(function($){
// get editor app
var editor = xe.getApp('DrEditor');
if ($.isArray(editor)) editor = editor[0];
function _get_content(editor_sequence) {
var content = editor.cast('GET_CONTENT', [editor_sequence]);
return $.isArray(content)?content[0]:content;
}
function _set_content(editor_sequence, content) {
editor.cast('SET_CONTENT', [editor_sequence, content]);
}
function _create(editor_sequence, primary_key, content_key, editor_height, colorset, content_style, content_font, content_font_size) {
if (!colorset) colorset = 'white';
if (!content_style) content_style = 'xeStyle';
if (!content_font) content_font = '';
if (!content_font_size) content_font_size = '';
var seq = editor_sequence;
var form = $('#dreditor_dummy_'+editor_sequence).parents('form:first').get(0);
var target_src = request_uri+'modules/editor/styles/'+content_style+'/editor.html';
var content = form[content_key].value;
try {
form.setAttribute('editor_sequence', seq);
} catch(e) {
form.edtior_sequence = seq;
}
// Set Standard API
if (editorRelKeys) {
editorRelKeys[seq] = {
primary : form[primary_key],
content : form[content_key],
editor : null,
func : function(){ return editor.cast('GET_CONTENT', [seq]) },
pasteHTML : function(content){ editor.cast('SET_CONTENT', [seq, content]); }
};
}
editor.cast('CREATE_EDITOR', [seq, form]); // create new editor
jQuery(function(){
editor.cast('SET_CONTENT', [seq, content]);
if (editorRelKeys) editorRelKeys[seq].content.value = editorRelKeys[seq].func();
});
// Auto save
if (form._disable_autosaved) {
editorRemoveSavedDoc();
} else {
if (form._saved_doc_title && form._saved_doc_title.value) { // Check auto-saved document
var saved_title = form._saved_doc_title.value;
var saved_content = form._saved_doc_content.value;
if (saved_title || saved_content) {
// 자동저장된 문서 활용여부를 물은 후 사용하지 않는다면 자동저장된 문서 삭제
if(confirm(form._saved_doc_message.value)) {
if(typeof(form.title)!='undefined') form.title.value = saved_title;
if(editorRelKeys){
$(function(){
editorRelKeys[seq].content.value = saved_content;
editorRelKeys[seq].pasteHTML(saved_content);
});
}
} else {
editorRemoveSavedDoc();
}
}
}
editorEnableAutoSave(form, editor_sequence);
}
}
// before unload
window.onbeforeunload = function(e) {
var msg = '';
$.each(editorRelKeys, function(seq, obj){
if (!obj) return true;
var content = obj.func();
if (content != obj.content.value) {
msg = msg_close_before_write;
return false;
}
});
if (msg) {
if ($.browser.msie) window.event.returnValue = msg;
else return msg;
}
};
// register as global function
window.editorStart_xe = _create;
window.editorGetContentTextarea_xe = _get_content;
})(jQuery);

View file

@ -0,0 +1,85 @@
<?php
/**
* @file modules/editor/skins/dreditor/lang/en.lang.php
* @author nicetwo
* @brief Dr.Editor
**/
$lang->edit->msg_dr_delete_confirm = 'Do you want to remove selected paragraph?';
$lang->edit->insert_dr_title = 'Please input title';
$lang->edit->richtext_area = 'Richtext Area';
$lang->edit->insert_site_name = 'Please input the name of site';
$lang->edit->insert_explain = 'Please input description';
$lang->edit->text = 'Text';
$lang->edit->link = 'Link';
$lang->edit->blockquote = 'Quote';
$lang->edit->insert_blockquote = 'Please input quote';
$lang->edit->insert_cite = 'You can input the origin source. <a>, <strong>, <em> tags are available.';
$lang->edit->image = 'Image';
$lang->edit->find_image = 'Find Image';
$lang->edit->uploading = 'Uploading...';
$lang->edit->uploading_info = 'You can upload to maximum %sMB';
$lang->edit->uploaded_image = 'User Uploaded Image';
$lang->edit->image_width = 'Image Width';
$lang->edit->resize = 'Resize';
$lang->edit->resize_info = 'A new copy of image in inputted size will be created. Original image will still remain';
$lang->edit->resize_error = 'Please input smaller size than original image size';
$lang->edit->insert_image_explain = 'Please input description. <a>, <strong>, <em> tags are available.';
$lang->edit->mov ='Movie';
$lang->edit->insert_mov = 'Please input multimedia insertion code starts with <object> or <embed>';
$lang->edit->insert_mov_explain = 'Please input description. <a>, <strong>, <em> tags are available.';
$lang->edit->file = 'File';
$lang->edit->file_select = 'Please select a file to upload';
$lang->edit->file_uploadinfo = 'You can upload to maximum %sMB each, %sMB total';
$lang->edit->file_total ='Total <strong class="filecount">{total_filecount}</strong>file(s)';
$lang->edit->insert_file_explain ='Please input description';
$lang->edit->hr = 'HR';
$lang->edit->hr_simple= 'Simple HR';
$lang->edit->title_title = 'Strapline';
$lang->edit->title='Subject';
$lang->edit->title1='Large';
$lang->edit->title2='Medium';
$lang->edit->title3='Small';
$lang->edit->list = 'List';
$lang->edit->list_explain = 'You can change the position or level of items by pressing CTRL+Arrow Keys.';
$lang->edit->toc = 'Index';
$lang->edit->toc_explain ='It makes an index with created straplines, and will be renewed automatically.';
$lang->edit->more = 'More';
$lang->edit->move_button = 'Move Button';
$lang->edit->material = 'Ingredients';
$lang->edit->insert = 'Insert the ingredient to content';
$lang->edit->close_materials = 'Close';
$lang->edit->no_materials = 'There is no writting ingredient.';
$lang->edit->msg_no_selected_object = 'There is no selected object.';
$lang->edit->msg_insert_value = 'Please input the value.';
$lang->edit->help_first_title = '도움말';
$lang->edit->help_shortcut = '단축키';
$lang->edit->help_bug_report = '글쓰기 오류신고';
$lang->edit->help_first_dt_1 = '새 단락 쓰기(1~9, 0, `)';
$lang->edit->help_first_dd_1 = '도구모음 버튼을 클릭함으로써 새 단락 쓰기를 시작할 수 있습니다. 도구모음 버튼에는 배치된 순서대로 왼쪽으로부터 1~9까지 단축키가 할당되어 있습니다. 숫자키 \'0\' 또는 ESC키 바로 아래 위치한 [`] 그레이브(grave) 키를 누르시면 숨겨진 도구모음 버튼을 보거나 토글(toggle)할 수 있습니다.';
$lang->edit->help_first_dt_2 = '단락 선택(Click, Ctrl+Click, Shift+Click)';
$lang->edit->help_first_dd_2 = '클릭 또는 클릭 후 방향키(&uarr;&darr;)를 조작함으로써 원하는 단락을 선택할 수 있습니다. 단일선택(Click)과 다중선택(Ctrl+Click, Shift+Click)이 가능합니다';
$lang->edit->help_first_dt_3 = '단락 편집 및 취소(Enter, Double Click, ESC)';
$lang->edit->help_first_dd_3 = '단락 선택 후 Enter 또는 더블클릭으로 편집할 수 있습니다. ESC키를 이용하여 편집을 취소할 수 있습니다.';
$lang->edit->help_first_dt_4 = '단락 이동(Ctrl+&uarr;&darr;, Click-Drag-Drop)';
$lang->edit->help_first_dd_4 = '단락 선택 후 Ctrl+방향키(&uarr;&darr;)를 조작하거나 \'클릭-드래그-드롭\'으로 이동할 수 있습니다.';
$lang->edit->help_first_dt_5 = '단락 저장 및 삭제(Ctrl+Enter, Del)';
$lang->edit->help_first_dd_5 = '\'확인\'버튼을 누르거나 Ctrl+Enter 명령으로 저장할 수 있습니다. Del키를 이용하여 선택된 단락을 삭제할 수 있습니다.';
$lang->edit->drag_this = '단락을 드래그하여 이동하세요.';
$lang->edit->cmd_new_window = '새창';
$lang->edit->cmd_del = '삭제';
?>

View file

@ -0,0 +1,85 @@
<?php
/**
* @file modules/editor/skins/dreditor/lang/jp.lang.php
* @author sol <sol@ngleader.com> 翻訳:ミニミ
* @brief 段落エディター日本語言語パッケージ
**/
$lang->edit->msg_dr_delete_confirm = '選択した段落を削除して宜しいですか?';
$lang->edit->insert_dr_title = '段落のタイトルを入力して下さい。';
$lang->edit->richtext_area = 'リッチテキストの入力スペース';
$lang->edit->insert_site_name = 'サイト名を入力します。';
$lang->edit->insert_explain = '説明の追加入力が出来ます。';
$lang->edit->text='テキスト';
$lang->edit->link = 'リンク';
$lang->edit->blockquote = '引用';
$lang->edit->insert_blockquote = '引用文を入力して下さい。';
$lang->edit->insert_cite = '出所を入力します。 <a>、<strong>、<em> タグの入力も可能です。';
$lang->edit->image = '画像';
$lang->edit->find_image = '画像選択';
$lang->edit->uploading = 'アップロード中です。';
$lang->edit->uploading_info = '%sMBまでアップロード出来ます。';
$lang->edit->uploaded_image = 'ユーザーアップロード画像';
$lang->edit->image_width = '画像幅';
$lang->edit->resize = '縮小する';
$lang->edit->resize_info = '指定したサイズのコピーを生成し、元の画像は維持されます。';
$lang->edit->resize_error = 'オリジナル画像より小さいサイズを入力して下さい。';
$lang->edit->insert_image_explain = '画像の説明を入力します。 <a>, <strong>, <em> タグの入力も可能です。';
$lang->edit->mov ='動画';
$lang->edit->insert_mov = '<object> または <embed>で始まるマルチメディアのコードを挿入して下さい。';
$lang->edit->insert_mov_explain = '動画の説明を入力します。 <a>, <strong>, <em> タグの入力も可能です。';
$lang->edit->file='ファイル';
$lang->edit->file_select = 'アップロードするファイルを選択して下さい。';
$lang->edit->file_uploadinfo = '1個当り %sMB、全体としては %sMBまでアップロードが出来ます。';
$lang->edit->file_total ='総<strong class="filecount">{total_filecount}</strong>個';
$lang->edit->insert_file_explain ='ファイルの説明を入力します。';
$lang->edit->hr = '区分線';
$lang->edit->hr_simple= '基本水平線';
$lang->edit->title_title='サブタイトル';
$lang->edit->title='タイトル';
$lang->edit->title1='サブタイトル(大)';
$lang->edit->title2='サブタイトル(中)';
$lang->edit->title3='サブタイトル(小)';
$lang->edit->list = 'リスト';
$lang->edit->list_explain = '「CTRL+矢印」を押して、項目の位置や段階を変えることが出来ます。';
$lang->edit->toc = '目次';
$lang->edit->toc_explain ='文書内のサブタイトルをまとめて、目次を自動作成します。';
$lang->edit->more = 'もっと見る';
$lang->edit->move_button = 'ボタン移動';
$lang->edit->material = 'ネタ';
$lang->edit->insert = 'このネタを本文に挿入する';
$lang->edit->close_materials = 'ネタ保存箱を閉じる';
$lang->edit->no_materials = '保存されているネタはありません。';
$lang->edit->msg_no_selected_object = '選択されたものがありません。';
$lang->edit->msg_insert_value = '値を入力して下さい。';
$lang->edit->help_first_title = '도움말';
$lang->edit->help_shortcut = '단축키';
$lang->edit->help_bug_report = '글쓰기 오류신고';
$lang->edit->help_first_dt_1 = '새 단락 쓰기(1~9, 0, `)';
$lang->edit->help_first_dd_1 = '도구모음 버튼을 클릭함으로써 새 단락 쓰기를 시작할 수 있습니다. 도구모음 버튼에는 배치된 순서대로 왼쪽으로부터 1~9까지 단축키가 할당되어 있습니다. 숫자키 \'0\' 또는 ESC키 바로 아래 위치한 [`] 그레이브(grave) 키를 누르시면 숨겨진 도구모음 버튼을 보거나 토글(toggle)할 수 있습니다.';
$lang->edit->help_first_dt_2 = '단락 선택(Click, Ctrl+Click, Shift+Click)';
$lang->edit->help_first_dd_2 = '클릭 또는 클릭 후 방향키(&uarr;&darr;)를 조작함으로써 원하는 단락을 선택할 수 있습니다. 단일선택(Click)과 다중선택(Ctrl+Click, Shift+Click)이 가능합니다';
$lang->edit->help_first_dt_3 = '단락 편집 및 취소(Enter, Double Click, ESC)';
$lang->edit->help_first_dd_3 = '단락 선택 후 Enter 또는 더블클릭으로 편집할 수 있습니다. ESC키를 이용하여 편집을 취소할 수 있습니다.';
$lang->edit->help_first_dt_4 = '단락 이동(Ctrl+&uarr;&darr;, Click-Drag-Drop)';
$lang->edit->help_first_dd_4 = '단락 선택 후 Ctrl+방향키(&uarr;&darr;)를 조작하거나 \'클릭-드래그-드롭\'으로 이동할 수 있습니다.';
$lang->edit->help_first_dt_5 = '단락 저장 및 삭제(Ctrl+Enter, Del)';
$lang->edit->help_first_dd_5 = '\'확인\'버튼을 누르거나 Ctrl+Enter 명령으로 저장할 수 있습니다. Del키를 이용하여 선택된 단락을 삭제할 수 있습니다.';
$lang->edit->drag_this = '단락을 드래그하여 이동하세요.';
$lang->edit->cmd_new_window = '새창';
$lang->edit->cmd_del = '삭제';
?>

View file

@ -0,0 +1,85 @@
<?php
/**
* @file modules/editor/skins/dreditor/lang/ko.lang.php
* @author sol <sol@ngleader.com>
* @brief 단락에디터 언어팩
**/
$lang->edit->msg_dr_delete_confirm = '선택한 단락을 삭제하시겠습니까?';
$lang->edit->insert_dr_title = '단락의 제목을 입력해 주세요';
$lang->edit->richtext_area = '리치 텍스트 쓰기 영역';
$lang->edit->insert_site_name = '사이트 이름을 입력할 수 있습니다';
$lang->edit->insert_explain = '설명을 추가로 입력할 수 있습니다';
$lang->edit->text='텍스트';
$lang->edit->link = '링크';
$lang->edit->blockquote = '인용';
$lang->edit->insert_blockquote = '인용 문구를 입력해 주세요';
$lang->edit->insert_cite = '출처를 입력할 수 있습니다 <a>, <strong>, <em> 태그를 쓸 수 있습니다';
$lang->edit->image = '이미지';
$lang->edit->find_image = '이미지 찾아보기';
$lang->edit->uploading = '업로드 중입니다';
$lang->edit->uploading_info = '%s MB 까지 업로드가 가능 합니다';
$lang->edit->uploaded_image = '사용자 업로드 이미지';
$lang->edit->image_width = '이미지 너비';
$lang->edit->resize = '줄이기';
$lang->edit->resize_info = '지정한 크기의 사본을 만들며 원본은 유지 됩니다';
$lang->edit->resize_error = '원본 이미지보다 작은 크기의 값을 입력하세요';
$lang->edit->insert_image_explain = '이미지의 설명을 입력할 수 있습니다. <a>, <strong>, <em> 태그를 쓸 수 있습니다.';
$lang->edit->mov ='동영상';
$lang->edit->insert_mov = '<object> 또는 <embed>로 시작하는 멀티미디어 삽입 코드를 넣어주세요';
$lang->edit->insert_mov_explain = '동영상의 설명을 입력할 수 있습니다. <a>, <strong>, <em> 태그를 쓸 수 있습니다.';
$lang->edit->file ='파일';
$lang->edit->file_select = '업로드할 파일을 선택해 주세요';
$lang->edit->file_uploadinfo = '개당 %sMB, 모두 합쳐 %sMB 까지 업로드가 가능 합니다';
$lang->edit->file_total ='총 <strong class="filecount">{total_filecount}</strong>개';
$lang->edit->insert_file_explain ='파일의 설명을 입력할 수 있습니다';
$lang->edit->hr = '분리선';
$lang->edit->hr_simple= '단순 가로선';
$lang->edit->title_title='소제목';
$lang->edit->title='제목';
$lang->edit->title1='큰제목';
$lang->edit->title2='중간제목';
$lang->edit->title3='작은제목';
$lang->edit->list = '목록';
$lang->edit->list_explain = 'CTRL+방향키를 누르면 항목의 위치나 단계를 변경할 수 있습니다.';
$lang->edit->toc = '목차';
$lang->edit->toc_explain ='문서 내의 소제목들을 모아 목차로 만들어주며, 자동으로 갱신됩니다.';
$lang->edit->more = '더보기';
$lang->edit->move_button = '버튼이동';
$lang->edit->material = '글감';
$lang->edit->insert = '이 글감을 본문에 넣기';
$lang->edit->close_materials = '글감 보관함 닫기';
$lang->edit->no_materials = '보관된 글감이 없습니다.';
$lang->edit->msg_no_selected_object = '선택된 개체가 없습니다.';
$lang->edit->msg_insert_value = '값을 입력해 주세요.';
$lang->edit->help_first_title = '도움말';
$lang->edit->help_shortcut = '단축키';
$lang->edit->help_bug_report = '글쓰기 오류신고';
$lang->edit->help_first_dt_1 = '새 단락 쓰기(1~9, 0, `)';
$lang->edit->help_first_dd_1 = '도구모음 버튼을 클릭함으로써 새 단락 쓰기를 시작할 수 있습니다. 도구모음 버튼에는 배치된 순서대로 왼쪽으로부터 1~9까지 단축키가 할당되어 있습니다. 숫자키 \'0\' 또는 ESC키 바로 아래 위치한 [`] 그레이브(grave) 키를 누르시면 숨겨진 도구모음 버튼을 보거나 토글(toggle)할 수 있습니다.';
$lang->edit->help_first_dt_2 = '단락 선택(Click, Ctrl+Click, Shift+Click)';
$lang->edit->help_first_dd_2 = '클릭 또는 클릭 후 방향키(&uarr;&darr;)를 조작함으로써 원하는 단락을 선택할 수 있습니다. 단일선택(Click)과 다중선택(Ctrl+Click, Shift+Click)이 가능합니다';
$lang->edit->help_first_dt_3 = '단락 편집 및 취소(Enter, Double Click, ESC)';
$lang->edit->help_first_dd_3 = '단락 선택 후 Enter 또는 더블클릭으로 편집할 수 있습니다. ESC키를 이용하여 편집을 취소할 수 있습니다.';
$lang->edit->help_first_dt_4 = '단락 이동(Ctrl+&uarr;&darr;, Click-Drag-Drop)';
$lang->edit->help_first_dd_4 = '단락 선택 후 Ctrl+방향키(&uarr;&darr;)를 조작하거나 \'클릭-드래그-드롭\'으로 이동할 수 있습니다.';
$lang->edit->help_first_dt_5 = '단락 저장 및 삭제(Ctrl+Enter, Del)';
$lang->edit->help_first_dd_5 = '\'확인\'버튼을 누르거나 Ctrl+Enter 명령으로 저장할 수 있습니다. Del키를 이용하여 선택된 단락을 삭제할 수 있습니다.';
$lang->edit->drag_this = '단락을 드래그하여 이동하세요.';
$lang->edit->cmd_new_window = '새창';
$lang->edit->cmd_del = '삭제';
?>

View file

@ -0,0 +1,85 @@
<?php
/**
* @file modules/editor/skins/dreditor/lang/vi.lang.php
* @author sol <sol@ngleader.com>
* @brief 단락에디터 언어팩
**/
$lang->edit->msg_dr_delete_confirm = 'Bạn có muốn xóa đoạn văn bản đã chọn?';
$lang->edit->insert_dr_title = 'Xin hãy nhập tiêu đề.';
$lang->edit->richtext_area = 'Định dạng khu vực viết văn bản';
$lang->edit->insert_site_name = 'Tên trang Web.';
$lang->edit->insert_explain = 'Mô tả cho trang Web.';
$lang->edit->text='Văn bản';
$lang->edit->link = 'Liên kết';
$lang->edit->blockquote = 'Trích dẫn';
$lang->edit->insert_blockquote = 'Hãy nhập văn bản trích dẫn.';
$lang->edit->insert_cite = 'Bạn có thể sử dụng mã <a>, <strong>, <em> cho Tag.';
$lang->edit->image = 'Hình ảnh';
$lang->edit->find_image = 'Tìm hình ảnh';
$lang->edit->uploading = 'Đang Upload ...';
$lang->edit->uploading_info = 'Dung lượng tối đa %s MB';
$lang->edit->uploaded_image = 'Người Upload';
$lang->edit->image_width = 'Độ rộng';
$lang->edit->resize = 'Giảm kích thước';
$lang->edit->resize_info = 'Có thể giảm kích thước cho phù hợp với giao diện.';
$lang->edit->resize_error = 'Hãy nhập kích thước nhỏ hơn kích thước ban đầu.';
$lang->edit->insert_image_explain = 'Hãy nhập mô tả cho hình ảnh. Bạn có thể sử dụng <a>, <strong>, <em> cho mô tả này.';
$lang->edit->mov ='Video';
$lang->edit->insert_mov = 'Hãy nhập mã <object> và <embed> cho Media muốn thêm vào bài viết của bạn.';
$lang->edit->insert_mov_explain = 'Hãy nhập mô tả cho Media. Bạn có thể sử dụng <a>, <strong>, <em> cho mô tả này.';
$lang->edit->file='Đính kèm';
$lang->edit->file_select = 'Chọn File muốn Upload';
$lang->edit->file_uploadinfo = 'Dung lượng tối đa %sMB/File, Tổng dung lượng được phép Upload %sMB.';
$lang->edit->file_total ='Tổng số <strong class="filecount">{total_filecount}</strong> File';
$lang->edit->insert_file_explain ='Nhập mô tả cho File.';
$lang->edit->hr = 'Tách đoạn';
$lang->edit->hr_simple= 'Đường kẻ đơn giản';
$lang->edit->title_title='Tiêu đề';
$lang->edit->title='Tiêu đề';
$lang->edit->title1='Tiêu đề lớn';
$lang->edit->title2='Tiêu đề trung bình';
$lang->edit->title3='Tiêu đề nhỏ';
$lang->edit->list = 'Danh sách';
$lang->edit->list_explain = 'Nhấn tổ hợp phím Ctrl+Phím mũi tên, bạn có thể thay đổi vị trí của các mục.';
$lang->edit->toc = 'Nội dung';
$lang->edit->toc_explain ='Nếu tạo một nhóm các nội dung, tiêu đề của từng đoạn sẽ tự động được tạo.';
$lang->edit->material = 'Thành phần';
$lang->edit->insert = 'Chèn thành phần vào bài viết.';
$lang->edit->close_materials = 'Đóng';
$lang->edit->more = 'Xem thêm';
$lang->edit->move_button = 'Chuyển nút bấm';
$lang->edit->no_materials = 'Không có bài viết được lưu trữ.';
$lang->edit->msg_no_selected_object = 'Không có mục nào được chọn.';
$lang->edit->msg_insert_value = 'Xin hãy nhập giá trị.';
$lang->edit->help_first_title = 'HƯỚNG DẪN';
$lang->edit->help_shortcut = 'Phím tắt';
$lang->edit->help_bug_report = '[BÁO LỖI]';
$lang->edit->help_first_dt_1 = '* Tạo văn bản mới (1~9, 0, `)';
$lang->edit->help_first_dd_1 = 'Bằng cách nhấn vào một nút trên thanh công cụ tương ứng với các số trên bàn phím bạn có thể bắt đầu viết một đoạn văn mới. Các phím tắt của thanh công cụ được đặt theo thứ tự [1 ~ 9] từ trái qua phải. Phím số [0] và phím [`] sẽ mở thêm và đóng lại những phím chức năng khác ẩn trong thanh công cụ, phím [ESC] sẽ đóng lại phiên làm việc hiện tại.';
$lang->edit->help_first_dt_2 = '* Lựa chọn đoạn văn bản (Chuột trái, Ctrl+Chuột trái, Shift+Chuột trái)';
$lang->edit->help_first_dd_2 = 'Bấm hoặc sau khi bấm chuột trái kết hợp với phím mũi tên (&uarr;&darr;) sẽ là chức năng chọn đoạn văn bản. Cho phép chọn một khu vực duy nhất (Chuột trái) và chọn toàn bộ (Ctrl+Chuột trái, Shift+Chuột trái).';
$lang->edit->help_first_dt_3 = '* Sửa và loại bỏ (Enter, Hai lần Chuột trái, ESC)';
$lang->edit->help_first_dd_3 = 'Sau khi đã chọn xong đoạn văn bản, nhấn [ENTER] hoặc bấm hai lần chuột trái để sửa văn bản. Nhấn [ESC] để loại bỏ.';
$lang->edit->help_first_dt_4 = '* Di chuyển (Ctrl+&uarr;&darr;, Chuột trái-Kéo-Thả)';
$lang->edit->help_first_dd_4 = 'Sau khi chọn xong đoạn văn bản, nhấn Ctrl+Phím mũi tên(&uarr;&darr;) hoặc \'Chuột trái-Kéo-Thả\' để di chuyển đoạn văn bản.';
$lang->edit->help_first_dt_5 = '* Lưu và Xóa(Ctrl+Enter, Del)';
$lang->edit->help_first_dd_5 = 'Bấm chuột vào biểu tượng lưu [v] trên khung soạn thảo hoặc bấm tổ hợp \'Ctrl+Enter\' để lưu văn bản. Bấm \'Loại bỏ\' hoặc nhấn [Del] để xóa văn bản.';
$lang->edit->drag_this = 'Hãy kéo chuột để di chuyển đoạn văn bản.';
$lang->edit->cmd_new_window = 'Trang mới';
$lang->edit->cmd_del = 'Xóa';
?>

View file

@ -0,0 +1,82 @@
<?php
/**
* @file modules/editor/skins/dreditor/lang/zh-CN.lang.php
* @author sol <sol@ngleader.com> 翻译guny(space.china@gmail.com)
* @brief 段落编辑器简体中文语言包
**/
$lang->edit->msg_dr_delete_confirm = '确定要删除所选锻炼吗?';
$lang->edit->insert_dr_title = '请输入段落标题。';
$lang->edit->richtext_area = '富编辑器编辑区';
$lang->edit->insert_site_name = '在此可以输入网站名称。';
$lang->edit->insert_explain = '在此可以输入简单说明。';
$lang->edit->text='文本';
$lang->edit->link = '链接';
$lang->edit->blockquote = '引用';
$lang->edit->insert_blockquote = '请输入要引用的内容。';
$lang->edit->insert_cite = '在此可以输入引用出处(可用HTML标签<a>, <strong>, <em>)。';
$lang->edit->image = '图片';
$lang->edit->find_image = '上传图片';
$lang->edit->uploading = '正在上传图片…';
$lang->edit->uploading_info = '上传限制:%s MB';
$lang->edit->uploaded_image = '用户上传的图片';
$lang->edit->image_width = '图片宽度';
$lang->edit->resize = '缩小';
$lang->edit->resize_info = '创建指定大小的复件并保留原图。';
$lang->edit->resize_error = '请输入比原图宽度小的值。';
$lang->edit->insert_image_explain = '在此可以输入简单图片说明(可用HTML标签<a>, <strong>, <em>)。';
$lang->edit->mov ='视频';
$lang->edit->insert_mov = '请输入<object>或<embed>标签开头的视频代码。';
$lang->edit->insert_mov_explain = '在此可以输入简单视频描述(可用HTML标签<a>, <strong>, <em>)。';
$lang->edit->file='附件';
$lang->edit->file_select = '选择上传附件';
$lang->edit->file_uploadinfo = '每个附件限制大小:%sMB, 每次上传限制:%sMB';
$lang->edit->file_total ='总计<strong class="filecount">{total_filecount}</strong>个';
$lang->edit->insert_file_explain ='在此可输入文件说明。';
$lang->edit->hr = '分割线';
$lang->edit->hr_simple= '简单分割线';
$lang->edit->title_title='内标题';
$lang->edit->title='标题';
$lang->edit->title1='大标题';
$lang->edit->title2='中标题';
$lang->edit->title3='小标题';
$lang->edit->list = '列表';
$lang->edit->list_explain = '可利用CTRL+方向键改变项目循序及嵌套级别。';
$lang->edit->toc = '目录';
$lang->edit->toc_explain ='可以把日志文本内的小标题制成目录,并且每当添加一个内标题此目录就会自动更新。';
$lang->edit->more = '更多';
$lang->edit->move_button = '移动组件';
$lang->edit->no_materials = '暂无保存的素材。';
$lang->edit->msg_no_selected_object = '请选择对象。';
$lang->edit->msg_insert_value = '请输入相应的值。';
$lang->edit->help_first_title = '도움말';
$lang->edit->help_shortcut = '단축키';
$lang->edit->help_bug_report = '글쓰기 오류신고';
$lang->edit->help_first_dt_1 = '새 단락 쓰기(1~9, 0, `)';
$lang->edit->help_first_dd_1 = '도구모음 버튼을 클릭함으로써 새 단락 쓰기를 시작할 수 있습니다. 도구모음 버튼에는 배치된 순서대로 왼쪽으로부터 1~9까지 단축키가 할당되어 있습니다. 숫자키 \'0\' 또는 ESC키 바로 아래 위치한 [`] 그레이브(grave) 키를 누르시면 숨겨진 도구모음 버튼을 보거나 토글(toggle)할 수 있습니다.';
$lang->edit->help_first_dt_2 = '단락 선택(Click, Ctrl+Click, Shift+Click)';
$lang->edit->help_first_dd_2 = '클릭 또는 클릭 후 방향키(&uarr;&darr;)를 조작함으로써 원하는 단락을 선택할 수 있습니다. 단일선택(Click)과 다중선택(Ctrl+Click, Shift+Click)이 가능합니다';
$lang->edit->help_first_dt_3 = '단락 편집 및 취소(Enter, Double Click, ESC)';
$lang->edit->help_first_dd_3 = '단락 선택 후 Enter 또는 더블클릭으로 편집할 수 있습니다. ESC키를 이용하여 편집을 취소할 수 있습니다.';
$lang->edit->help_first_dt_4 = '단락 이동(Ctrl+&uarr;&darr;, Click-Drag-Drop)';
$lang->edit->help_first_dd_4 = '단락 선택 후 Ctrl+방향키(&uarr;&darr;)를 조작하거나 \'클릭-드래그-드롭\'으로 이동할 수 있습니다.';
$lang->edit->help_first_dt_5 = '단락 저장 및 삭제(Ctrl+Enter, Del)';
$lang->edit->help_first_dd_5 = '\'확인\'버튼을 누르거나 Ctrl+Enter 명령으로 저장할 수 있습니다. Del키를 이용하여 선택된 단락을 삭제할 수 있습니다.';
$lang->edit->drag_this = '단락을 드래그하여 이동하세요.';
$lang->edit->cmd_new_window = '새창';
$lang->edit->cmd_del = '삭제';
?>

View file

@ -0,0 +1,85 @@
<?php
/**
* @file modules/editor/skins/dreditor/lang/zh-TW.lang.php
* @author sol <sol@ngleader.com> 翻譯royallin
* @brief 段落編輯器正體中文語言
**/
$lang->edit->msg_dr_delete_confirm = '想要移除所選擇的段落?';
$lang->edit->insert_dr_title = '請輸入標題';
$lang->edit->richtext_area = '所見及得區域';
$lang->edit->insert_site_name = '請輸入網站名稱';
$lang->edit->insert_explain = '請輸入說明';
$lang->edit->text = '文字';
$lang->edit->link = '連結';
$lang->edit->blockquote = '引用';
$lang->edit->insert_blockquote = '請輸入引用';
$lang->edit->insert_cite = '請輸入來源,可輸入 <a>, <strong>, <em> 等標籤。';
$lang->edit->image = '圖片';
$lang->edit->find_image = '選擇圖片';
$lang->edit->uploading = '上傳中...';
$lang->edit->uploading_info = '最大可上傳 %sMB';
$lang->edit->uploaded_image = '已上傳的圖片';
$lang->edit->image_width = '圖片寬度';
$lang->edit->resize = '圖片縮放';
$lang->edit->resize_info = '輸入要建立的圖片大小,原始圖片將會保留。';
$lang->edit->resize_error = '請輸入比原始圖片要小的數值';
$lang->edit->insert_image_explain = '請輸入圖片簡介。可使用 <a>, <strong>, <em> 等標籤。';
$lang->edit->mov ='影片';
$lang->edit->insert_mov = '請輸入 <object> 或 <embed> 開頭的影片原始碼。';
$lang->edit->insert_mov_explain = '請輸入影片簡介。可使用 <a>, <strong>, <em> 等標籤。';
$lang->edit->file = '檔案';
$lang->edit->file_select = '請選擇要上傳的檔案';
$lang->edit->file_uploadinfo = '每個檔案上傳的大小 %s MB總共 %s MB';
$lang->edit->file_total ='總共 <strong class="filecount">{total_filecount}</strong>個檔案';
$lang->edit->insert_file_explain ='請輸入檔案簡介。';
$lang->edit->hr = 'HR';
$lang->edit->hr_simple= 'Simple HR';
$lang->edit->title_title = 'Strapline';
$lang->edit->title='Subject';
$lang->edit->title1='大';
$lang->edit->title2='中';
$lang->edit->title3='小';
$lang->edit->list = '列表';
$lang->edit->list_explain = 'You can change the position or level of items by pressing CTRL+Arrow Keys.';
$lang->edit->toc = 'Index';
$lang->edit->toc_explain ='It makes an index with created straplines, and will be renewed automatically.';
$lang->edit->more = '更多';
$lang->edit->move_button = '移動';
$lang->edit->material = '素材';
$lang->edit->insert = '插入素材到內容中';
$lang->edit->close_materials = '關閉';
$lang->edit->no_materials = 'There is no writting ingredient.';
$lang->edit->msg_no_selected_object = 'There is no selected object.';
$lang->edit->msg_insert_value = '請輸入數值';
$lang->edit->help_first_title = '使用說明';
$lang->edit->help_shortcut = '快速鍵';
$lang->edit->help_bug_report = '錯誤回報';
$lang->edit->help_first_dt_1 = '快速鍵(1~9, 0, `)';
$lang->edit->help_first_dd_1 = '藉由點選工具列的按鈕可以編寫新的內容。 工具列的快速鍵是鍵盤的 1~9 數字鍵。 數字鍵 \'0\' 或是 ESC 鍵底下的 [`] 波浪鍵(grave) 可隱藏、顯示及切換(toggle)工具列。';
$lang->edit->help_first_dt_2 = '段落選擇(Click, Ctrl+Click, Shift+Click)';
$lang->edit->help_first_dd_2 = '利用滑鼠選取或方向鍵(&uarr;&darr;)移動的方式選取想要的段落。 可單選(Click)或複選(Ctrl+Click, Shift+Click)段落。';
$lang->edit->help_first_dt_3 = '段落編輯、取消(Enter, Double Click, ESC)';
$lang->edit->help_first_dd_3 = '按 Enter 鍵或點兩下段落就可進行編輯。按 ESC 鍵可取消編輯動作。';
$lang->edit->help_first_dt_4 = '段落移動(Ctrl+&uarr;&darr;, Click-Drag-Drop)';
$lang->edit->help_first_dd_4 = '選取段落後按 Ctrl+方向鍵(&uarr;&darr;)可進行操作,或是用滑鼠拖曳的方式進行操作。';
$lang->edit->help_first_dt_5 = '段落儲存、刪除(Ctrl+Enter, Del)';
$lang->edit->help_first_dd_5 = '按\'確認\'按鈕或是 Ctrl+Enter 可儲存內容。按 Del 鍵可刪除所選取的段落。';
$lang->edit->drag_this = '將段落移到';
$lang->edit->cmd_new_window = '開新視窗';
$lang->edit->cmd_del = '刪除';
?>

View file

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">Dr.Editor Skin</title>
<title xml:lang="en">Dr.Editor Skin</title>
<title xml:lang="vi">Dr.Editor Skin</title>
<title xml:lang="zh-CN">Dr.Editor Skin</title>
<title xml:lang="zh-TW">Dr.Editor Skin</title>
<title xml:lang="jp">Dr.Editor Skin</title>
<description xml:lang="ko">
Dr.Editor
</description>
<description xml:lang="en">
Dr.Editor
</description>
<description xml:lang="vi">
Dr.Editor
</description>
<description xml:lang="zh-CN">
Dr.Editor
</description>
<description xml:lang="zh-TW">
Dr.Editor
</description>
<description xml:lang="jp">
Dr.Editor
</description>
<version>1.3.0</version>
<date>2010-04-30</date>
<author email_address="" link="http://dreditor.xpressengine.net">
<name xml:lang="ko">NHN</name>
<name xml:lang="en">NHN</name>
<name xml:lang="vi">NHN</name>
<name xml:lang="zh-CN">NHN</name>
<name xml:lang="zh-TW">NHN</name>
<name xml:lang="jp">NHN</name>
</author>
<colorset>
<color name="white">
<title xml:lang="ko">하얀색(기본)</title>
<title xml:lang="jp">白(デフォルト)</title>
<title xml:lang="zh-CN">白色(基本)</title>
<title xml:lang="en">White (default)</title>
<title xml:lang="vi">White (Mặc định)</title>
<title xml:lang="es">Blanco (por defecto)</title>
<title xml:lang="zh-TW">白色(預設)</title>
</color>
<color name="black">
<title xml:lang="ko">검은색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Black</title>
<title xml:lang="vi">Black</title>
<title xml:lang="ru">Черного</title>
<title xml:lang="es">Negro</title>
<title xml:lang="zh-CN">黑色</title>
<title xml:lang="zh-TW">黑色</title>
</color>
<color name="white_texteditor">
<title xml:lang="ko">하얀색 텍스트편집기(자동 줄 바꿈)</title>
<title xml:lang="jp">白色テキストエディター(自動に改行を入れる)</title>
<title xml:lang="en">White Text Editor(Auto Line Break)</title>
<title xml:lang="vi">White Text Editor(Tự động giãn dòng)</title>
<title xml:lang="ru">White Text Editor(Auto Line Break)</title>
<title xml:lang="es">Editor de texto en blanco (Auto de línea)</title>
<title xml:lang="zh-CN">白色文本编辑器(自动换行)</title>
<title xml:lang="zh-TW">白色文字編輯器(自動換行)</title>
</color>
<color name="black_texteditor">
<title xml:lang="ko">검은색 텍스트편집기(자동 줄 바꿈)</title>
<title xml:lang="jp">黒色テキストエディター(自動に改行を入れる)</title>
<title xml:lang="en">Black Text Editor(Auto Line Break)</title>
<title xml:lang="vi">Black Text Editor(Tự động giãn dòng)</title>
<title xml:lang="ru">Black Text Editor(Auto Line Break)</title>
<title xml:lang="es">Editor de texto negro (salto de línea automático)</title>
<title xml:lang="zh-CN">黑色文本编辑器(自动换行)</title>
<title xml:lang="zh-TW">黑色文字編輯器(自動換行)</title>
</color>
<color name="white_text_usehtml">
<title xml:lang="ko">하얀색 텍스트편집기(HTML 사용)</title>
<title xml:lang="jp">白色テキストエディター(HTMLタグを使う)</title>
<title xml:lang="en">White Text Editor(Use HTML)</title>
<title xml:lang="vi">White Text Editor(Sử dụng HTML)</title>
<title xml:lang="ru">White Text Editor(Use HTML)</title>
<title xml:lang="es">Editor de texto en blanco (Uso de HTML)</title>
<title xml:lang="zh-CN">白色文本编辑器(使用HTML)</title>
<title xml:lang="zh-TW">白色文字編輯器(使用HTML)</title>
</color>
<color name="black_text_usehtml">
<title xml:lang="ko">검은색 텍스트편집기(HTML 사용)</title>
<title xml:lang="jp">黒色テキストエディター(HTMLタグを使う)</title>
<title xml:lang="en">Black Text Editor(Use HTML)</title>
<title xml:lang="vi">Black Text Editor(Sử dụng HTML)</title>
<title xml:lang="ru">Black Text Editor(Use HTML)</title>
<title xml:lang="es">Editor de texto negro (Uso de HTML)</title>
<title xml:lang="zh-CN">黑色文本编辑器(使用HTML)</title>
<title xml:lang="zh-TW">黑色文字編輯器(使用HTML)</title>
</color>
<color name="white_text_nohtml">
<title xml:lang="ko">하얀색 텍스트편집기(HTML 사용 안함)</title>
<title xml:lang="jp">白色テキストエディター(HTMLタグを使わない)</title>
<title xml:lang="en">White Text Editor(No HTML)</title>
<title xml:lang="vi">White Text Editor(Không sử dụng HTML)</title>
<title xml:lang="ru">White Text Editor(No HTML)</title>
<title xml:lang="es">Editor de texto en blanco (no HTML)</title>
<title xml:lang="zh-CN">白色文本编辑器(不使用HTML)</title>
<title xml:lang="zh-TW">白色文字編輯器(不使用HTML)</title>
</color>
<color name="black_text_nohtml">
<title xml:lang="ko">검은색 텍스트편집기(HTML 사용 안함)</title>
<title xml:lang="jp">黒色テキストエディター(HTMLタグを使わない)</title>
<title xml:lang="en">Black Text Editor(No HTML)</title>
<title xml:lang="vi">Black Text Editor(Không sử dụng HTML)</title>
<title xml:lang="ru">Black Text Editor(No HTML)</title>
<title xml:lang="es">Editor de texto negro (no HTML)</title>
<title xml:lang="zh-CN">黑色文本编辑器(不使用HTML)</title>
<title xml:lang="zh-TW">黑色文字編輯器(不使用HTML)</title>
</color>
</colorset>
</skin>

View file

@ -5519,127 +5519,42 @@ xe.XE_XHTMLFormatter = $.Class({
// remove all useless tag and enclose tags
regex = /<(\/)?([:\w\/-]+)(.*?)>/ig;
sContent = sContent.replace(regex, function(m0,m1,m2,m3){
sContent = sContent.replace(regex, function(m0,closing,tag,attrs){
var m3s = [];
var state = '';
m1 = m1 || '';
m2 = m2.toLowerCase();
m3 = $.trim(m3 || '');
closing = closing || '';
tag = tag.toLowerCase();
attrs = $.trim(attrs || '');
if (!m1) {
if ($.inArray(m2,lonely_tags) >= 0) {
var len = m3.length;
if (m2 == 'br') m3 = '';
if (!m3 || m3.substring(len-1,len) != '/') m3 += '/';
if (!closing) {
if ($.inArray(tag,lonely_tags) >= 0) {
var len = attrs.length;
if (tag == 'br') attrs = '';
if (!attrs || attrs.substring(len-1,len) != '/') attrs += '/';
return '<'+m2+' '+m3+'>';
}
/*
if (replace_tags[m2]) {
stack.push({tag:m2, state:'deleted'});
m2 = replace_tags[m2];
state = 'inserted';
} else if (m2 == 'font') {
stack.push({tag:m2, state:'deleted'});
m2 = 'span';
m3s = [];
if (regex_font_color.test(m3)) m3s.push('color:'+(RegExp.$1||RegExp.$2||RegExp.$3)+';');
if (regex_font_face.test(m3)) m3s.push('font-family:'+(RegExp.$1||RegExp.$2||RegExp.$3)+';');
m3 = m3s.length?'style="'+m3s.join('')+'"':'';
state = 'inserted';
} else if (m2 == 'center') {
stack.push({tag:m2, state:'deleted'});
m2 = 'div'
m3 = 'style="text-align:center"';
state = 'inserted';
} else if (m2 == 'span') {
var style = '';
if (!m3) {
stack.push({tag:m3, state:'deleted'});
return '';
}
if (regex_style.test(m3)) {
var tmpstack = [];
var tmptag = '';
style = RegExp.$1||RegExp.$2||RegExp.$3;
m3 = m3.replace(regex_style, '');
if (regex_font_weight.test(style)) {
if (RegExp.$1 == 'bold' || RegExp.$1 == 'bolder') {
style = style.replace(regex_font_weight, '');
tmpstack.push({tag:'strong', state:'inserted'});
tmptag += '<strong>';
}
}
if (regex_font_style.test(style)) {
style = style.replace(regex_font_style, '');
tmpstack.push({tag:'em', state:'inserted'});
tmptag += '<em>';
}
if (regex_font_decoration.test(style)) {
var deco_css = ' '+RegExp.$1.toLowerCase()+' ';
if (deco_css.indexOf('underline ') > 0) {
deco_css = deco_css.replace('underline ', '');
tmpstack.push({tag:'u', state:'inserted'});
tmptag += '<u>';
}
if (deco_css.indexOf('line-through ') > 0) {
deco_css = deco_css.replace('line-through ', '');
tmpstack.push({tag:'del', state:'inserted'});
tmptag += '<del>';
}
deco_css = $.trim(deco_css);
style = style.replace(regex_font_decoration, (deco_css?'text-decoration:'+deco_css+';':''));
}
style = $.trim(style);
stack.push({tag:m2, state:(!m3&&!style?'deleted':'')});
stack = stack.concat(tmpstack);
return (!m3&&!style?'':'<span '+m3+' style="'+style+'">')+tmptag;
}
return '<'+tag+' '+$.trim(attrs)+'>';
} else {
state = ($.inArray(m2,allow_tags) < 0)?'deleted':'';
if (state == 'deleted') return '';
stack[stack.length] = {tag:tag, state:state};
}
*/
stack.push({tag:m2, state:state});
} else {
var tags = [], t = '';
// remove unnecessary closing tag
if (!stack.length) return '';
do {
t = stack.pop();
if (t.state != 'inserted' && t.tag != m2) {
stack.push(t);
return tags.join('');
}
if (t.tag != tag) continue;
if (t.state != 'deleted') tags.push('</'+t.tag+'>');
} while(stack.length && t.tag != m2);
} while(stack.length && t.tag != tag);
return tags.join('');
}
return '<'+m1+m2+(m3?' '+m3:'')+'>';
return '<'+closing+tag+(attrs?' '+attrs:'')+'>';
});
/*
if (stack.length) {
var t = '';
@ -5648,6 +5563,7 @@ xe.XE_XHTMLFormatter = $.Class({
if (t.state != 'deleted') sContent += '</'+t.tag+'>';
} while(stack.length);
}
*/
return sContent;
},

View file

@ -307,4 +307,4 @@ xe.XE_Preview = jQuery.Class({
$ON_EVENT_PREVIEW : function() {
// TODO : 버튼이 눌렸을 때의 동작 정의
}
});
});