테이블 편집기능 추가

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6116 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2009-04-15 08:11:20 +00:00
parent 9e20111ca9
commit 47fc1bff85
6 changed files with 954 additions and 901 deletions

View file

@ -18,7 +18,7 @@
.xpress-editor li{list-style:none;} .xpress-editor li{list-style:none;}
/* Layout Selector */ /* Layout Selector */
.xpress-editor{ position:relative; background-color:transparent;} .xpress-editor{ position:relative; background:#fff;}
.xpress-editor #smart_content{ position:relative; clear:both; margin:0 0 10px 0; border:1px solid #c2c2c2; *zoom:1;} .xpress-editor #smart_content{ position:relative; clear:both; margin:0 0 10px 0; border:1px solid #c2c2c2; *zoom:1;}
.xpress-editor #smart_footer{ position:relative; text-align:center; padding:10px 0;} .xpress-editor #smart_footer{ position:relative; text-align:center; padding:10px 0;}
@ -51,18 +51,18 @@
.xpress-editor.black .tool{ background:#111 url(../img/bg_tool.black.gif) repeat-x left bottom; } .xpress-editor.black .tool{ background:#111 url(../img/bg_tool.black.gif) repeat-x left bottom; }
.xpress-editor .tool:after{ content:""; display:block; clear:both;} .xpress-editor .tool:after{ content:""; display:block; clear:both;}
.xpress-editor .tool ul{ position:relative; overflow:visible; float:left; margin:0 5px 4px 0; z-index:2;} .xpress-editor .tool ul{ position:relative; overflow:visible; float:left; margin:0 5px 2px 0; z-index:2;}
.xpress-editor .tool ul.action{ width:43px;} .xpress-editor .tool ul.action{ width:43px;}
.xpress-editor .tool ul.type{ width:auto; white-space:nowrap;} .xpress-editor .tool ul.type{ width:auto; white-space:nowrap;}
.xpress-editor .tool ul.style{ width:169px; z-index:5;} .xpress-editor .tool ul.style{ width:169px; z-index:6;}
.xpress-editor .tool ul.paragraph{ width:169px; z-index:4;} .xpress-editor .tool ul.paragraph{ width:169px; z-index:5;}
.xpress-editor .tool ul.extra1{ width:111px; z-index:3;} .xpress-editor .tool ul.extra1{ width:90px; z-index:4;}
.xpress-editor .tool ul.table{ width:85px; z-index:3;}
.xpress-editor .tool ul.extra2{ width:auto; z-index:2;} .xpress-editor .tool ul.extra2{ width:auto; z-index:2;}
.xpress-editor .tool ul.extra3{ float:right; width:auto; z-index:1; margin-right:1px;} .xpress-editor .tool ul.extra3{ float:right; width:auto; z-index:1; margin-right:1px;}
.xpress-editor .tool ul.extra3 li{ margin-right:4px;} .xpress-editor .tool ul.extra3 li{ margin-right:4px;}
.xpress-editor .tool li{ position:relative; float:left;} .xpress-editor .tool li{ position:relative; float:left;}
.xpress-editor .tool li button{ width:21px; height:21px; background:url(../img/btn_set.gif) no-repeat 0 0; vertical-align:top;} .xpress-editor .tool li button{ width:21px; height:21px; background:url(../img/btn_set.gif) no-repeat 0 0; vertical-align:top;}
.xpress-editor.black .tool li button{ width:21px; height:21px; background:url(../img/btn_set.black.gif) no-repeat 0 0; vertical-align:top;}
.xpress-editor .tool li button span{ position:absolute; top:0; left:0; width:0; height:0; overflow:hidden; visibility:hidden;} .xpress-editor .tool li button span{ position:absolute; top:0; left:0; width:0; height:0; overflow:hidden; visibility:hidden;}
.xpress-editor .tool li.extensions span.exButton, .xpress-editor .tool li.extensions span.exButton,
@ -111,9 +111,12 @@
.xpress-editor .tool li.indent button{ background-position:-360px 0;} .xpress-editor .tool li.indent button{ background-position:-360px 0;}
.xpress-editor .tool li.blockquote button{ width:22px; background-position:-381px 0;} .xpress-editor .tool li.blockquote button{ width:22px; background-position:-381px 0;}
.xpress-editor .tool li.url button{ width:26px; background-position:-403px 0;} .xpress-editor .tool li.url button{ width:26px; background-position:-403px 0;}
.xpress-editor .tool li.table button{ background-position:-429px 0;} .xpress-editor .tool li.character button{ background-position:-429px 0;}
.xpress-editor .tool li.character button{ background-position:-450px 0;} .xpress-editor .tool li.find button{ background-position:-450px 0;}
.xpress-editor .tool li.find button{ background-position:-471px 0;} .xpress-editor .tool li.table button{ width:22px; background-position:-471px 0;}
.xpress-editor .tool li.merge button{ background-position:-493px 0;}
.xpress-editor .tool li.splitCol button{ background-position:-514px 0;}
.xpress-editor .tool li.splitRow button{ background-position:-535px 0;}
.xpress-editor .tool li.extensions span{ background-position:0 0;} .xpress-editor .tool li.extensions span{ background-position:0 0;}
.xpress-editor .tool li.extensions span button{ background-position:right 0;} .xpress-editor .tool li.extensions span button{ background-position:right 0;}
.xpress-editor .tool li.html span{ background-position:0 0;} .xpress-editor .tool li.html span{ background-position:0 0;}
@ -142,9 +145,12 @@
.xpress-editor .tool li.indent button.hover{ background-position:-360px -21px;} .xpress-editor .tool li.indent button.hover{ background-position:-360px -21px;}
.xpress-editor .tool li.blockquote button.hover{ width:22px; background-position:-381px -21px;} .xpress-editor .tool li.blockquote button.hover{ width:22px; background-position:-381px -21px;}
.xpress-editor .tool li.url button.hover{ width:26px; background-position:-403px -21px;} .xpress-editor .tool li.url button.hover{ width:26px; background-position:-403px -21px;}
.xpress-editor .tool li.table button.hover{ background-position:-429px -21px;} .xpress-editor .tool li.character button.hover{ background-position:-429px -21px;}
.xpress-editor .tool li.character button.hover{ background-position:-450px -21px;} .xpress-editor .tool li.find button.hover{ background-position:-450px -21px;}
.xpress-editor .tool li.find button.hover{ background-position:-471px -21px;} .xpress-editor .tool li.table button.hover{ width:22px; background-position:-471px -21px;}
.xpress-editor .tool li.merge button.hover{ background-position:-493px -21px;}
.xpress-editor .tool li.splitCol button.hover{ background-position:-514px -21px;}
.xpress-editor .tool li.splitRow button.hover{ background-position:-535px -21px;}
.xpress-editor .tool li.extensions span.hover{ background-position:0 -21px;} .xpress-editor .tool li.extensions span.hover{ background-position:0 -21px;}
.xpress-editor .tool li.extensions span.hover button{ background-position:right -21px;} .xpress-editor .tool li.extensions span.hover button{ background-position:right -21px;}
.xpress-editor .tool li.html span.hover{ background-position:0 -21px;} .xpress-editor .tool li.html span.hover{ background-position:0 -21px;}
@ -173,9 +179,12 @@
.xpress-editor .tool li.indent button.active{ background-position:-360px -42px;} .xpress-editor .tool li.indent button.active{ background-position:-360px -42px;}
.xpress-editor .tool li.blockquote button.active{ width:22px; background-position:-381px -42px;} .xpress-editor .tool li.blockquote button.active{ width:22px; background-position:-381px -42px;}
.xpress-editor .tool li.url button.active{ width:26px; background-position:-403px -42px;} .xpress-editor .tool li.url button.active{ width:26px; background-position:-403px -42px;}
.xpress-editor .tool li.table button.active{ background-position:-429px -42px;} .xpress-editor .tool li.character button.active{ background-position:-429px -42px;}
.xpress-editor .tool li.character button.active{ background-position:-450px -42px;} .xpress-editor .tool li.find button.active{ background-position:-450px -42px;}
.xpress-editor .tool li.find button.active{ background-position:-471px -42px;} .xpress-editor .tool li.table button.active{ width:22px; background-position:-471px -42px;}
.xpress-editor .tool li.merge button.active{ background-position:-493px -42px;}
.xpress-editor .tool li.splitCol button.active{ background-position:-514px -42px;}
.xpress-editor .tool li.splitRow button.active{ background-position:-535px -42px;}
.xpress-editor .tool li.extensions span.active{ background-position:0 -42px;} .xpress-editor .tool li.extensions span.active{ background-position:0 -42px;}
.xpress-editor .tool li.extensions span.active button{ background-position:right -42px;} .xpress-editor .tool li.extensions span.active button{ background-position:right -42px;}
.xpress-editor .tool li.html span.active{ background-position:0 -42px;} .xpress-editor .tool li.html span.active{ background-position:0 -42px;}
@ -206,9 +215,15 @@
.xpress-editor .tool.off li.indent button{ background-position:-360px -63px;} .xpress-editor .tool.off li.indent button{ background-position:-360px -63px;}
.xpress-editor .tool.off li.blockquote button{ width:22px; background-position:-381px -63px;} .xpress-editor .tool.off li.blockquote button{ width:22px; background-position:-381px -63px;}
.xpress-editor .tool.off li.url button{ width:26px; background-position:-403px -63px;} .xpress-editor .tool.off li.url button{ width:26px; background-position:-403px -63px;}
.xpress-editor .tool.off li.table button{ background-position:-429px -63px;} .xpress-editor .tool.off li.character button{ background-position:-429px -63px;}
.xpress-editor .tool.off li.character button{ background-position:-450px -63px;} .xpress-editor .tool.off li.find button{ background-position:-450px -63px;}
.xpress-editor .tool.off li.find button{ background-position:-471px -63px;} .xpress-editor .tool.off li.table button{ width:22px; background-position:-471px -63px;}
.xpress-editor .tool.off li.merge button,
.xpress-editor .tool li.merge button.off{ background-position:-493px -63px;}
.xpress-editor .tool.off li.splitCol button,
.xpress-editor .tool li.splitCol button.off{ background-position:-514px -63px;}
.xpress-editor .tool.off li.splitRow button,
.xpress-editor .tool li.splitRow button.off{ background-position:-535px -63px;}
.xpress-editor .tool.off li.extensions span{ background-position:0 -63px;} .xpress-editor .tool.off li.extensions span{ background-position:0 -63px;}
.xpress-editor .tool.off li.extensions span button{ background-position:right -63px; color:#bcbcbc;} .xpress-editor .tool.off li.extensions span button{ background-position:right -63px; color:#bcbcbc;}
.xpress-editor .tool.off li button{ cursor:default;} .xpress-editor .tool.off li button{ cursor:default;}
@ -240,7 +255,6 @@
.xpress-editor .tool li.style .layer{ padding:4px 2px; _overflow:hidden; filter:progid:DXImageTransform.Microsoft.Shadow(color=#dddddd,direction=135,strength=2);} .xpress-editor .tool li.style .layer{ padding:4px 2px; _overflow:hidden; filter:progid:DXImageTransform.Microsoft.Shadow(color=#dddddd,direction=135,strength=2);}
.xpress-editor .tool li.style .layer li{ position:relative; background:#fbfbfb;} .xpress-editor .tool li.style .layer li{ position:relative; background:#fbfbfb;}
.xpress-editor .tool li.style .layer li img.component { width:13px; height:12px; }
.xpress-editor .tool li.style .layer li button{ display:block; width:134px; position:relative;} .xpress-editor .tool li.style .layer li button{ display:block; width:134px; position:relative;}
.xpress-editor .tool li.style .layer li button span{ display:block; width:130px; text-align:left; letter-spacing:normal;} .xpress-editor .tool li.style .layer li button span{ display:block; width:130px; text-align:left; letter-spacing:normal;}
.xpress-editor .tool li.style .layer li.h3 button span{ padding:3px 0 1px 4px; height:15px; _height /**/:19px; font-size:16px; font-weight:bold;} .xpress-editor .tool li.style .layer li.h3 button span{ padding:3px 0 1px 4px; height:15px; _height /**/:19px; font-size:16px; font-weight:bold;}
@ -285,7 +299,7 @@
.xpress-editor .tool li.table .layer fieldset dd button.del{ top:9px; background-position:0 -8px;} .xpress-editor .tool li.table .layer fieldset dd button.del{ top:9px; background-position:0 -8px;}
.xpress-editor .tool li.table .layer fieldset dd .preview_palette{ display:block; float:left; margin:0 3px 0 0; padding:2px; position:relative; border:1px solid #c8c9c6; width:14px; height:14px; overflow:hidden;} .xpress-editor .tool li.table .layer fieldset dd .preview_palette{ display:block; float:left; margin:0 3px 0 0; padding:2px; position:relative; border:1px solid #c8c9c6; width:14px; height:14px; overflow:hidden;}
.xpress-editor .tool li.table .layer fieldset dd .preview_palette button{ width:14px; height:14px; font-size:500px; line-height:0;} .xpress-editor .tool li.table .layer fieldset dd .preview_palette button{ width:14px; height:14px; font-size:500px; line-height:0;}
.xpress-editor .tool li.table .layer fieldset dd .find_palette{ width:21px; height:20px; background:url(../img/btn_search.gif) no-repeat;} .xpress-editor .tool li.table .layer fieldset dd .find_palette{ width:33px; height:20px; background:url(../img/btn_search.gif) no-repeat;}
.xpress-editor .tool li.table .layer fieldset.num{ top:14px;} .xpress-editor .tool li.table .layer fieldset.num{ top:14px;}
.xpress-editor .tool li.table .layer fieldset.num dl{ top:18px; width:60px;} .xpress-editor .tool li.table .layer fieldset.num dl{ top:18px; width:60px;}

View file

@ -28,3 +28,5 @@ body{ height:100%; background-color:transparent;}
.xpressOutput sup{ font:10px Tahoma;} .xpressOutput sup{ font:10px Tahoma;}
.xpressOutput sub{ font:10px Tahoma;} .xpressOutput sub{ font:10px Tahoma;}
.xpressOutput table td{ padding:4px;} .xpressOutput table td{ padding:4px;}
.xpressOutput table .xe_selected_cell{ background-color: #d6e9ff}

View file

@ -26,455 +26,462 @@
<!--%import("js/xe_interface.js",optimized=false)--> <!--%import("js/xe_interface.js",optimized=false)-->
<!-- 자동저장용 폼 --> <!-- 자동저장용 폼 -->
<!--@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}" />
<!--@end-->
<!-- 에디터 --> <!--@if($enable_autosave)-->
<div class="xpress-editor {$colorset}"> <input type="hidden" name="_saved_doc_title" value="{htmlspecialchars($saved_doc->title)}" />
<div id="smart_content"> <a href="#xe_iframe" class="skip">&raquo; {$lang->edit->jumptoedit}</a> <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}" />
<!--@end-->
<!-- 편집 컴포넌트 --> <!-- 에디터 -->
<div class="tool"> <div class="xpress-editor">
<!--@if($enable_default_component)--> <div id="smart_content"> <a href="#xe_iframe" class="skip">&raquo; {$lang->edit->jumptoedit}</a>
<!-- 기본 컴포넌트 출력 -->
<ul class="do item">
<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>
</ul>
<ul class="type">
<li class="xpress_xeditor_ui_format">
<select class="xpress_xeditor_ui_format_select">
<option value="">{$lang->edit->header}</option>
<!--@foreach($lang->edit->header_list as $key=>$obj)-->
<option value="{$key}">{$obj}</option>
<!--@end-->
</select>
</li>
<li class="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="xpress_xeditor_ui_fontSize">
<select class="xpress_xeditor_ui_fontSize_select">
<option value="">{$lang->edit->fontsize}</option>
<option value="9px" style="font-size:9px">9px</option>
<option value="10px" style="font-size:10px">10px</option>
<option value="11px" style="font-size:11px">11px</option>
<option value="12px" style="font-size:12px">12px</option>
<option value="13px" style="font-size:13px">13px</option>
<option value="14px" style="font-size:14px">14px</option>
<option value="16px" style="font-size:16px">16px</option>
<option value="18px" style="font-size:18px">18px</option>
<option value="24px" style="font-size:24px">24px</option>
<option value="32px" style="font-size:32px">32px</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>
</ul>
<ul class="style">
<li class="bold xpress_xeditor_ui_bold">
<button type="button" title="Ctrl+B:{$lang->edit->help_bold}"><span>{$lang->edit->bold}</span></button>
</li>
<li class="underline xpress_xeditor_ui_underline">
<button type="button" title="Ctrl+U:{$lang->edit->help_underline}"><span>{$lang->edit->underline}</span></button>
</li>
<li class="italic xpress_xeditor_ui_italic">
<button type="button" title="Ctrl+I:{$lang->edit->help_italic}"><span>{$lang->edit->italic}</span></button>
</li>
<li class="del xpress_xeditor_ui_lineThrough">
<button type="button" title="Ctrl+D:{$lang->edit->help_strike}"><span>{$lang->edit->strike}</span></button>
</li>
<li class="fcolor xpress_xeditor_ui_fontColor">
<button type="button" title="{$lang->edit->help_fontcolor}"><span>{$lang->edit->fontcolor}</span></button>
<!-- 팔레트 레이어 -->
<div class="layer 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="bcolor xpress_xeditor_ui_bgColor">
<button type="button" title="{$lang->edit->help_fontbgcolor}"><span>{$lang->edit->fontbgcolor}</span></button>
<!-- 배경색 + 팔레트 레이어 -->
<div class="layer xpress_xeditor_bgcolor_layer" style="display:none;">
<ul class="background">
<li><button type="button" title="#000000" style="background:#000000; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#9334d8" style="background:#9334d8; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ff0000" style="background:#ff0000; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#333333" style="background:#333333; color:#ffff00"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#0000ff" style="background:#0000ff; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ff6600" style="background:#ff6600; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#8e8e8e" style="background:#8e8e8e; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#009999" style="background:#009999; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ffa700" style="background:#ffa700; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ffdaed" style="background:#ffdaed; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#e4ff75" style="background:#e4ff75; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#cc9900" style="background:#cc9900; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#99dcff" style="background:#99dcff; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#a6ff4d" style="background:#a6ff4d; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ffffff" style="background:#ffffff; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
</ul>
</div>
<!-- /배경색 + 팔레트 레이어 -->
</li>
<li class="sup xpress_xeditor_ui_superscript">
<button type="button" title="{$lang->edit->help_sup}"><span>{$lang->edit->sup}</span></button>
</li>
<li class="sub xpress_xeditor_ui_subscript">
<button type="button" title="{$lang->edit->help_sub}"><span>{$lang->edit->sub}</span></button>
</li>
</ul>
<ul class="paragraph">
<li class="left 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="ol xpress_xeditor_ui_orderedlist">
<button type="button" title="{$lang->edit->help_list_number}"><span>{$lang->edit->list_number}</span></button>
</li>
<li class="ul xpress_xeditor_ui_unorderedlist">
<button type="button" title="{$lang->edit->help_list_bullet}"><span>{$lang->edit->list_bullet}</span></button>
</li>
<li class="outdent xpress_xeditor_ui_outdent">
<button type="button" title="Shift+Tab:{$lang->edit->help_remove_indent}"><span>{$lang->edit->help_remove_indent}</span></button>
</li>
<li class="indent xpress_xeditor_ui_indent">
<button type="button" title="Tab:{$lang->edit->help_add_indent}"><span>{$lang->edit->add_indent}</span></button>
</li>
</ul>
<ul class="extra1">
<li class="blockquote xpress_xeditor_ui_quote">
<button type="button" title="{$lang->edit->blockquote}"><span>{$lang->edit->blockquote}</span></button>
<!-- 인용 레이어 -->
<div class="layer xpress_xeditor_blockquote_layer" style="display:none">
<ul>
<li class="q1"><button type="button"><span>{$lang->edit->quotestyle1}</span></button></li>
<li class="q2"><button type="button"><span>{$lang->edit->quotestyle2}</span></button></li>
<li class="q3"><button type="button"><span>{$lang->edit->quotestyle3}</span></button></li>
<li class="q4"><button type="button"><span>{$lang->edit->quotestyle4}</span></button></li>
<li class="q5"><button type="button"><span>{$lang->edit->quotestyle5}</span></button></li>
<li class="q6"><button type="button"><span>{$lang->edit->quotestyle6}</span></button></li>
<li class="q7"><button type="button"><span>{$lang->edit->quotestyle7}</span></button></li>
<li class="q8"><button type="button"><span>{$lang->edit->quotestyle8}</span></button></li>
</ul>
</div>
<!-- /인용 레이어 -->
</li>
<li class="url xpress_xeditor_ui_hyperlink">
<button type="button" title="{$lang->edit->url}"><span>{$lang->edit->url}</span></button>
<!-- URL 레이어 -->
<div class="layer 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>
</fieldset>
<div class="btn_area">
<button type="button" class="confirm" title="{$lang->cmd_confirm}"><span>{$lang->cmd_confirm}</span></button>
<button type="button" class="cancel" title="{$lang->cmd_cancel}"><span>{$lang->cmd_cancel}</span></button>
</div> <!-- 편집 컴포넌트 -->
<div class="tool">
<!--@if($enable_default_component)-->
<!-- 기본 컴포넌트 출력 -->
<ul class="do item">
<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>
</ul>
<ul class="type">
<li class="xpress_xeditor_ui_format">
<select class="xpress_xeditor_ui_format_select">
<option value="">{$lang->edit->header}</option>
<!--@foreach($lang->edit->header_list as $key=>$obj)-->
<option value="{$key}">{$obj}</option>
<!--@end-->
</select>
</li>
<li class="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="xpress_xeditor_ui_fontSize">
<select class="xpress_xeditor_ui_fontSize_select">
<option value="">{$lang->edit->fontsize}</option>
<option value="9px" style="font-size:9px">9px</option>
<option value="10px" style="font-size:10px">10px</option>
<option value="11px" style="font-size:11px">11px</option>
<option value="12px" style="font-size:12px">12px</option>
<option value="13px" style="font-size:13px">13px</option>
<option value="14px" style="font-size:14px">14px</option>
<option value="16px" style="font-size:16px">16px</option>
<option value="18px" style="font-size:18px">18px</option>
<option value="24px" style="font-size:24px">24px</option>
<option value="32px" style="font-size:32px">32px</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>
</ul>
<ul class="style">
<li class="bold xpress_xeditor_ui_bold">
<button type="button" title="Ctrl+B:{$lang->edit->help_bold}"><span>{$lang->edit->bold}</span></button>
</li>
<li class="underline xpress_xeditor_ui_underline">
<button type="button" title="Ctrl+U:{$lang->edit->help_underline}"><span>{$lang->edit->underline}</span></button>
</li>
<li class="italic xpress_xeditor_ui_italic">
<button type="button" title="Ctrl+I:{$lang->edit->help_italic}"><span>{$lang->edit->italic}</span></button>
</li>
<li class="del xpress_xeditor_ui_lineThrough">
<button type="button" title="Ctrl+D:{$lang->edit->help_strike}"><span>{$lang->edit->strike}</span></button>
</li>
<li class="fcolor xpress_xeditor_ui_fontColor">
<button type="button" title="{$lang->edit->help_fontcolor}"><span>{$lang->edit->fontcolor}</span></button>
<!-- 팔레트 레이어 -->
<div class="layer 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="bcolor xpress_xeditor_ui_bgColor">
<button type="button" title="{$lang->edit->help_fontbgcolor}"><span>{$lang->edit->fontbgcolor}</span></button>
<!-- 배경색 + 팔레트 레이어 -->
<div class="layer xpress_xeditor_bgcolor_layer" style="display:none;">
<ul class="background">
<li><button type="button" title="#000000" style="background:#000000; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#9334d8" style="background:#9334d8; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ff0000" style="background:#ff0000; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#333333" style="background:#333333; color:#ffff00"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#0000ff" style="background:#0000ff; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ff6600" style="background:#ff6600; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#8e8e8e" style="background:#8e8e8e; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#009999" style="background:#009999; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ffa700" style="background:#ffa700; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ffdaed" style="background:#ffdaed; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#e4ff75" style="background:#e4ff75; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#cc9900" style="background:#cc9900; color:#ffffff"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#99dcff" style="background:#99dcff; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#a6ff4d" style="background:#a6ff4d; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
<li><button type="button" title="#ffffff" style="background:#ffffff; color:#000000"><span>{$lang->edit->fontbgsampletext}</span></button></li>
</ul>
</div>
<!-- /배경색 + 팔레트 레이어 -->
</li>
<li class="sup xpress_xeditor_ui_superscript">
<button type="button" title="{$lang->edit->help_sup}"><span>{$lang->edit->sup}</span></button>
</li>
<li class="sub xpress_xeditor_ui_subscript">
<button type="button" title="{$lang->edit->help_sub}"><span>{$lang->edit->sub}</span></button>
</li>
</ul>
<ul class="paragraph">
<li class="left 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="ol xpress_xeditor_ui_orderedlist">
<button type="button" title="{$lang->edit->help_list_number}"><span>{$lang->edit->list_number}</span></button>
</li>
<li class="ul xpress_xeditor_ui_unorderedlist">
<button type="button" title="{$lang->edit->help_list_bullet}"><span>{$lang->edit->list_bullet}</span></button>
</li>
<li class="outdent xpress_xeditor_ui_outdent">
<button type="button" title="Shift+Tab:{$lang->edit->help_remove_indent}"><span>{$lang->edit->help_remove_indent}</span></button>
</li>
<li class="indent xpress_xeditor_ui_indent">
<button type="button" title="Tab:{$lang->edit->help_add_indent}"><span>{$lang->edit->add_indent}</span></button>
</li>
</ul>
<ul class="extra1">
<li class="blockquote xpress_xeditor_ui_quote">
<button type="button" title="{$lang->edit->blockquote}"><span>{$lang->edit->blockquote}</span></button>
<!-- 인용 레이어 -->
<div class="layer xpress_xeditor_blockquote_layer" style="display:none">
<ul>
<li class="q1"><button type="button"><span>{$lang->edit->quotestyle1}</span></button></li>
<li class="q2"><button type="button"><span>{$lang->edit->quotestyle2}</span></button></li>
<li class="q3"><button type="button"><span>{$lang->edit->quotestyle3}</span></button></li>
<li class="q4"><button type="button"><span>{$lang->edit->quotestyle4}</span></button></li>
<li class="q5"><button type="button"><span>{$lang->edit->quotestyle5}</span></button></li>
<li class="q6"><button type="button"><span>{$lang->edit->quotestyle6}</span></button></li>
<li class="q7"><button type="button"><span>{$lang->edit->quotestyle7}</span></button></li>
<li class="q8"><button type="button"><span>{$lang->edit->quotestyle8}</span></button></li>
</ul>
</div>
<!-- /인용 레이어 -->
</li>
<li class="url xpress_xeditor_ui_hyperlink">
<button type="button" title="{$lang->edit->url}"><span>{$lang->edit->url}</span></button>
<!-- URL 레이어 -->
<div class="layer 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>
</fieldset>
<div class="btn_area">
<button type="button" class="confirm" title="{$lang->cmd_confirm}"><span>{$lang->cmd_confirm}</span></button>
<button type="button" class="cancel" title="{$lang->cmd_cancel}"><span>{$lang->cmd_cancel}</span></button>
</div> </div>
<!-- /URL 레이어 -->
</li>
<li class="table xpress_xeditor_ui_table">
<button type="button" title="{$lang->edit->table}"><span>{$lang->edit->table}</span></button>
<!-- 표 레이어 -->
<div class="layer xpress_xeditor_table_layer" style="display:none;">
<fieldset class="num">
<h3>{$lang->edit->set_sel}</h3>
<dl>
<dt>
<label for="row">{$lang->edit->row}</label>
</dt>
<dd>
<input id="row" name="" type="text" maxlength="2" value="4" />
<button type="button" class="add"><span>{$lang->edit->add_one_row}</span></button>
<button type="button" class="del"><span>{$lang->edit->del_one_row}</span></button>
</dd>
<dt>
<label for="col">{$lang->edit->col}</label>
</dt>
<dd>
<input id="col" name="" type="text" maxlength="2" value="4" />
<button type="button" class="add"><span>{$lang->edit->add_one_col}</span></button>
<button type="button" class="del"><span>{$lang->edit->del_one_col}</span></button>
</dd>
</dl>
<table border="1">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</fieldset>
<fieldset class="color">
<h3>{$lang->edit->table_config}</h3>
<dl>
<dt>
<label for="table_border_width">{$lang->edit->border_width}</label>
</dt>
<dd>
<input id="table_border_width" name="" type="text" maxlength="2" value="1" />
<button type="button" class="add"><span>1px {$lang->edit->add}</span></button>
<button type="button" class="del"><span>1px {$lang->edit->del}</span></button>
</dd>
<dt>
<label for="table_border_color">{$lang->edit->border_color}</label>
</dt>
<dd>
<span class="preview_palette"><button type="button" style="background:#cccccc;">{$lang->edit->search_color}</button></span>
<input id="table_border_color" name="" type="text" maxlength="7" value="#CCCCCC" />
<button type="button" class="find_palette"><span>{$lang->edit->search_color}</span></button>
</dd>
<dt>
<label for="table_bg_color">{$lang->edit->table_backgroundcolor}</label>
</dt>
<dd>
<span class="preview_palette"><button type="button" style="background:#000000;">{$lang->edit->search_color}</button></span>
<input id="table_bg_color" name="" type="text" maxlength="7" value="#000000" />
<button type="button" class="find_palette"><span>{$lang->edit->search_color}</span></button>
</dd>
</dl>
</fieldset>
<div class="btn_area">
<button type="button" class="confirm" title="{$lang->confirm}"><span>{$lang->confirm}</span></button>
<button type="button" class="cancel" title="{$lang->cancel}"><span>{$lang->cancel}</span></button>
</div>
</div>
<!-- /표 레이어 -->
</li>
<li class="character 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>
<li class="find xpress_xeditor_ui_findAndReplace">
<button type="button" title="{$lang->cmd_find}"><span>{$lang->cmd_find}</span></button>
<!-- 찾기 바꾸기 레이어 -->
<div class="layer find xpress_xeditor_findAndReplace_layer" style="display:none">
<!-- class="layer find" | class="layer replace"-->
<h3>{$lang->edit->search_replace}</h3>
<button type="button" class="close" title="{$lang->edit->close_search_replace}"><span>{$lang->edit->close_search_replace}</span></button>
<div class="menu_tab">
<ul class="layer_tab">
<li class="tab1"><a href="#find" onclick="return false">{$lang->cmd_find}</a></li>
<li class="tab2"><a href="#replace" onclick="return false">{$lang->cmd_replace}</a></li>
</ul>
</div>
<div class="container">
<div class="bx" id="find">
<fieldset>
<label for="keyword1">{$lang->edit->search_words}</label>
<input id="keyword1" name="" type="text" />
</fieldset>
<span class="cap"></span> </div>
<div class="bx" id="replace">
<fieldset>
<label for="keyword2">{$lang->edit->search_words}</label>
<input id="keyword2" name="" type="text" />
<br />
<label for="keyword3">{$lang->edit->replace_words}</label>
<input id="keyword3" name="" type="text" />
</fieldset>
</div>
</div>
<div class="btn_area">
<button type="button" class="find_next" title="{$lang->edit->next_search_words}"><span>{$lang->edit->next_search_words}</span></button>
<button type="button" class="replace" title="{$lang->cmd_replace}"><span>{$lang->cmd_replace}</span></button>
<button type="button" class="replace_all" title="{$lang->edit->replace_all}"><span>{$lang->edit->replace_all}</span></button>
</div>
<button type="button" class="close" title="{$lang->edit->close_search_replace}"><span>{$lang->edit->close_search_replace}</span></button>
</div>
<!-- /찾기 바꾸기 레이어 -->
</li>
</ul>
<!--@end-->
<!--@if($enable_component)--> </div>
<ul class="extra2"> <!-- /URL 레이어 -->
<!-- 확장 컴포넌트 출력 --> </li>
<li class="extensions xpress_xeditor_ui_extension"> <li class="character xpress_xeditor_ui_sCharacter">
<span class="exButton"><button type="button" title="{$lang->edit->extension}">{$lang->edit->extension}</button></span> <button type="button" title="{$lang->edit->special_character}"><span>{$lang->edit->special_character}</span></button>
<div class="layer extension2 xpress_xeditor_extension_layer" id="editorExtension_{$editor_sequence}"> <!-- 특수문자 레이어 -->
<ul id="editor_component_{$editor_sequence}" class="editorComponent"> <div class="layer xpress_xeditor_sCharacter_layer" style="display:none">
<!--@foreach($component_list as $component_name => $component)--> <h3>{$lang->edit->insert_special_character}</h3>
<li><!--@if($component->component_icon)--><img src="../../components/{$component_name}/component_icon.gif" alt="" width="13" height="12"/> <!--@end--><a href="#" onclick="return false;" id="component_{$editor_sequence}_{$component_name}">{$component->title}</a></li> <button type="button" class="close" title="{$lang->edit->close_special_character}"><span>{$lang->edit->close_special_character}</span></button>
<!--@end--> <ul class="nav">
</ul> <li><a href="#character1" class="on">{$lang->edit->symbol}</a></li>
</div> <li><a href="#character2">{$lang->edit->number_unit}</a></li>
</li> <li><a href="#character3">{$lang->edit->circle_bracket}</a></li>
</ul> <li><a href="#character4">{$lang->edit->korean}</a></li>
<!--@end--> <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>
<li class="find xpress_xeditor_ui_findAndReplace">
<button type="button" title="{$lang->cmd_find}"><span>{$lang->cmd_find}</span></button>
<!-- 찾기 바꾸기 레이어 -->
<div class="layer find xpress_xeditor_findAndReplace_layer" style="display:none">
<!-- class="layer find" | class="layer replace"-->
<h3>{$lang->edit->search_replace}</h3>
<button type="button" class="close" title="{$lang->edit->close_search_replace}"><span>{$lang->edit->close_search_replace}</span></button>
<div class="menu_tab">
<ul class="layer_tab">
<li class="tab1"><a href="#find" onclick="return false">{$lang->cmd_find}</a></li>
<li class="tab2"><a href="#replace" onclick="return false">{$lang->cmd_replace}</a></li>
</ul>
</div>
<div class="container">
<div class="bx" id="find">
<fieldset>
<label for="keyword1">{$lang->edit->search_words}</label>
<input id="keyword1" name="" type="text" />
</fieldset>
<span class="cap"></span> </div>
<div class="bx" id="replace">
<fieldset>
<label for="keyword2">{$lang->edit->search_words}</label>
<input id="keyword2" name="" type="text" />
<br />
<label for="keyword3">{$lang->edit->replace_words}</label>
<input id="keyword3" name="" type="text" />
</fieldset>
</div>
</div>
<div class="btn_area">
<button type="button" class="find_next" title="{$lang->edit->next_search_words}"><span>{$lang->edit->next_search_words}</span></button>
<button type="button" class="replace" title="{$lang->cmd_replace}"><span>{$lang->cmd_replace}</span></button>
<button type="button" class="replace_all" title="{$lang->edit->replace_all}"><span>{$lang->edit->replace_all}</span></button>
</div>
<button type="button" class="close" title="{$lang->edit->close_search_replace}"><span>{$lang->edit->close_search_replace}</span></button>
</div>
<!-- /찾기 바꾸기 레이어 -->
</li>
</ul>
<!--@end-->
<!--@if($html_mode)--> <ul class="table">
<ul class="extra3"> <li class="table xpress_xeditor_ui_table">
<!-- HTML 모드 사용 --> <button type="button" title="{$lang->edit->table}"><span>{$lang->edit->table}</span></button>
<li class="html"><span><button class="xpress_xeditor_mode_toggle_button" type="button" title="{$lang->edit->html_editor}">HTML</button></span></li> <!-- 표 레이어 -->
<!--li class="preview"><span><button type="button" class="xpress_xeditor_preview_button" title="{$lang->cmd_preview}">{$lang->cmd_preview}</button></span></li--> <div class="layer xpress_xeditor_table_layer" style="display:none;">
</ul> <fieldset class="num">
<!--@end--> <h3>{$lang->edit->set_sel}</h3>
<dl>
<dt>
<label for="row">{$lang->edit->row}</label>
</dt>
<dd>
<input id="row" name="" type="text" maxlength="2" value="4" />
<button type="button" class="add"><span>{$lang->edit->add_one_row}</span></button>
<button type="button" class="del"><span>{$lang->edit->del_one_row}</span></button>
</dd>
<dt>
<label for="col">{$lang->edit->col}</label>
</dt>
<dd>
<input id="col" name="" type="text" maxlength="2" value="4" />
<button type="button" class="add"><span>{$lang->edit->add_one_col}</span></button>
<button type="button" class="del"><span>{$lang->edit->del_one_col}</span></button>
</dd>
</dl>
<table border="1">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</fieldset>
<fieldset class="color">
<h3>{$lang->edit->table_config}</h3>
<dl>
<dt>
<label for="table_border_width">{$lang->edit->border_width}</label>
</dt>
<dd>
<input id="table_border_width" name="" type="text" maxlength="2" value="1" />
<button type="button" class="add"><span>1px {$lang->edit->add}</span></button>
<button type="button" class="del"><span>1px {$lang->edit->del}</span></button>
</dd>
<dt>
<label for="table_border_color">{$lang->edit->border_color}</label>
</dt>
<dd>
<span class="preview_palette"><button type="button" style="background:#cccccc;">{$lang->edit->search_color}</button></span>
<input id="table_border_color" name="" type="text" maxlength="7" value="#CCCCCC" />
<button type="button" class="find_palette"><span>{$lang->edit->search_color}</span></button>
</dd>
<dt>
<label for="table_bg_color">{$lang->edit->table_backgroundcolor}</label>
</dt>
<dd>
<span class="preview_palette"><button type="button" style="background:#000000;">{$lang->edit->search_color}</button></span>
<input id="table_bg_color" name="" type="text" maxlength="7" value="#000000" />
<button type="button" class="find_palette"><span>{$lang->edit->search_color}</span></button>
</dd>
</dl>
</fieldset>
<div class="btn_area">
<button type="button" class="confirm" title="{$lang->confirm}"><span>{$lang->confirm}</span></button>
<button type="button" class="cancel" title="{$lang->cancel}"><span>{$lang->cancel}</span></button>
</div>
</div>
<!-- /표 레이어 -->
</li>
<li class="merge xpress_xeditor_ui_merge_cells"><button type="button" title="{$lang->edit->merge_cells}"><span>{$lang->edit->merge_cells}</span></button></li>
<li class="splitCol xpress_xeditor_ui_split_col"><button type="button" title="{$lang->edit->split_col}"><span>{$lang->edit->split_col}</span></button></li>
<li class="splitRow xpress_xeditor_ui_split_row"><button type="button" title="{$lang->edit->split_row}"><span>{$lang->edit->split_row}</span></button></li>
</ul>
</div> <!--@if($enable_component)-->
<ul class="extra2">
<!-- 확장 컴포넌트 출력 -->
<li class="extensions xpress_xeditor_ui_extension">
<span class="exButton"><button type="button" title="{$lang->edit->extension}">{$lang->edit->extension}</button></span>
<div class="layer extension2 xpress_xeditor_extension_layer" id="editorExtension_{$editor_sequence}">
<ul id="editor_component_{$editor_sequence}" class="editorComponent">
<!--@foreach($component_list as $component_name => $component)-->
<li><a href="#" onclick="return false;" id="component_{$editor_sequence}_{$component_name}">{$component->title}</a></li>
<!--@end-->
</ul>
</div>
</li>
</ul>
<!--@end-->
<!-- 에디터 출력 --> <!--@if($html_mode)-->
<div class="input_area xpress_xeditor_editing_area_container"> <ul class="extra3">
<textarea id="xpress-editor-{$editor_sequence}" cols="10" rows="10"></textarea> <!-- HTML 모드 사용 -->
</div> <li class="html"><span><button class="xpress_xeditor_mode_toggle_button" type="button" title="{$lang->edit->html_editor}">{$lang->edit->html_editor}</button></span></li>
<!--li class="preview"><span><button type="button" class="xpress_xeditor_preview_button" title="{$lang->cmd_preview}">{$lang->cmd_preview}</button></span></li-->
</ul>
<!--@end-->
<!--@if($enable_autosave)--> </div>
<p class="editor_autosaved_message autosave_message" id="editor_autosaved_message_{$editor_sequence}">&nbsp;</p>
<!--@end-->
<!-- /입력 --> <!-- 에디터 출력 -->
<button type="button" class="input_control xpress_xeditor_editingArea_verticalResizer" title="{$lang->edit->edit_height_control}"><span>{$lang->edit->edit_height_control}</span></button> <div class="input_area xpress_xeditor_editing_area_container">
<textarea id="xpress-editor-{$editor_sequence}" cols="10" rows="10"></textarea>
</div>
</div> <!--@if($enable_autosave)-->
<p class="editor_autosaved_message autosave_message" id="editor_autosaved_message_{$editor_sequence}">&nbsp;</p>
<!--@end-->
<!--@if($allow_fileupload)--> <!-- /입력 -->
<!--%import("../../tpl/js/uploader.js",optimized=false)--> <button type="button" class="input_control xpress_xeditor_editingArea_verticalResizer" title="{$lang->edit->edit_height_control}"><span>{$lang->edit->edit_height_control}</span></button>
<!--%import("../../tpl/js/swfupload.js",optimized=false)-->
<script type="text/javascript">//<![CDATA[ </div>
editorUploadInit(
{ <!--@if($allow_fileupload)-->
<!--%import("../../tpl/js/uploader.js",optimized=false)-->
<!--%import("../../tpl/js/swfupload.js",optimized=false)-->
<script type="text/javascript">//<![CDATA[
editorUploadInit(
{
"editorSequence" : {$editor_sequence}, "editorSequence" : {$editor_sequence},
"sessionName" : "{session_name()}", "sessionName" : "{session_name()}",
"allowedFileSize" : "{$file_config->allowed_filesize}", "allowedFileSize" : "{$file_config->allowed_filesize}",
@ -486,29 +493,29 @@
"previewAreaID" : "preview_uploaded_{$editor_sequence}", "previewAreaID" : "preview_uploaded_{$editor_sequence}",
"uploaderStatusID" : "uploader_status_{$editor_sequence}" "uploaderStatusID" : "uploader_status_{$editor_sequence}"
} }
); );
//]]></script> //]]></script>
<!-- 파일 업로드 영역 --> <!-- 파일 업로드 영역 -->
<div id="fileUploader_{$editor_sequence}" class="fileUploader"> <div id="fileUploader_{$editor_sequence}" class="fileUploader">
<div class="preview {$editor_class}" id="preview_uploaded_{$editor_sequence}"></div> <div class="preview {$editor_class}" id="preview_uploaded_{$editor_sequence}"></div>
<div class="fileListArea {$editor_class}"> <div class="fileListArea {$editor_class}">
<select id="uploaded_file_list_{$editor_sequence}" multiple="multiple" class="fileList" title="Attached File List"><option></option></select> <select id="uploaded_file_list_{$editor_sequence}" multiple="multiple" class="fileList" title="Attached File List"><option></option></select>
</div> </div>
<div class="fileUploadControl"> <div class="fileUploadControl">
<span class="button {$editor_class}" id="swfUploadButton{$editor_sequence}"><button type="button">{$lang->edit->upload_file}</button></span> <span class="button {$editor_class}" id="swfUploadButton{$editor_sequence}"><button type="button">{$lang->edit->upload_file}</button></span>
<span class="button {$editor_class}"><button type="button" onclick="removeUploadedFile('{$editor_sequence}');return false;">{$lang->edit->delete_selected}</button></span> <span class="button {$editor_class}"><button type="button" onclick="removeUploadedFile('{$editor_sequence}');return false;">{$lang->edit->delete_selected}</button></span>
<span class="button {$editor_class}"><button type="button" onclick="insertUploadedFile('{$editor_sequence}');return false;">{$lang->edit->link_file}</button></span> <span class="button {$editor_class}"><button type="button" onclick="insertUploadedFile('{$editor_sequence}');return false;">{$lang->edit->link_file}</button></span>
</div> </div>
<div class="file_attach_info" id="uploader_status_{$editor_sequence}">{$upload_status}</div> <div class="file_attach_info" id="uploader_status_{$editor_sequence}">{$upload_status}</div>
</div> </div>
<!--@end--> <!--@end-->
</div> </div>
<!-- 에디터 활성화 --> <!-- 에디터 활성화 -->
<script type="text/javascript">//<![CDATA[ <script type="text/javascript">//<![CDATA[
var editor_path = "{$editor_path}"; var editor_path = "{$editor_path}";
var auto_saved_msg = "{$lang->msg_auto_saved}"; var auto_saved_msg = "{$lang->msg_auto_saved}";
var oEditor = editorStart_xe("{$editor_sequence}", "{$editor_primary_key_name}", "{$editor_content_key_name}", "{$editor_height}","{$colorset}"); var oEditor = editorStart_xe("{$editor_sequence}", "{$editor_primary_key_name}", "{$editor_content_key_name}", "{$editor_height}");
//]]></script> //]]></script>
<!--@end--> <!--@end-->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

@ -2406,7 +2406,7 @@ xe.DialogLayerManager = jQuery.Class({
bModal = jQuery.$(bModal) || false; bModal = jQuery.$(bModal) || false;
if(!oLayer) return; if(!oLayer) return;
//if(jQuery.inArray(oLayer, this.aOpenedLayers)) return; if(jQuery.inArray(oLayer, this.aOpenedLayers)) return;
this.oApp.exec("POSITION_DIALOG_LAYER", [oLayer]); this.oApp.exec("POSITION_DIALOG_LAYER", [oLayer]);
@ -4819,13 +4819,13 @@ xe.XE_FindReplacePlugin = jQuery.Class({
this.oReplaceInput_Replacement = oTmp[1]; this.oReplaceInput_Replacement = oTmp[1];
this.oFindNextButton = jQuery("BUTTON.find_next", this.oUILayer).get(0); this.oFindNextButton = jQuery("BUTTON.find_next", this.oUILayer).get(0);
//this.oCancelButton = jQuery("BUTTON.cancel", this.oUILayer).get(0); this.oCancelButton = jQuery("BUTTON.cancel", this.oUILayer).get(0);
this.oReplaceButton = jQuery("BUTTON.replace", this.oUILayer).get(0); this.oReplaceButton = jQuery("BUTTON.replace", this.oUILayer).get(0);
this.oReplaceAllButton = jQuery("BUTTON.replace_all", this.oUILayer).get(0); this.oReplaceAllButton = jQuery("BUTTON.replace_all", this.oUILayer).get(0);
this.aCloseButtons = jQuery("BUTTON.close", this.oUILayer).get(); this.aCloseButtons = jQuery("BUTTON.close", this.oUILayer).get();
//this.aCloseButtons[this.aCloseButtons.length] = this.oCancelButton; this.aCloseButtons[this.aCloseButtons.length] = this.oCancelButton;
}, },
$ON_MSG_APP_READY : function(){ $ON_MSG_APP_READY : function(){
@ -5424,7 +5424,9 @@ var
regex_style = /style\s*=\s*(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i, regex_style = /style\s*=\s*(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,
regex_font_weight = /font-weight\s*:\s*([a-z]+);?/i, regex_font_weight = /font-weight\s*:\s*([a-z]+);?/i,
regex_font_style = /font-style\s*:\s*italic;?/i, regex_font_style = /font-style\s*:\s*italic;?/i,
regex_font_decoration = /text-decoration\s*:\s*([a-z -]+);?/i; regex_font_decoration = /text-decoration\s*:\s*([a-z -]+);?/i,
regex_jquery = /jQuery\d+\s*=(\s*"\d+"|\d+)/g,
regex_quote_attr = /([\w-]+)=([\w-]+)/g;
var var
allow_tags = 'a,abbr,acronym,address,area,blockquote,br,caption,center,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,embed,h1,h2,h3,h4,h5,h6,hr,img,ins,kbd,li,map,object,ol,p,param,pre,q,samp,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var'.split(','), allow_tags = 'a,abbr,acronym,address,area,blockquote,br,caption,center,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,embed,h1,h2,h3,h4,h5,h6,hr,img,ins,kbd,li,map,object,ol,p,param,pre,q,samp,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var'.split(','),
@ -5470,6 +5472,14 @@ xe.XE_XHTMLFormatter = $.Class({
// remove all scripts // remove all scripts
sContent = sContent.replace(regex_script, ''); sContent = sContent.replace(regex_script, '');
if (jQuery.browser.msie) {
// remove jQuery attributes
sContent = sContent.replace(regex_jquery, '');
// quote all attrs
sContent = sContent.replace(regex_quote_attr, '$1="$2"');
}
// remove all useless tag and enclose tags // remove all useless tag and enclose tags
regex = /<(\/)?([:\w\/-]+)(.*?)>/ig; regex = /<(\/)?([:\w\/-]+)(.*?)>/ig;
sContent = sContent.replace(regex, function(m0,m1,m2,m3){ sContent = sContent.replace(regex, function(m0,m1,m2,m3){
@ -5828,7 +5838,7 @@ xe.XE_Table = jQuery.Class({
var rowspan = all_rows.index(end_tr.get(0)) - all_rows.index(start_tr.get(0)) + this._getSpan(cell.eq(cell.length-1), 'row'); var rowspan = all_rows.index(end_tr.get(0)) - all_rows.index(start_tr.get(0)) + this._getSpan(cell.eq(cell.length-1), 'row');
// 첫번째 셀 colspan, rowspan 속성 지정 // 첫번째 셀 colspan, rowspan 속성 지정
cell.eq(0).attr('colspan', colspan).attr('rowspan', rowspan); cell.eq(0).attr('colSpan', colspan).attr('rowSpan', rowspan);
// 첫번째 셀을 제외한 다른 모든 셀 제거 // 첫번째 셀을 제외한 다른 모든 셀 제거
cell.slice(1).remove(); cell.slice(1).remove();
@ -5865,14 +5875,15 @@ xe.XE_Table = jQuery.Class({
// rowspan > 1이면 현재 셀의 rowspan을 절반으로 분할한다. // rowspan > 1이면 현재 셀의 rowspan을 절반으로 분할한다.
if (rowspan > 1) { if (rowspan > 1) {
topspan = Math.ceil(rowspan/2); topspan = Math.ceil(rowspan/2);
botspan = rowspan - topspan; botspan = rowspan - topspan;
queue.push(function(){ queue.push(function(){
(topspan > 1)?t.attr('rowspan', topspan):t.removeAttr('rowspan'); t.attr('rowSpan', topspan);
}); });
(botspan > 1)?clone.attr('rowspan', botspan):clone.removeAttr('rowspan'); clone.attr('rowSpan', botspan);
} else { } else {
// rowspan이 없으면 현재 셀과 영역이 겹치는 모든 셀에 rowspan을 추가 // rowspan이 없으면 현재 셀과 영역이 겹치는 모든 셀에 rowspan을 추가
cell.filter(function(){ cell.filter(function(){
@ -5891,14 +5902,17 @@ xe.XE_Table = jQuery.Class({
// rowspan 1 추가 // rowspan 1 추가
queue.push(function(){ queue.push(function(){
tt.attr('rowspan', sp); tt.attr('rowSpan', sp);
}); });
}); });
// 새 줄을 추가한다. // 새 줄을 추가한다.
row.after(row.clone().empty()); if (jQuery.browser.msie) {
// Fix bug for IE
clone.removeAttr('rowspan'); row.after(row.clone().empty().get(0).outerHTML);
} else {
row.after(row.clone().empty());
}
} }
var rows = row.nextAll('tr'); var rows = row.nextAll('tr');
@ -5911,18 +5925,28 @@ xe.XE_Table = jQuery.Class({
return ( self._getRect(jQuery(this)).left > rect.left ); return ( self._getRect(jQuery(this)).left > rect.left );
}); });
next_sib.length?next_sib.eq(0).before(clone):rows.eq(topspan-1).append(clone); if (jQuery.browser.msie) {
next_sib.length?
next_sib.eq(0).before(clone.get(0).outerHTML):
rows.eq(topspan-1).append(clone.get(0).outerHTML);
} else {
next_sib.length?
next_sib.slice(0,1).before(clone):
rows.slice(topspan-1,1).append(clone);
}
} }
// 함수를 바로 실행하면 좌표가 틀어지므로, 큐에 넣은 후 실행 // 함수를 바로 실행하면 좌표가 틀어지므로, 큐에 넣은 후 실행
jQuery.each(queue, function(){ this(); }); jQuery.each(queue, function(){ this(); });
}); });
}, },
$ON_CELL_SPLIT_BY_COL : function(many) { $ON_CELL_SPLIT_BY_COL : function(many) {
var cell = jQuery('.xe_selected_cell', this.oApp.getWYSIWYGDocument()).filter('td,th'); var cell = jQuery('.xe_selected_cell', this.oApp.getWYSIWYGDocument()).filter('td,th');
var table = cell.parents('table').eq(0); var table = cell.parents('table').slice(0,1);
var self = this; var self = this;
var ie_bug = [], tmpId = (new Date).getTime(), tmpStr = '';
// 선택된 셀이 없으면 종료 // 선택된 셀이 없으면 종료
if (!cell.length) return; if (!cell.length) return;
@ -5940,7 +5964,7 @@ xe.XE_Table = jQuery.Class({
var rect = self._getRect(jQuery(this)); var rect = self._getRect(jQuery(this));
return !(rect.right <= _left || rect.left >= _right); return !(rect.right <= _left || rect.left >= _right);
})).filter('.xe_selected_cell').each(function(){ })).filter('.xe_selected_cell').each(function(idx){
var t = jQuery(this); var t = jQuery(this);
var colspan = self._getSpan(t, 'col'); var colspan = self._getSpan(t, 'col');
var clone = t.clone().html('<br />'); var clone = t.clone().html('<br />');
@ -5950,8 +5974,8 @@ xe.XE_Table = jQuery.Class({
var leftspan = Math.ceil(colspan/2); var leftspan = Math.ceil(colspan/2);
var rightspan = colspan - leftspan; var rightspan = colspan - leftspan;
(leftspan > 1)?t.attr('colspan', leftspan):t.removeAttr('colspan'); t.attr('colSpan', leftspan);
(rightspan > 1)?clone.attr('colspan', rightspan):clone.removeAttr('colspan'); clone.attr('colSpan', rightspan);
} else { } else {
// colspan이 없으면 현재 셀과 영역이 겹치는 모든 셀에 colspan을 추가 // colspan이 없으면 현재 셀과 영역이 겹치는 모든 셀에 colspan을 추가
var rect = self._getRect(t); var rect = self._getRect(t);
@ -5970,13 +5994,18 @@ xe.XE_Table = jQuery.Class({
var tt = jQuery(this); var tt = jQuery(this);
// colspan 1 추가 // colspan 1 추가
tt.attr('colspan', self._getSpan(tt, 'col')+1); tt.attr('colSpan', self._getSpan(tt, 'col')+1);
}); });
clone.removeAttr('colspan'); clone.attr('colSpan', 1);
} }
t.after(clone); if (jQuery.browser.msie) {
// Fix for IE bug
t.after(clone.get(0).outerHTML);
} else {
t.after(clone);
}
}); });
}, },

View file

@ -21,7 +21,7 @@ function editorStart_xe(editor_sequence, primary_key, content_key, editor_height
jQuery("#xpress-editor-"+editor_sequence).val(saved_content); jQuery("#xpress-editor-"+editor_sequence).val(saved_content);
} }
/* /*
// remove procFilter // remove procFilter
if(form.comment_srl){ if(form.comment_srl){
form.onsubmit=function(){ form.onsubmit=function(){
@ -53,8 +53,8 @@ function editorStart_xe(editor_sequence, primary_key, content_key, editor_height
oEditor.getFrame = function(){ return oWYSIWYGIFrame;} oEditor.getFrame = function(){ return oWYSIWYGIFrame;}
var content = form[content_key].value; var content = form[content_key].value;
var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g; var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g; //'
var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g; var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g; //'
content = content.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"'); content = content.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"');
content = content.replace(hrefPathRegx, 'href="'+request_uri+'?$3"'); content = content.replace(hrefPathRegx, 'href="'+request_uri+'?$3"');
form[content_key].value = content; form[content_key].value = content;
@ -86,6 +86,7 @@ function editorStart_xe(editor_sequence, primary_key, content_key, editor_height
oEditor.registerPlugin(new xe.XE_WYSIWYGStyleGetter()); oEditor.registerPlugin(new xe.XE_WYSIWYGStyleGetter());
oEditor.registerPlugin(new xe.MessageManager(oMessageMap)); oEditor.registerPlugin(new xe.MessageManager(oMessageMap));
oEditor.registerPlugin(new xe.XE_Toolbar(elAppContainer)); oEditor.registerPlugin(new xe.XE_Toolbar(elAppContainer));
oEditor.registerPlugin(new xe.XE_XHTMLFormatter); oEditor.registerPlugin(new xe.XE_XHTMLFormatter);
oEditor.registerPlugin(new xe.XE_GET_WYSYWYG_MODE(editor_sequence)); oEditor.registerPlugin(new xe.XE_GET_WYSYWYG_MODE(editor_sequence));
oEditor.registerPlugin(new xe.XE_GET_WYSYWYG_CONTENT()); oEditor.registerPlugin(new xe.XE_GET_WYSYWYG_CONTENT());
@ -165,11 +166,11 @@ function editorGetIframe(srl) {
function editorReplaceHTML(iframe_obj, text) { function editorReplaceHTML(iframe_obj, text) {
// 이미지 경로 재지정 (rewrite mod) // 이미지 경로 재지정 (rewrite mod)
var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g; var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g;//'
text = text.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"'); text = text.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"');
// href 경로 재지정 (rewrite mod) // href 경로 재지정 (rewrite mod)
var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g; var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g;//'
text = text.replace(hrefPathRegx, 'href="'+request_uri+'?$3"'); text = text.replace(hrefPathRegx, 'href="'+request_uri+'?$3"');
var srl = parseInt(iframe_obj.id.replace(/^.*_/,''),10); var srl = parseInt(iframe_obj.id.replace(/^.*_/,''),10);
@ -198,8 +199,8 @@ xe.XE_GET_WYSYWYG_CONTENT = jQuery.Class({
}, },
TO_WYSIWYG_SET : function(content) { TO_WYSIWYG_SET : function(content) {
var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g; var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g;//'
var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g; var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g;//'
content = content.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"'); content = content.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"');
content = content.replace(hrefPathRegx, 'href="'+request_uri+'?$3"'); content = content.replace(hrefPathRegx, 'href="'+request_uri+'?$3"');
return content; return content;