mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
Xpresseditor에서 자동저장된 문서 첨부 파일 불러오기
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6498 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
567d648f5a
commit
d56181c9ec
9 changed files with 7877 additions and 7846 deletions
|
|
@ -28,6 +28,7 @@
|
|||
<!-- 자동저장용 폼 -->
|
||||
|
||||
<!--@if($enable_autosave)-->
|
||||
<input type="hidden" name="_saved_doc_srl" value="{$saved_doc->document_srl}" />
|
||||
<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}" />
|
||||
|
|
@ -483,8 +484,7 @@
|
|||
<!--%import("../../tpl/js/uploader.js",optimized=false)-->
|
||||
<!--%import("../../tpl/js/swfupload.js",optimized=false)-->
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
editorUploadInit(
|
||||
{
|
||||
var uploadSettingObj = {
|
||||
"editorSequence" : {$editor_sequence},
|
||||
"sessionName" : "{session_name()}",
|
||||
"allowedFileSize" : "{$file_config->allowed_filesize}",
|
||||
|
|
@ -495,7 +495,9 @@
|
|||
"fileListAreaID" : "uploaded_file_list_{$editor_sequence}",
|
||||
"previewAreaID" : "preview_uploaded_{$editor_sequence}",
|
||||
"uploaderStatusID" : "uploader_status_{$editor_sequence}"
|
||||
}
|
||||
};
|
||||
editorUploadInit(
|
||||
uploadSettingObj
|
||||
);
|
||||
//]]></script>
|
||||
<!-- 파일 업로드 영역 -->
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,277 +1,280 @@
|
|||
if (!window.xe) xe = {};
|
||||
|
||||
xe.Editors = [];
|
||||
|
||||
function editorStart_xe(editor_sequence, primary_key, content_key, editor_height, colorset, content_style, content_font, content_font_size) {
|
||||
if(typeof(colorset)=='undefined') colorset = 'white';
|
||||
if(typeof(content_style)=='undefined') content_style = 'xeStyle';
|
||||
if(typeof(content_font)=='undefined') content_font= '';
|
||||
if(typeof(content_font_size)=='undefined') content_font_size= '';
|
||||
|
||||
var target_src = request_uri+'modules/editor/styles/'+content_style+'/editor.html';
|
||||
|
||||
var textarea = jQuery("#xpress-editor-"+editor_sequence);
|
||||
var iframe = jQuery('<iframe id="editor_iframe_'+editor_sequence+'" allowTransparency="true" frameborder="0" src="'+target_src+'" scrolling="yes" style="width:100%;height:'+editor_height+'px">');
|
||||
var htmlsrc = jQuery('<textarea rows="10" cols="20" class="input_syntax '+colorset+'" style="display:none"></textarea>');
|
||||
var form = textarea.get(0).form;
|
||||
form.setAttribute('editor_sequence', editor_sequence);
|
||||
textarea.css("display","none");
|
||||
|
||||
var saved_content = '';
|
||||
if(jQuery("input[name=content]",form).size()>0){
|
||||
saved_content=jQuery("input[name=content]",form).val().replace(/src=\"files\/attach/g,'src="'+request_uri+'files/attach'); //'
|
||||
jQuery("#xpress-editor-"+editor_sequence).val(saved_content);
|
||||
}
|
||||
|
||||
/*
|
||||
// remove procFilter
|
||||
if(form.comment_srl){
|
||||
form.onsubmit=function(){
|
||||
var content = editorGetContent(editor_sequence);
|
||||
editorRelKeys[editor_sequence]['content'].value = content;
|
||||
insert_comment(form);
|
||||
return false;
|
||||
};
|
||||
}else{
|
||||
form.onsubmit=function(){
|
||||
var content = editorGetContent(editor_sequence);
|
||||
editorRelKeys[editor_sequence]['content'].value = content;
|
||||
insert(form);
|
||||
return false;
|
||||
};
|
||||
}
|
||||
*/
|
||||
|
||||
// hide textarea
|
||||
textarea.hide().css('width', '99%').before(iframe).after(htmlsrc);
|
||||
|
||||
// create an editor
|
||||
var oEditor = new xe.XpressCore();
|
||||
var oWYSIWYGIFrame = iframe.get(0);
|
||||
var oIRTextarea = textarea.get(0);
|
||||
var oHTMLSrcTextarea = htmlsrc.get(0);
|
||||
var elAppContainer = jQuery('.xpress-editor', form).get(0);
|
||||
|
||||
oEditor.getFrame = function(){ return oWYSIWYGIFrame;}
|
||||
|
||||
var content = form[content_key].value;
|
||||
|
||||
// src, href, url의 XE 상대경로를 http로 시작하는 full path로 변경
|
||||
content = content.replace(/(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/ig, function(m0,m1,m2,m3,m4,m5) {
|
||||
if(m1=="url(") { m2=''; m4=')'; } else { if(typeof(m2)=='undefined') m2 = '"'; if(typeof(m4)=='undefined') m4 = '"'; if(typeof(m5)=='undefined') m5 = ''; }
|
||||
var val = jQuery.trim(m3).replace(/^\.\//,'');
|
||||
if(/^(http|https|ftp|telnet|mms|\/|\.\.)/i.test(val)) return m0;
|
||||
return m1+m2+request_uri+val+m4+m5;
|
||||
});
|
||||
|
||||
form[content_key].value = content;
|
||||
jQuery("#xpress-editor-"+editor_sequence).val(content);
|
||||
|
||||
// Set standard API
|
||||
editorRelKeys[editor_sequence] = new Array();
|
||||
editorRelKeys[editor_sequence]["primary"] = form[primary_key];
|
||||
editorRelKeys[editor_sequence]["content"] = form[content_key];
|
||||
editorRelKeys[editor_sequence]["func"] = editorGetContentTextarea_xe;
|
||||
editorRelKeys[editor_sequence]["editor"] = oEditor;
|
||||
editorRelKeys[editor_sequence]["pasteHTML"] = function(text){
|
||||
oEditor.exec('PASTE_HTML',[text]);
|
||||
}
|
||||
xe.Editors[editor_sequence] = oEditor;
|
||||
|
||||
// register plugins
|
||||
oEditor.registerPlugin(new xe.CorePlugin(null));
|
||||
|
||||
oEditor.registerPlugin(new xe.XE_PreservTemplate(jQuery("#xpress-editor-"+editor_sequence).val()));
|
||||
oEditor.registerPlugin(new xe.StringConverterManager());
|
||||
oEditor.registerPlugin(new xe.XE_EditingAreaManager("WYSIWYG", oIRTextarea, {nHeight:parseInt(editor_height), nMinHeight:205}, null, elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_EditingArea_HTMLSrc(oHTMLSrcTextarea));
|
||||
oEditor.registerPlugin(new xe.XE_EditingAreaVerticalResizer(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.Utils());
|
||||
oEditor.registerPlugin(new xe.DialogLayerManager());
|
||||
oEditor.registerPlugin(new xe.ActiveLayerManager());
|
||||
oEditor.registerPlugin(new xe.Hotkey());
|
||||
oEditor.registerPlugin(new xe.XE_WYSIWYGStyler());
|
||||
oEditor.registerPlugin(new xe.XE_WYSIWYGStyleGetter());
|
||||
oEditor.registerPlugin(new xe.MessageManager(oMessageMap));
|
||||
oEditor.registerPlugin(new xe.XE_Toolbar(elAppContainer));
|
||||
|
||||
oEditor.registerPlugin(new xe.XE_XHTMLFormatter);
|
||||
oEditor.registerPlugin(new xe.XE_GET_WYSYWYG_MODE(editor_sequence));
|
||||
oEditor.registerPlugin(new xe.XE_GET_WYSYWYG_CONTENT());
|
||||
|
||||
if(jQuery("ul.extra1").length) {
|
||||
oEditor.registerPlugin(new xe.XE_ColorPalette(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FontColor(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_BGColor(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_Quote(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FontNameWithSelectUI(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FontSizeWithSelectUI(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_LineHeightWithSelectUI(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_UndoRedo());
|
||||
oEditor.registerPlugin(new xe.XE_Table(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_Hyperlink(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FindReplacePlugin(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FormatWithSelectUI(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_SCharacter(elAppContainer));
|
||||
}
|
||||
|
||||
if(jQuery("ul.extra2").length) {
|
||||
oEditor.registerPlugin(new xe.XE_Extension(elAppContainer, editor_sequence));
|
||||
}
|
||||
|
||||
if(jQuery("ul.extra3").length) {
|
||||
oEditor.registerPlugin(new xe.XE_EditingModeToggler(elAppContainer));
|
||||
}
|
||||
|
||||
|
||||
//oEditor.registerPlugin(new xe.XE_Preview(elAppContainer));
|
||||
|
||||
if (!jQuery.browser.msie && !jQuery.browser.opera) {
|
||||
oEditor.registerPlugin(new xe.XE_WYSIWYGEnterKey(oWYSIWYGIFrame));
|
||||
}
|
||||
|
||||
// 자동 저장 사용
|
||||
if (s=form._saved_doc_title) {
|
||||
oEditor.registerPlugin(new xe.XE_AutoSave(oIRTextarea, elAppContainer));
|
||||
}
|
||||
|
||||
function load_proc() {
|
||||
try {
|
||||
var doc = oWYSIWYGIFrame.contentWindow.document, str;
|
||||
if (doc.location == 'about:blank') throw 'blank';
|
||||
|
||||
// get innerHTML
|
||||
str = doc.body.innerHTML;
|
||||
|
||||
// register plugin
|
||||
oEditor.registerPlugin(new xe.XE_EditingArea_WYSIWYG(oWYSIWYGIFrame));
|
||||
oEditor.registerPlugin(new xe.XpressRangeManager(oWYSIWYGIFrame));
|
||||
oEditor.registerPlugin(new xe.XE_ExecCommand(oWYSIWYGIFrame));
|
||||
|
||||
if(content_font && !doc.body.style.fontFamily) {
|
||||
doc.body.style.fontFamily = content_font;
|
||||
}
|
||||
if(content_font_size && !doc.body.style.fontSize) {
|
||||
doc.body.style.fontSize = content_font_size;
|
||||
}
|
||||
|
||||
// run
|
||||
oEditor.run();
|
||||
} catch(e) {
|
||||
setTimeout(load_proc, 0);
|
||||
}
|
||||
}
|
||||
|
||||
load_proc();
|
||||
|
||||
return oEditor;
|
||||
}
|
||||
|
||||
function editorGetContentTextarea_xe(editor_sequence) {
|
||||
var oEditor = xe.Editors[editor_sequence] || null;
|
||||
|
||||
if (!oEditor) return '';
|
||||
|
||||
return oEditor.getIR();
|
||||
}
|
||||
|
||||
function editorGetIframe(srl) {
|
||||
return jQuery('iframe#editor_iframe_'+srl).get(0);
|
||||
}
|
||||
|
||||
function editorReplaceHTML(iframe_obj, content) {
|
||||
// src, href, url의 XE 상대경로를 http로 시작하는 full path로 변경
|
||||
content = content.replace(/(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/ig, function(m0,m1,m2,m3,m4,m5) {
|
||||
if(m1=="url(") { m2=''; m4=')'; } else { if(typeof(m2)=='undefined') m2 = '"'; if(typeof(m4)=='undefined') m4 = '"'; if(typeof(m5)=='undefined') m5 = ''; }
|
||||
var val = jQuery.trim(m3).replace(/^\.\//,'');
|
||||
if(/^(http|https|ftp|telnet|mms|\/|\.\.)/i.test(val)) return m0;
|
||||
return m1+m2+request_uri+val+m4+m5;
|
||||
});
|
||||
|
||||
var srl = parseInt(iframe_obj.id.replace(/^.*_/,''),10);
|
||||
editorRelKeys[srl]["pasteHTML"](content);
|
||||
}
|
||||
|
||||
// WYSIWYG 모드를 저장하는 확장기능
|
||||
xe.XE_GET_WYSYWYG_MODE = jQuery.Class({
|
||||
name : "XE_GET_WYSYWYG_MODE",
|
||||
|
||||
$init : function(editor_sequence) {
|
||||
this.editor_sequence = editor_sequence;
|
||||
},
|
||||
|
||||
$ON_CHANGE_EDITING_MODE : function(mode) {
|
||||
editorMode[this.editor_sequence] = (mode =='HTMLSrc') ? 'html' : 'wysiwyg';
|
||||
}
|
||||
});
|
||||
|
||||
// 이미지등의 상대경로를 절대경로로 바꾸는 플러그인
|
||||
xe.XE_GET_WYSYWYG_CONTENT = jQuery.Class({
|
||||
name : "XE_GET_WYSYWYG_CONTENT",
|
||||
|
||||
$ON_MSG_APP_READY : function() {
|
||||
this.oApp.addConverter("IR_TO_WYSIWYG", this.TO_WYSIWYG_SET);
|
||||
this.oApp.addConverter("IR_TO_HTMLSrc", this.IR_TO_HTMLSrc);
|
||||
},
|
||||
|
||||
TO_WYSIWYG_SET : function(content) {
|
||||
// src, href, url의 XE 상대경로를 http로 시작하는 full path로 변경
|
||||
content = content.replace(/(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/ig, function(m0,m1,m2,m3,m4,m5) {
|
||||
if(m1=="url(") { m2=''; m4=')'; } else { if(typeof(m2)=='undefined') m2 = '"'; if(typeof(m4)=='undefined') m4 = '"'; if(typeof(m5)=='undefined') m5 = ''; }
|
||||
var val = jQuery.trim(m3).replace(/^\.\//,'');
|
||||
if(/^(http|https|ftp|telnet|mms|\/|\.\.)/i.test(val)) return m0;
|
||||
return m1+m2+request_uri+val+m4+m5;
|
||||
});
|
||||
|
||||
return content;
|
||||
},
|
||||
|
||||
IR_TO_HTMLSrc : function(content) {
|
||||
// src, href, url의 XE 상대경로를 http로 시작하는 full path로 변경
|
||||
content = content.replace(/(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>|\))*/ig, function(m0,m1,m2,m3,m4,m5) {
|
||||
var uriReg = new RegExp('^'+request_uri.replace('\/','\\/'),'ig');
|
||||
if(m1=="url(") { m2=''; m4=')'; } else { if(typeof(m2)=='undefined') m2 = '"'; if(typeof(m4)=='undefined') m4 = '"'; if(typeof(m5)=='undefined') m5 = ''; }
|
||||
var val = jQuery.trim(m3);
|
||||
if(uriReg.test(val)) val = val.replace(uriReg,'');
|
||||
else val = m3;
|
||||
return m1+m2+val+m4+m5;
|
||||
});
|
||||
return content;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// 서식 기본 내용을 보존
|
||||
xe.XE_PreservTemplate = jQuery.Class({
|
||||
name : "XE_PreservTemplate",
|
||||
isRun : false,
|
||||
|
||||
$BEFORE_SET_IR : function(content) {
|
||||
if(!this.isRun && !content) {
|
||||
this.isRun = true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 미리보기 확장기능
|
||||
xe.XE_Preview = jQuery.Class({
|
||||
name : "XE_Preview",
|
||||
elPreviewButton : null,
|
||||
|
||||
$init : function(elAppContainer) {
|
||||
this._assignHTMLObjects(elAppContainer);
|
||||
},
|
||||
|
||||
_assignHTMLObjects : function(elAppContainer) {
|
||||
this.elPreviewButton = jQuery("BUTTON.xpress_xeditor_preview_button", elAppContainer);
|
||||
},
|
||||
|
||||
$ON_MSG_APP_READY : function() {
|
||||
this.oApp.registerBrowserEvent(this.elPreviewButton.get(0), "click", "EVENT_PREVIEW", []);
|
||||
},
|
||||
|
||||
$ON_EVENT_PREVIEW : function() {
|
||||
// TODO : 버튼이 눌렸을 때의 동작 정의
|
||||
}
|
||||
});
|
||||
if (!window.xe) xe = {};
|
||||
|
||||
xe.Editors = [];
|
||||
|
||||
function editorStart_xe(editor_sequence, primary_key, content_key, editor_height, colorset, content_style, content_font, content_font_size) {
|
||||
if(typeof(colorset)=='undefined') colorset = 'white';
|
||||
if(typeof(content_style)=='undefined') content_style = 'xeStyle';
|
||||
if(typeof(content_font)=='undefined') content_font= '';
|
||||
if(typeof(content_font_size)=='undefined') content_font_size= '';
|
||||
|
||||
var target_src = request_uri+'modules/editor/styles/'+content_style+'/editor.html';
|
||||
|
||||
var textarea = jQuery("#xpress-editor-"+editor_sequence);
|
||||
var iframe = jQuery('<iframe id="editor_iframe_'+editor_sequence+'" allowTransparency="true" frameborder="0" src="'+target_src+'" scrolling="yes" style="width:100%;height:'+editor_height+'px">');
|
||||
var htmlsrc = jQuery('<textarea rows="10" cols="20" class="input_syntax '+colorset+'" style="display:none"></textarea>');
|
||||
var form = textarea.get(0).form;
|
||||
form.setAttribute('editor_sequence', editor_sequence);
|
||||
textarea.css("display","none");
|
||||
|
||||
var saved_content = '';
|
||||
if(jQuery("input[name=content]",form).size()>0){
|
||||
saved_content=jQuery("input[name=content]",form).val().replace(/src=\"files\/attach/g,'src="'+request_uri+'files/attach'); //'
|
||||
jQuery("#xpress-editor-"+editor_sequence).val(saved_content);
|
||||
}
|
||||
|
||||
/*
|
||||
// remove procFilter
|
||||
if(form.comment_srl){
|
||||
form.onsubmit=function(){
|
||||
var content = editorGetContent(editor_sequence);
|
||||
editorRelKeys[editor_sequence]['content'].value = content;
|
||||
insert_comment(form);
|
||||
return false;
|
||||
};
|
||||
}else{
|
||||
form.onsubmit=function(){
|
||||
var content = editorGetContent(editor_sequence);
|
||||
editorRelKeys[editor_sequence]['content'].value = content;
|
||||
insert(form);
|
||||
return false;
|
||||
};
|
||||
}
|
||||
*/
|
||||
|
||||
// hide textarea
|
||||
textarea.hide().css('width', '99%').before(iframe).after(htmlsrc);
|
||||
|
||||
// create an editor
|
||||
var oEditor = new xe.XpressCore();
|
||||
var oWYSIWYGIFrame = iframe.get(0);
|
||||
var oIRTextarea = textarea.get(0);
|
||||
var oHTMLSrcTextarea = htmlsrc.get(0);
|
||||
var elAppContainer = jQuery('.xpress-editor', form).get(0);
|
||||
|
||||
oEditor.getFrame = function(){ return oWYSIWYGIFrame;}
|
||||
|
||||
var content = form[content_key].value;
|
||||
|
||||
// src, href, url의 XE 상대경로를 http로 시작하는 full path로 변경
|
||||
content = content.replace(/(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/ig, function(m0,m1,m2,m3,m4,m5) {
|
||||
if(m1=="url(") { m2=''; m4=')'; } else { if(typeof(m2)=='undefined') m2 = '"'; if(typeof(m4)=='undefined') m4 = '"'; if(typeof(m5)=='undefined') m5 = ''; }
|
||||
var val = jQuery.trim(m3).replace(/^\.\//,'');
|
||||
if(/^(http|https|ftp|telnet|mms|\/|\.\.)/i.test(val)) return m0;
|
||||
return m1+m2+request_uri+val+m4+m5;
|
||||
});
|
||||
|
||||
form[content_key].value = content;
|
||||
jQuery("#xpress-editor-"+editor_sequence).val(content);
|
||||
|
||||
// Set standard API
|
||||
editorRelKeys[editor_sequence] = new Array();
|
||||
editorRelKeys[editor_sequence]["primary"] = form[primary_key];
|
||||
editorRelKeys[editor_sequence]["content"] = form[content_key];
|
||||
editorRelKeys[editor_sequence]["func"] = editorGetContentTextarea_xe;
|
||||
editorRelKeys[editor_sequence]["editor"] = oEditor;
|
||||
editorRelKeys[editor_sequence]["pasteHTML"] = function(text){
|
||||
oEditor.exec('PASTE_HTML',[text]);
|
||||
}
|
||||
xe.Editors[editor_sequence] = oEditor;
|
||||
|
||||
var response_tags = new Array("error","message","title","content","document_srl");
|
||||
exec_xml('editor',"loadSaveDoc", null, function (a,b,c) { editorRelKeys[editor_sequence]["primary"].value = a['document_srl']; }, response_tags, null);
|
||||
|
||||
// register plugins
|
||||
oEditor.registerPlugin(new xe.CorePlugin(null));
|
||||
|
||||
oEditor.registerPlugin(new xe.XE_PreservTemplate(jQuery("#xpress-editor-"+editor_sequence).val()));
|
||||
oEditor.registerPlugin(new xe.StringConverterManager());
|
||||
oEditor.registerPlugin(new xe.XE_EditingAreaManager("WYSIWYG", oIRTextarea, {nHeight:parseInt(editor_height), nMinHeight:205}, null, elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_EditingArea_HTMLSrc(oHTMLSrcTextarea));
|
||||
oEditor.registerPlugin(new xe.XE_EditingAreaVerticalResizer(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.Utils());
|
||||
oEditor.registerPlugin(new xe.DialogLayerManager());
|
||||
oEditor.registerPlugin(new xe.ActiveLayerManager());
|
||||
oEditor.registerPlugin(new xe.Hotkey());
|
||||
oEditor.registerPlugin(new xe.XE_WYSIWYGStyler());
|
||||
oEditor.registerPlugin(new xe.XE_WYSIWYGStyleGetter());
|
||||
oEditor.registerPlugin(new xe.MessageManager(oMessageMap));
|
||||
oEditor.registerPlugin(new xe.XE_Toolbar(elAppContainer));
|
||||
|
||||
oEditor.registerPlugin(new xe.XE_XHTMLFormatter);
|
||||
oEditor.registerPlugin(new xe.XE_GET_WYSYWYG_MODE(editor_sequence));
|
||||
oEditor.registerPlugin(new xe.XE_GET_WYSYWYG_CONTENT());
|
||||
|
||||
if(jQuery("ul.extra1").length) {
|
||||
oEditor.registerPlugin(new xe.XE_ColorPalette(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FontColor(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_BGColor(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_Quote(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FontNameWithSelectUI(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FontSizeWithSelectUI(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_LineHeightWithSelectUI(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_UndoRedo());
|
||||
oEditor.registerPlugin(new xe.XE_Table(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_Hyperlink(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FindReplacePlugin(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_FormatWithSelectUI(elAppContainer));
|
||||
oEditor.registerPlugin(new xe.XE_SCharacter(elAppContainer));
|
||||
}
|
||||
|
||||
if(jQuery("ul.extra2").length) {
|
||||
oEditor.registerPlugin(new xe.XE_Extension(elAppContainer, editor_sequence));
|
||||
}
|
||||
|
||||
if(jQuery("ul.extra3").length) {
|
||||
oEditor.registerPlugin(new xe.XE_EditingModeToggler(elAppContainer));
|
||||
}
|
||||
|
||||
|
||||
//oEditor.registerPlugin(new xe.XE_Preview(elAppContainer));
|
||||
|
||||
if (!jQuery.browser.msie && !jQuery.browser.opera) {
|
||||
oEditor.registerPlugin(new xe.XE_WYSIWYGEnterKey(oWYSIWYGIFrame));
|
||||
}
|
||||
|
||||
// 자동 저장 사용
|
||||
if (s=form._saved_doc_title) {
|
||||
oEditor.registerPlugin(new xe.XE_AutoSave(oIRTextarea, elAppContainer));
|
||||
}
|
||||
|
||||
function load_proc() {
|
||||
try {
|
||||
var doc = oWYSIWYGIFrame.contentWindow.document, str;
|
||||
if (doc.location == 'about:blank') throw 'blank';
|
||||
|
||||
// get innerHTML
|
||||
str = doc.body.innerHTML;
|
||||
|
||||
// register plugin
|
||||
oEditor.registerPlugin(new xe.XE_EditingArea_WYSIWYG(oWYSIWYGIFrame));
|
||||
oEditor.registerPlugin(new xe.XpressRangeManager(oWYSIWYGIFrame));
|
||||
oEditor.registerPlugin(new xe.XE_ExecCommand(oWYSIWYGIFrame));
|
||||
|
||||
if(content_font && !doc.body.style.fontFamily) {
|
||||
doc.body.style.fontFamily = content_font;
|
||||
}
|
||||
if(content_font_size && !doc.body.style.fontSize) {
|
||||
doc.body.style.fontSize = content_font_size;
|
||||
}
|
||||
|
||||
// run
|
||||
oEditor.run();
|
||||
} catch(e) {
|
||||
setTimeout(load_proc, 0);
|
||||
}
|
||||
}
|
||||
|
||||
load_proc();
|
||||
|
||||
return oEditor;
|
||||
}
|
||||
|
||||
function editorGetContentTextarea_xe(editor_sequence) {
|
||||
var oEditor = xe.Editors[editor_sequence] || null;
|
||||
|
||||
if (!oEditor) return '';
|
||||
|
||||
return oEditor.getIR();
|
||||
}
|
||||
|
||||
function editorGetIframe(srl) {
|
||||
return jQuery('iframe#editor_iframe_'+srl).get(0);
|
||||
}
|
||||
|
||||
function editorReplaceHTML(iframe_obj, content) {
|
||||
// src, href, url의 XE 상대경로를 http로 시작하는 full path로 변경
|
||||
content = content.replace(/(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/ig, function(m0,m1,m2,m3,m4,m5) {
|
||||
if(m1=="url(") { m2=''; m4=')'; } else { if(typeof(m2)=='undefined') m2 = '"'; if(typeof(m4)=='undefined') m4 = '"'; if(typeof(m5)=='undefined') m5 = ''; }
|
||||
var val = jQuery.trim(m3).replace(/^\.\//,'');
|
||||
if(/^(http|https|ftp|telnet|mms|\/|\.\.)/i.test(val)) return m0;
|
||||
return m1+m2+request_uri+val+m4+m5;
|
||||
});
|
||||
|
||||
var srl = parseInt(iframe_obj.id.replace(/^.*_/,''),10);
|
||||
editorRelKeys[srl]["pasteHTML"](content);
|
||||
}
|
||||
|
||||
// WYSIWYG 모드를 저장하는 확장기능
|
||||
xe.XE_GET_WYSYWYG_MODE = jQuery.Class({
|
||||
name : "XE_GET_WYSYWYG_MODE",
|
||||
|
||||
$init : function(editor_sequence) {
|
||||
this.editor_sequence = editor_sequence;
|
||||
},
|
||||
|
||||
$ON_CHANGE_EDITING_MODE : function(mode) {
|
||||
editorMode[this.editor_sequence] = (mode =='HTMLSrc') ? 'html' : 'wysiwyg';
|
||||
}
|
||||
});
|
||||
|
||||
// 이미지등의 상대경로를 절대경로로 바꾸는 플러그인
|
||||
xe.XE_GET_WYSYWYG_CONTENT = jQuery.Class({
|
||||
name : "XE_GET_WYSYWYG_CONTENT",
|
||||
|
||||
$ON_MSG_APP_READY : function() {
|
||||
this.oApp.addConverter("IR_TO_WYSIWYG", this.TO_WYSIWYG_SET);
|
||||
this.oApp.addConverter("IR_TO_HTMLSrc", this.IR_TO_HTMLSrc);
|
||||
},
|
||||
|
||||
TO_WYSIWYG_SET : function(content) {
|
||||
// src, href, url의 XE 상대경로를 http로 시작하는 full path로 변경
|
||||
content = content.replace(/(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/ig, function(m0,m1,m2,m3,m4,m5) {
|
||||
if(m1=="url(") { m2=''; m4=')'; } else { if(typeof(m2)=='undefined') m2 = '"'; if(typeof(m4)=='undefined') m4 = '"'; if(typeof(m5)=='undefined') m5 = ''; }
|
||||
var val = jQuery.trim(m3).replace(/^\.\//,'');
|
||||
if(/^(http|https|ftp|telnet|mms|\/|\.\.)/i.test(val)) return m0;
|
||||
return m1+m2+request_uri+val+m4+m5;
|
||||
});
|
||||
|
||||
return content;
|
||||
},
|
||||
|
||||
IR_TO_HTMLSrc : function(content) {
|
||||
// src, href, url의 XE 상대경로를 http로 시작하는 full path로 변경
|
||||
content = content.replace(/(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>|\))*/ig, function(m0,m1,m2,m3,m4,m5) {
|
||||
var uriReg = new RegExp('^'+request_uri.replace('\/','\\/'),'ig');
|
||||
if(m1=="url(") { m2=''; m4=')'; } else { if(typeof(m2)=='undefined') m2 = '"'; if(typeof(m4)=='undefined') m4 = '"'; if(typeof(m5)=='undefined') m5 = ''; }
|
||||
var val = jQuery.trim(m3);
|
||||
if(uriReg.test(val)) val = val.replace(uriReg,'');
|
||||
else val = m3;
|
||||
return m1+m2+val+m4+m5;
|
||||
});
|
||||
return content;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// 서식 기본 내용을 보존
|
||||
xe.XE_PreservTemplate = jQuery.Class({
|
||||
name : "XE_PreservTemplate",
|
||||
isRun : false,
|
||||
|
||||
$BEFORE_SET_IR : function(content) {
|
||||
if(!this.isRun && !content) {
|
||||
this.isRun = true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 미리보기 확장기능
|
||||
xe.XE_Preview = jQuery.Class({
|
||||
name : "XE_Preview",
|
||||
elPreviewButton : null,
|
||||
|
||||
$init : function(elAppContainer) {
|
||||
this._assignHTMLObjects(elAppContainer);
|
||||
},
|
||||
|
||||
_assignHTMLObjects : function(elAppContainer) {
|
||||
this.elPreviewButton = jQuery("BUTTON.xpress_xeditor_preview_button", elAppContainer);
|
||||
},
|
||||
|
||||
$ON_MSG_APP_READY : function() {
|
||||
this.oApp.registerBrowserEvent(this.elPreviewButton.get(0), "click", "EVENT_PREVIEW", []);
|
||||
},
|
||||
|
||||
$ON_EVENT_PREVIEW : function() {
|
||||
// TODO : 버튼이 눌렸을 때의 동작 정의
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,41 +1,41 @@
|
|||
function editorStartTextarea(editor_sequence, content_key, primary_key) {
|
||||
var obj = xGetElementById('editor_'+editor_sequence);
|
||||
var use_html = xGetElementById('htm_'+editor_sequence).value;
|
||||
obj.form.setAttribute('editor_sequence', editor_sequence);
|
||||
|
||||
obj.style.width = '99%';
|
||||
|
||||
editorRelKeys[editor_sequence] = new Array();
|
||||
editorRelKeys[editor_sequence]["primary"] = obj.form[primary_key];
|
||||
editorRelKeys[editor_sequence]["content"] = obj.form[content_key];
|
||||
editorRelKeys[editor_sequence]["func"] = editorGetContentTextarea;
|
||||
|
||||
var content = obj.form[content_key].value;
|
||||
if(use_html) {
|
||||
content = content.replace(/<br([^>]*)>/ig,"\n");
|
||||
if(use_html!='br') {
|
||||
content = content.replace(/</g, "<");
|
||||
content = content.replace(/>/g, ">");
|
||||
content = content.replace(/"/g, '"');
|
||||
content = content.replace(/&/g, "&");
|
||||
}
|
||||
}
|
||||
obj.value = content;
|
||||
}
|
||||
|
||||
function editorGetContentTextarea(editor_sequence) {
|
||||
var obj = xGetElementById('editor_'+editor_sequence);
|
||||
var use_html = xGetElementById('htm_'+editor_sequence).value;
|
||||
var content = obj.value.trim();
|
||||
if(use_html) {
|
||||
if(use_html!='br') {
|
||||
content = content.replace(/&/g, "&");
|
||||
content = content.replace(/</g, "<");
|
||||
content = content.replace(/>/g, ">");
|
||||
content = content.replace(/\"/g, """);
|
||||
}
|
||||
content = content.replace(/(\r\n|\n)/g, "<br />");
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
function editorStartTextarea(editor_sequence, content_key, primary_key) {
|
||||
var obj = xGetElementById('editor_'+editor_sequence);
|
||||
var use_html = xGetElementById('htm_'+editor_sequence).value;
|
||||
obj.form.setAttribute('editor_sequence', editor_sequence);
|
||||
|
||||
obj.style.width = '99%';
|
||||
|
||||
editorRelKeys[editor_sequence] = new Array();
|
||||
editorRelKeys[editor_sequence]["primary"] = obj.form[primary_key];
|
||||
editorRelKeys[editor_sequence]["content"] = obj.form[content_key];
|
||||
editorRelKeys[editor_sequence]["func"] = editorGetContentTextarea;
|
||||
|
||||
var content = obj.form[content_key].value;
|
||||
if(use_html) {
|
||||
content = content.replace(/<br([^>]*)>/ig,"\n");
|
||||
if(use_html!='br') {
|
||||
content = content.replace(/</g, "<");
|
||||
content = content.replace(/>/g, ">");
|
||||
content = content.replace(/"/g, '"');
|
||||
content = content.replace(/&/g, "&");
|
||||
}
|
||||
}
|
||||
obj.value = content;
|
||||
}
|
||||
|
||||
function editorGetContentTextarea(editor_sequence) {
|
||||
var obj = xGetElementById('editor_'+editor_sequence);
|
||||
var use_html = xGetElementById('htm_'+editor_sequence).value;
|
||||
var content = obj.value.trim();
|
||||
if(use_html) {
|
||||
if(use_html!='br') {
|
||||
content = content.replace(/&/g, "&");
|
||||
content = content.replace(/</g, "<");
|
||||
content = content.replace(/>/g, ">");
|
||||
content = content.replace(/\"/g, """);
|
||||
}
|
||||
content = content.replace(/(\r\n|\n)/g, "<br />");
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,110 +1,110 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">XpressEditor Skin</title>
|
||||
<title xml:lang="es">XpressEditor Skin</title>
|
||||
<title xml:lang="en">XpressEditor Skin</title>
|
||||
<title xml:lang="jp">XpressEditorスキン</title>
|
||||
<title xml:lang="zh-CN">XpressEditor皮肤</title>
|
||||
<title xml:lang="zh-TW">XpressEditor面板</title>
|
||||
<description xml:lang="ko">
|
||||
XpressEditor based on SmartEditor Basic by 행복한고니
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<version>0.3.16</version>
|
||||
<date>2009-03-22</date>
|
||||
<author email_address="gonom9@gmail.com" link="http://mygony.com">
|
||||
<name xml:lang="ko">행복한고니</name>
|
||||
<name xml:lang="es">gony</name>
|
||||
<name xml:lang="en">gony</name>
|
||||
<name xml:lang="jp">gony</name>
|
||||
<name xml:lang="zh-CN">gony</name>
|
||||
<name xml:lang="zh-TW">gony</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="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="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="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">白色文字編輯器(Auto Line Break)</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="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">黑色文字編輯器(Auto Line Break)</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="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">白色文字編輯器(Use 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="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">黑色文字編輯器(Use 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="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">白色文字編輯器(No 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="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">黑色文字編輯器(No HTML)</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">XpressEditor Skin</title>
|
||||
<title xml:lang="es">XpressEditor Skin</title>
|
||||
<title xml:lang="en">XpressEditor Skin</title>
|
||||
<title xml:lang="jp">XpressEditorスキン</title>
|
||||
<title xml:lang="zh-CN">XpressEditor皮肤</title>
|
||||
<title xml:lang="zh-TW">XpressEditor面板</title>
|
||||
<description xml:lang="ko">
|
||||
XpressEditor based on SmartEditor Basic by 행복한고니
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
XpressEditor based on SmartEditor Basic by gony
|
||||
</description>
|
||||
<version>0.3.16</version>
|
||||
<date>2009-03-22</date>
|
||||
<author email_address="gonom9@gmail.com" link="http://mygony.com">
|
||||
<name xml:lang="ko">행복한고니</name>
|
||||
<name xml:lang="es">gony</name>
|
||||
<name xml:lang="en">gony</name>
|
||||
<name xml:lang="jp">gony</name>
|
||||
<name xml:lang="zh-CN">gony</name>
|
||||
<name xml:lang="zh-TW">gony</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="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="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="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">白色文字編輯器(Auto Line Break)</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="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">黑色文字編輯器(Auto Line Break)</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="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">白色文字編輯器(Use 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="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">黑色文字編輯器(Use 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="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">白色文字編輯器(No 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="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">黑色文字編輯器(No HTML)</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue