XE의 문서 서식 기능 추가 (./modules/editor/styles 에 서식 추가 가능)

문서 서식 기능을 글 작성과 볼때 동일한 형태 제공하도록 개선.
각 모듈별 추가 설정에서 문서 서식 설정할 수 있는 기능 추가


git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6134 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2009-04-17 03:54:39 +00:00
parent 2e43bfef03
commit 7496aeebb8
54 changed files with 379 additions and 144 deletions

View file

@ -80,6 +80,7 @@
$editor_config->editor_skin = Context::get('editor_skin');
$editor_config->comment_editor_skin = Context::get('comment_editor_skin');
$editor_config->content_style = Context::get('content_style');
$editor_config->sel_editor_colorset = Context::get('sel_editor_colorset');
$editor_config->sel_comment_editor_colorset = Context::get('sel_comment_editor_colorset');
@ -135,9 +136,27 @@
}
/**
* @brief 에디터컴포넌트의 코드를 결과물로 변환
* @brief 에디터컴포넌트의 코드를 결과물로 변환 + 문서서식 style 지정
**/
function triggerEditorComponentCompile(&$content) {
$module_info = Context::get('module_info');
$module_srl = $module_info->module_srl;
if($module_srl) {
$oEditorModel = &getModel('editor');
$editor_config = $oEditorModel->getEditorConfig($module_srl);
$content_style = $editor_config->content_style;
$path = _XE_PATH_.'modules/editor/styles/'.$content_style.'/';
if(is_dir($path) && file_exists($path.'style.ini')) {
$ini = file($path.'style.ini');
for($i=0,$c=count($ini);$i<$c;$i++) {
$file = trim($ini[$i]);
if(!$file) continue;
if(preg_match('/\.css$/i',$file)) Context::addCSSFile('./modules/editor/styles/'.$content_style.'/'.$file, false);
elseif(preg_match('/\.js/i',$file)) Context::addJsFile('./modules/editor/styles/'.$content_style.'/'.$file, false);
}
}
}
$content = $this->transComponent($content);
}

View file

@ -48,6 +48,7 @@
if(!$editor_config->editor_skin) $editor_config->editor_skin = 'xpresseditor';
if(!$editor_config->comment_editor_skin) $editor_config->comment_editor_skin = 'xpresseditor';
if(!$editor_config->content_style) $editor_config->content_style = 'xeStyle';
return $editor_config;
}
@ -65,6 +66,9 @@
if(!$option->allow_fileupload) $allow_fileupload = false;
else $allow_fileupload = true;
// content_style 세팅
Context::set('content_style', $option->content_style);
// 자동 저장 유무 옵션 설정
if(!$option->enable_autosave) $enable_autosave = false;
else $enable_autosave = true;
@ -214,6 +218,7 @@
// type에 따른 설정 정리
if($type == 'document') {
$config->editor_skin = $editor_config->editor_skin;
$config->content_style = $editor_config->content_style;
$config->sel_editor_colorset = $editor_config->sel_editor_colorset;
$config->upload_file_grant = $editor_config->upload_file_grant;
$config->enable_default_component_grant = $editor_config->enable_default_component_grant;
@ -223,6 +228,7 @@
$config->enable_autosave = $editor_config->enable_autosave;
} else {
$config->editor_skin = $editor_config->comment_editor_skin;
$config->content_style = $editor_config->content_style;
$config->sel_editor_colorset = $editor_config->sel_comment_editor_colorset;
$config->upload_file_grant = $editor_config->comment_upload_file_grant;
$config->enable_default_component_grant = $editor_config->enable_comment_default_component_grant;
@ -242,6 +248,7 @@
// 에디터 옵션 변수를 미리 설정
$option->skin = $config->editor_skin;
$option->content_style = $config->content_style;
$option->colorset = $config->sel_editor_colorset;
// 파일 업로드 권한 체크

View file

@ -87,17 +87,25 @@
Context::set('editor_config', $editor_config);
// 에디터 스킨 목록을 구함
$editor_skin_list = FileHandler::readDir('./modules/editor/skins');
Context::set('editor_skin_list', $editor_skin_list);
$oModuleModel = &getModel('module');
// 에디터 스킨 목록을 구함
$editor_skin_list = FileHandler::readDir(_XE_PATH_.'modules/editor/skins');
Context::set('editor_skin_list', $editor_skin_list);
$skin_info = $oModuleModel->loadSkinInfo($this->module_path,$editor_config->editor_skin);
Context::set('editor_colorset_list', $skin_info->colorset);
$skin_info = $oModuleModel->loadSkinInfo($this->module_path,$editor_config->comment_editor_skin);
Context::set('editor_comment_colorset_list', $skin_info->colorset);
$contents = FileHandler::readDir(_XE_PATH_.'modules/editor/styles');
for($i=0,$c=count($contents);$i<$c;$i++) {
$style = $contents[$i];
$info = $oModuleModel->loadSkinInfo($this->module_path,$style,'styles');
$content_style_list[$style]->title = $info->title;
}
Context::set('content_style_list', $content_style_list);
// 그룹 목록을 구함
$oMemberModel = &getModel('member');

View file

@ -16,6 +16,7 @@
$lang->component_description = 'Description';
$lang->component_extra_vars = 'Option Variable';
$lang->component_grant = 'Permission Setting';
$lang->content_style = 'Content Style';
$lang->about_component = 'About component';
$lang->about_component_grant = 'Selected group(s) will be able to use expanded components of editor.<br />(Leave them blank if you want all groups to have permission)';
@ -41,6 +42,7 @@
$lang->editor_height = 'Height of Editor';
$lang->about_editor_skin = 'You may select the skin of editor.';
$lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다';
$lang->about_upload_file_grant = 'Selected group(s) will be able to upload files. (Leave them blank if you want all groups to have permission)';
$lang->about_default_component_grant = 'Selected group(s) will be able to use default components of editor. (Leave them blank if you want all groups to have permission)';
$lang->about_editor_height = 'You may set the height of editor.';

View file

@ -16,6 +16,7 @@
$lang->component_description = 'Descripción';
$lang->component_extra_vars = 'Varibles Extras';
$lang->component_grant = 'Ajuste de las atribuciones';
$lang->content_style = 'Content Style';
$lang->about_component = 'Presentación del componente';
$lang->about_component_grant = 'Usted puede configurar el permiso de utilizar la ampliación de los componentes de editor.<br /> (Todo el mundo tendría permiso si no comprobado)';
@ -41,6 +42,7 @@
$lang->editor_height = 'Altura de Editor';
$lang->about_editor_skin = 'Usted puede seleccionar la piel del editor.';
$lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다';
$lang->about_upload_file_grant = 'Usted puede configurar el permiso de archivo adjunto. (Todo el mundo tendría permiso si no comprobado)';
$lang->about_default_component_grant = 'Usted puede configurar el permiso de uso de los componentes de editor por defecto. (Todo el mundo tendría permiso si no comprobado)';
$lang->about_editor_height = 'Usted puede configurar la altura del editor.';

View file

@ -16,6 +16,7 @@
$lang->component_description = 'Description';
$lang->component_extra_vars = 'Variables d\'Option';
$lang->component_grant = 'Configuration de la Permission';
$lang->content_style = 'Content Style';
$lang->about_component = 'Sur le Composant';
$lang->about_component_grant = 'Vous pouvez configurer la Permission d\'utiliser des composants additionnels de l\'Editeur.<br /> (Tout le monde aura la Permission si vous ne cochez rien)';
@ -41,6 +42,7 @@
$lang->editor_height = 'Hauteur de l\'Editeur';
$lang->about_editor_skin = 'Vous pouvez choisir l\'habillage de l\'Editeur.';
$lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다';
$lang->about_upload_file_grant = 'Vous pouvez configurer la permission d\'attacher les fichiers. (Tout le monde aura la permission si vous ne cochez rien)';
$lang->about_default_component_grant = 'Vous pouvez configurer la permission d\'utiliser les Composants Par Défaut de l\'Editeur. (Tout le monde aura la permission si vous ne cochez rien)';
$lang->about_editor_height = 'Vous pouvez configurer l\'hauteur de l\'Editeur.';

View file

@ -16,6 +16,7 @@
$lang->component_description = '説明';
$lang->component_extra_vars = '設定変数';
$lang->component_grant = '権限設定';
$lang->content_style = 'Content Style';
$lang->about_component = 'コンポーネント情報';
$lang->about_component_grant = '基本コンポーネント以外の拡張コンポーネント機能が利用可能な権限の設定が出来ます。<br />(選択なしの場合、誰でも利用可能)';
@ -41,6 +42,7 @@
$lang->editor_height = 'エディターの高さ';
$lang->about_editor_skin = 'エディターのスキンの選択が出来ます。';
$lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다';
$lang->about_upload_file_grant = 'ファイル添付可能な権限の設定が出来ます。(選択なしの場合、誰でも添付が可能)';
$lang->about_default_component_grant = 'エディターでの基本コンポーネントを使用可能な権限の設定が出来ます。(選択なしの場合、誰でも利用可能)';
$lang->about_editor_height = 'エディターの基本高さを設定します。';
@ -201,4 +203,4 @@
$lang->edit->merge_cells = '셀 병합';
$lang->edit->split_row = '행 분할';
$lang->edit->split_col = '열 분할';
?>
?>

View file

@ -16,6 +16,7 @@
$lang->component_description = '설명';
$lang->component_extra_vars = '설정 변수';
$lang->component_grant = '권한설정';
$lang->content_style = '문서 서식';
$lang->about_component = '컴포넌트 소개';
$lang->about_component_grant = '기본 컴포넌트외의 확장 컴포넌트 기능을 사용할 수 있는 권한을 지정할 수 있습니다.<br /> (모두 해제시 아무나 사용 가능합니다)';
@ -41,6 +42,7 @@
$lang->editor_height = '에디터 높이';
$lang->about_editor_skin = '에디터 스킨을 선택하실 수 있습니다';
$lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다';
$lang->about_upload_file_grant = '파일을 첨부할 수 있는 권한을 지정하실 수 있습니다. (모두 해제 시 아무나 첨부 가능합니다)';
$lang->about_default_component_grant = '에디터에서 사용되는 기본 컴포넌트를 사용할 수 있는 권한을 지정할 수 있습니다. (모두 해제 시 아무나 사용 가능합니다)';
$lang->about_editor_height = '에디터의 기본 높이를 지정하실 수 있습니다.';
@ -202,4 +204,4 @@
$lang->edit->split_row = '행 분할';
$lang->edit->split_col = '열 분할';
?>
?>

View file

@ -16,6 +16,7 @@
$lang->component_description = 'Описание';
$lang->component_extra_vars = 'Экстра перем.';
$lang->component_grant = 'Настройки прав доступа';
$lang->content_style = 'Content Style';
$lang->about_component = 'О компоненте';
$lang->about_component_grant = 'Только выбранным группам позволено использование.<br /> (Каждый может использовать его, если режим выключен)';
@ -41,6 +42,7 @@
$lang->editor_height = '에디터 높이';
$lang->about_editor_skin = '에디터 스킨을 선택하실 수 있습니다';
$lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다';
$lang->about_upload_file_grant = '파일을 첨부할 수 있는 권한을 지정하실 수 있습니다 (모두 해제시 아무나 첨부 가능합니다)';
$lang->about_default_component_grant = '에디터에서 사용되는 기본 컴포넌트를 사용할 수 있는 권한을 지정할 수 있습니다. (모두 해제시 아무나 사용 가능합니다)';
$lang->about_editor_height = '에디터의 기본 높이를 지정하실 수 있습니다';
@ -195,4 +197,4 @@
$lang->edit->merge_cells = '셀 병합';
$lang->edit->split_row = '행 분할';
$lang->edit->split_col = '열 분할';
?>
?>

View file

@ -16,6 +16,7 @@
$lang->component_description = '说明';
$lang->component_extra_vars = '变数设置';
$lang->component_grant = '权限设置';
$lang->content_style = 'Content Style';
$lang->about_component = '组件简介';
$lang->about_component_grant = '可以设置除默认组件外的扩展组件使用权限<br />(全部解除时任何用户都可以使用)。';
@ -41,6 +42,7 @@
$lang->editor_height = '编辑器高度';
$lang->about_editor_skin = '可以选择编辑器皮肤。';
$lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다';
$lang->about_upload_file_grant = '可以设置上传文件的权限(全部解除为无限制)。';
$lang->about_default_component_grant = '可以设置编辑器默认组件的使用权限(全部解除为无限制)。';
$lang->about_editor_height = '可以指定编辑器的默认高度。';

View file

@ -16,6 +16,7 @@
$lang->component_description = '說明';
$lang->component_extra_vars = '變數設置';
$lang->component_grant = '權限設置';
$lang->content_style = 'Content Style';
$lang->about_component = '組件簡介';
$lang->about_component_grant = '除預設組件外,可設置延伸組件的使用權限<br />(全部解除時,任何用戶都可使用)。';
@ -41,6 +42,7 @@
$lang->editor_height = '編輯器高度';
$lang->about_editor_skin = '選擇編輯器面板。';
$lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다';
$lang->about_upload_file_grant = '設置上傳檔案的權限(全部解除為無限制)。';
$lang->about_default_component_grant = '設置編輯器預設組件的使用權限(全部解除為無限制)。';
$lang->about_editor_height = '指定編輯器的預設高度。';
@ -202,4 +204,4 @@
$lang->edit->merge_cells = '셀 병합';
$lang->edit->split_row = '행 분할';
$lang->edit->split_col = '열 분할';
?>
?>

View file

@ -1,30 +0,0 @@
@charset "utf-8";
/* NHN > UIT Center > Open UI Technology Team > Jeong Chan Myeong(dece24@nhncorp.com) 200812 */
html,
body{ height:100%; background-color:transparent; color:#fff;}
#xpressInput{ margin:0 10px 0 0;}
.xpressOutput{ font-size:12px; line-height:1.6; font-family:Dotum, AppleGothic, Sans-serif;}
.xpressOutput p{ margin-top:7px; margin-bottom:7px;}
.xpressOutput blockquote.q1,
.xpressOutput blockquote.q2,
.xpressOutput blockquote.q3,
.xpressOutput blockquote.q4,
.xpressOutput blockquote.q5,
.xpressOutput blockquote.q6,
.xpressOutput blockquote.q7{ padding:10px; margin-left:15px; margin-right:15px;}
.xpressOutput blockquote.q1{ padding:0 10px; border-left:2px solid #ccc;}
.xpressOutput blockquote.q2{ padding:0 10px; background:url(../img/bg_qmark.gif) no-repeat;}
.xpressOutput blockquote.q3{ border:1px solid #d9d9d9;}
.xpressOutput blockquote.q4{ border:1px solid #d9d9d9; background:#fbfbfb;}
.xpressOutput blockquote.q5{ border:2px solid #707070;}
.xpressOutput blockquote.q6{ border:1px dashed #707070;}
.xpressOutput blockquote.q7{ border:1px dashed #707070; background:#fbfbfb;}
.xpressOutput sup{ font:10px Tahoma;}
.xpressOutput sub{ font:10px Tahoma;}
.xpressOutput table td{ padding:4px;}

View file

@ -1,32 +0,0 @@
@charset "utf-8";
/* NHN > UIT Center > Open UI Technology Team > Jeong Chan Myeong(dece24@nhncorp.com) 200812 */
html,
body{ height:100%; background-color:transparent;}
#xpressInput{ margin:0 10px 0 0;}
.xpressOutput{ font-size:12px; line-height:1.6; font-family:Dotum, AppleGothic, Sans-serif;}
.xpressOutput p{ margin-top:7px; margin-bottom:7px;}
.xpressOutput blockquote.q1,
.xpressOutput blockquote.q2,
.xpressOutput blockquote.q3,
.xpressOutput blockquote.q4,
.xpressOutput blockquote.q5,
.xpressOutput blockquote.q6,
.xpressOutput blockquote.q7{ padding:10px; margin-left:15px; margin-right:15px;}
.xpressOutput blockquote.q1{ padding:0 10px; border-left:2px solid #ccc;}
.xpressOutput blockquote.q2{ padding:0 10px; background:url(../img/bg_qmark.gif) no-repeat;}
.xpressOutput blockquote.q3{ border:1px solid #d9d9d9;}
.xpressOutput blockquote.q4{ border:1px solid #d9d9d9; background:#fbfbfb;}
.xpressOutput blockquote.q5{ border:2px solid #707070;}
.xpressOutput blockquote.q6{ border:1px dashed #707070;}
.xpressOutput blockquote.q7{ border:1px dashed #707070; background:#fbfbfb;}
.xpressOutput sup{ font:10px Tahoma;}
.xpressOutput sub{ font:10px Tahoma;}
.xpressOutput table td{ padding:4px;}
.xpressOutput table .xe_selected_cell{ background-color: #d6e9ff}

View file

@ -514,7 +514,7 @@
<script type="text/javascript">//<![CDATA[
var editor_path = "{$editor_path}";
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}", "{$colorset}", "{$content_style}");
//]]></script>
<!--@end-->

View file

@ -6169,4 +6169,4 @@ xe.XE_Table = jQuery.Class({
return isNaN(span)?1:span;
}
}).extend(xe.XE_Table);
}).extend(xe.XE_Table);

View file

@ -2,11 +2,11 @@ if (!window.xe) xe = {};
xe.Editors = [];
function editorStart_xe(editor_sequence, primary_key, content_key, editor_height, colorset) {
function editorStart_xe(editor_sequence, primary_key, content_key, editor_height, colorset, content_style) {
if(typeof(colorset)=='undefined') colorset = 'white';
if(typeof(content_style)=='undefined') content_style = 'xeStyle';
var target_src = editor_path+'/blank.html';
if(colorset == 'black') target_src = editor_path+'blank_black.html';
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">');
@ -74,6 +74,7 @@ function editorStart_xe(editor_sequence, primary_key, content_key, editor_height
// 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));
@ -207,6 +208,19 @@ xe.XE_GET_WYSYWYG_CONTENT = jQuery.Class({
}
});
// 서식 기본 내용을 보존
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",

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 B

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">XE 기본 서식 (하얀 배경)</title>
<description xml:lang="ko">
XE 기본 문서 서식입니다.
문서 수정중에는 각 요소들이 구분되어 보입니다.
</description>
<version>0.0.1</version>
<date>2009-04-17</date>
<author email_address="webmaster@naradesign.net" link="http://naradesign.net">
<name xml:lang="ko">정찬명</name>
</author>
</skin>

View file

@ -0,0 +1,102 @@
@charset "utf-8";
/* NHN > UIT Center > Open UI Technology Team > Jeong Chan Myeong(dece24@nhncorp.com) */
html, body { height:100%; background-color:transparent; padding:0; margin:0;}
/* xe_content */
.xe_content{ line-height:1.6; font-size:12px; font-family:AppleGothic, Sans-serif; color:#000;}
.xe_content img{ border:0;}
.xe_content sup,
.xe_content sub{ font-size:10px; font-weight:normal; font-style:normal; color:#8b8b8b;}
.xe_content p{ margin-top:7px; margin-bottom:7px; font-weight:normal; }
/* Editable */
.xe_content.editable h1,
.xe_content.editable h2,
.xe_content.editable h3,
.xe_content.editable h4,
.xe_content.editable h5,
.xe_content.editable h6,
.xe_content.editable p,
.xe_content.editable ul,
.xe_content.editable ol,
.xe_content.editable dl,
.xe_content.editable div,
.xe_content.editable code.block{ border:1px dotted #ccc;}
.xe_content.editable h1:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable h2:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -100px;}
.xe_content.editable h3:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -200px;}
.xe_content.editable h4:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -300px;}
.xe_content.editable h5:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -400px;}
.xe_content.editable h6:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -500px;}
.xe_content.editable p{ background-image:url(./img/elementP.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable ul{ background-image:url(./img/elementUl.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable ol{ background-image:url(./img/elementOl.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable dl{ background-image:url(./img/elementDl.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable div{ background-image:url(./img/elementDiv.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable code.block{ background-image:url(./img/elementCode.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content blockquote.q1,
.xe_content blockquote.q2,
.xe_content blockquote.q3,
.xe_content blockquote.q4,
.xe_content blockquote.q5,
.xe_content blockquote.q6,
.xe_content blockquote.q7{ padding:10px; margin:0 15px; }
.xe_content blockquote.q1{ padding:0 10px; border-left:2px solid #ccc;}
.xe_content blockquote.q2{ padding:0 10px; background:url(./img/bg_qmark.gif) no-repeat left top;}
.xe_content blockquote.q3{ border:1px solid #d9d9d9;}
.xe_content blockquote.q4{ border:1px solid #d9d9d9; background:#fbfbfb;}
.xe_content blockquote.q5{ border:2px solid #707070;}
.xe_content blockquote.q6{ border:1px dashed #707070;}
.xe_content blockquote.q7{ border:1px dashed #707070; background:#fbfbfb;}
/* Heading */
.xe_content h1,
.xe_content h2,
.xe_content h3,
.xe_content h4,
.xe_content h5,
.xe_content h6{ line-height:1.2; clear:both;}
.xe_content h1{ font-size:22px; border-bottom:4px solid #f4f4f4; background-color:#fff; *border-bottom:1px solid #ccc; *zoom:1; *filter:progid:DXImageTransform.Microsoft.dropshadow(OffX='0', OffY='4', Color='#f4f4f4', positive='true');}
.xe_content h1:after{ content:""; display:block; font-size:0; line-height:0; overflow:hidden; height:1px; background:#ccc;}
.xe_content h2{ font-size:20px; border-bottom:3px solid #f4f4f4; background-color:#fff; *border-bottom:1px solid #ccc; *zoom:1; *filter:progid:DXImageTransform.Microsoft.dropshadow(OffX='0', OffY='3', Color='#f4f4f4', positive='true');}
.xe_content h2:after{ content:""; display:block; font-size:0; line-height:0; overflow:hidden; height:1px; background:#ccc;}
.xe_content h3{ font-size:18px; border-bottom:2px solid #f4f4f4; background-color:#fff; *border-bottom:1px solid #ccc; *zoom:1; *filter:progid:DXImageTransform.Microsoft.dropshadow(OffX='0', OffY='2', Color='#f4f4f4', positive='true');}
.xe_content h3:after{ content:""; display:block; font-size:0; line-height:0; overflow:hidden; height:1px; background:#ccc;}
.xe_content h4{ font-size:16px; border-bottom:1px solid #f4f4f4; background-color:#fff; *border-bottom:1px solid #ccc; *zoom:1; *filter:progid:DXImageTransform.Microsoft.dropshadow(OffX='0', OffY='1', Color='#f4f4f4', positive='true');}
.xe_content h4:after{ content:""; display:block; font-size:0; line-height:0; overflow:hidden; height:1px; background:#ccc;}
.xe_content h5{ font-size:14px; border-bottom:1px solid #ccc;}
.xe_content h6{ font-size:12px; border-bottom:1px dotted #ccc;}
/* Blockquote */
.xe_content q{ background-color:#eee;}
/* Cite */
.xe_content cite{ font-style:normal; color:#8b8b8b;}
/* Code */
.xe_content code{ font-family:"Courier New", Monospace; background-color:#fff5d9;}
.xe_content code.block{ position:relative; font-family:"Courier New", Monospace; line-height:1; display:block; padding:12px 15px 12px 15px; background-color:#fff5d9; -moz-border-radius:5px; -webkit-border-radius:5px;}
/* Anchor */
.xe_content a:link {color:#0077ee; text-decoration:none; }
.xe_content a:hover {text-decoration:underline;}
.xe_content a.none {color:#8b8b8b; padding-right:13px; margin-right:2px; background:url(./img/iconNone.gif); background-repeat:no-repeat; background-position:right center;}
.xe_content a.external{ padding-right:13px; margin-right:2px; background-image:url(./img/iconExternal.gif); background-repeat:no-repeat; background-position:right center;}
.xe_content a.blank{ padding-right:13px; margin-right:2px; background-image:url(./img/iconBlank.gif); background-repeat:no-repeat; background-position:right center;}
/* Table */
.xe_content table{ border:1px solid #ccc; border-right:0; border-bottom:0; margin-bottom:15px; border-spacing:0;}
.xe_content caption{ font-weight:bold;}
.xe_content table th,
.xe_content table td{ border:1px solid #ccc; border-left:0; border-top:0; padding:2px 5px;}
.xe_content table th{ background:#f4f4f4;}
/* Division */
.xe_content .mpDivision{ border:1px dotted #ccc; padding-left:15px; padding-right:15px; -moz-border-radius:5px; -webkit-border-radius:5px; background:#f4f4f4;}
/* Definition */
.xe_content dt{ font-weight:bold; clear:both;}
.xe_content dd{ margin-left:0; clear:both;}

View file

@ -0,0 +1 @@
style.css

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 B

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">XE 기본 서식 (검은 배경)</title>
<description xml:lang="ko">
XE 기본 문서 서식입니다.
문서 수정중에는 각 요소들이 구분되어 보입니다.
</description>
<version>0.0.1</version>
<date>2009-04-17</date>
<author email_address="webmaster@naradesign.net" link="http://naradesign.net">
<name xml:lang="ko">정찬명</name>
</author>
</skin>

View file

@ -0,0 +1,101 @@
@charset "utf-8";
/* NHN > UIT Center > Open UI Technology Team > Jeong Chan Myeong(dece24@nhncorp.com) */
html, body { height:100%; background-color:transparent; padding:0; margin:0;}
/* xe_content */
.xe_content{ line-height:1.6; font-size:12px; font-family:AppleGothic, Sans-serif; color:#fff;}
.xe_content img{ border:0;}
.xe_content sup,
.xe_content sub{ font-size:10px; font-weight:normal; font-style:normal; color:#8b8b8b;}
.xe_content p{ margin-top:7px; margin-bottom:7px; font-weight:normal;}
/* Editable */
.xe_content.editable h1,
.xe_content.editable h2,
.xe_content.editable h3,
.xe_content.editable h4,
.xe_content.editable h5,
.xe_content.editable h6,
.xe_content.editable p,
.xe_content.editable ul,
.xe_content.editable ol,
.xe_content.editable dl,
.xe_content.editable div,
.xe_content.editable code.block{ border:1px dotted #444;}
.xe_content.editable h1:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable h2:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -100px;}
.xe_content.editable h3:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -200px;}
.xe_content.editable h4:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -300px;}
.xe_content.editable h5:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -400px;}
.xe_content.editable h6:before{ content:""; display:block; width:100%; height:9px; margin-bottom:-9px; background-image:url(./img/elementH.gif); background-repeat:no-repeat; background-position:right -500px;}
.xe_content.editable p{ background-image:url(./img/elementP.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable ul{ background-image:url(./img/elementUl.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable ol{ background-image:url(./img/elementOl.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable dl{ background-image:url(./img/elementDl.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable div{ background-image:url(./img/elementDiv.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content.editable code.block{ background-image:url(./img/elementCode.gif); background-repeat:no-repeat; background-position:right top;}
.xe_content blockquote.q1,
.xe_content blockquote.q2,
.xe_content blockquote.q3,
.xe_content blockquote.q4,
.xe_content blockquote.q5,
.xe_content blockquote.q6,
.xe_content blockquote.q7{ padding:10px; margin-left:15px; margin-right:15px;}
.xe_content blockquote.q1{ padding:0 10px; border-left:2px solid #ccc;}
.xe_content blockquote.q2{ padding:0 10px; background:url(./img/bg_qmark.gif) no-repeat left top;}
.xe_content blockquote.q3{ border:1px solid #d9d9d9;}
.xe_content blockquote.q4{ border:1px solid #d9d9d9; background:#fbfbfb;}
.xe_content blockquote.q5{ border:2px solid #707070;}
.xe_content blockquote.q6{ border:1px dashed #707070;}
.xe_content blockquote.q7{ border:1px dashed #707070; background:#fbfbfb;}
/* Heading */
.xe_content h1,
.xe_content h2,
.xe_content h3,
.xe_content h4,
.xe_content h5,
.xe_content h6{ line-height:1.2; clear:both;}
.xe_content h1{ font-size:22px; border-bottom:4px solid #666; background-color:#000; *border-bottom:1px solid #999; *zoom:1; *filter:progid:DXImageTransform.Microsoft.dropshadow(OffX='0', OffY='4', Color='#666666', positive='true');}
.xe_content h1:after{ content:""; display:block; font-size:0; line-height:0; overflow:hidden; height:1px; background:#999;}
.xe_content h2{ font-size:20px; border-bottom:3px solid #666; background-color:#000; *border-bottom:1px solid #999; *zoom:1; *filter:progid:DXImageTransform.Microsoft.dropshadow(OffX='0', OffY='3', Color='#666666', positive='true');}
.xe_content h2:after{ content:""; display:block; font-size:0; line-height:0; overflow:hidden; height:1px; background:#999;}
.xe_content h3{ font-size:18px; border-bottom:2px solid #666; background-color:#000; *border-bottom:1px solid #999; *zoom:1; *filter:progid:DXImageTransform.Microsoft.dropshadow(OffX='0', OffY='2', Color='#666666', positive='true');}
.xe_content h3:after{ content:""; display:block; font-size:0; line-height:0; overflow:hidden; height:1px; background:#999;}
.xe_content h4{ font-size:16px; border-bottom:1px solid #666; background-color:#000; *border-bottom:1px solid #999; *zoom:1; *filter:progid:DXImageTransform.Microsoft.dropshadow(OffX='0', OffY='1', Color='#666666', positive='true');}
.xe_content h4:after{ content:""; display:block; font-size:0; line-height:0; overflow:hidden; height:1px; background:#999;}
.xe_content h5{ font-size:14px; border-bottom:1px solid #666;}
.xe_content h6{ font-size:12px; border-bottom:1px dotted #666;}
/* Blockquote */
.xe_content q{ background-color:#666;}
/* Cite */
.xe_content cite{ font-style:normal; color:#8b8b8b;}
/* Code */
.xe_content code{ font-family:"Courier New", Monospace; background-color:#998F73;}
.xe_content code.block{ position:relative; font-family:"Courier New", Monospace; line-height:1; display:block; padding:12px 15px 12px 15px; background-color:#998F73; -moz-border-radius:5px; -webkit-border-radius:5px;}
/* Anchor */
.xe_content a:link { color:#0077ee;text-decoration:none;}
.xe_content a:hover { color:#0077ee;text-decoration:underline;}
.xe_content a.none{ color:#8b8b8b; padding-right:13px; margin-right:2px; background:url(./img/iconNone.gif); background-repeat:no-repeat; background-position:right center;}
.xe_content a.external{ padding-right:13px; margin-right:2px; background-image:url(./img/iconExternal.gif); background-repeat:no-repeat; background-position:right center;}
.xe_content a.blank{ padding-right:13px; margin-right:2px; background-image:url(./img/iconBlank.gif); background-repeat:no-repeat; background-position:right center;}
/* Table */
.xe_content caption{ font-weight:bold;}
.xe_content table th,
.xe_content table td{ border:1px solid #666; border-left:0; border-top:0; padding:2px 5px;}
.xe_content table th{ background:#333;}
/* Division */
.xe_content .mpDivision{ border:1px dotted #999; padding-left:15px; padding-right:15px; -moz-border-radius:5px; -webkit-border-radius:5px; background:#666;}
/* Definition */
.xe_content dt{ font-weight:bold; clear:both;}
.xe_content dd{ margin-left:0; clear:both;}

View file

@ -0,0 +1 @@
style.css

View file

@ -7,13 +7,15 @@
<table cellspacing="0" class="crossTable">
<thead>
<tr>
<th scope="col"><div>&nbsp;</div></th>
<th scope="col" class="half_wide"><div>{$lang->document}</div></th>
<th scope="col" class="half_wide"><div>{$lang->comment}</div></th>
</tr>
</thead>
<tbody>
<tr>
<th colspan="2"><div>{$lang->editor_skin}</div></th>
<th rowspan="2"><div>{$lang->editor_skin}</div></th>
<td colspan="2"><p>{$lang->about_editor_skin}</p></td>
</tr>
<tr>
<td>
@ -42,10 +44,40 @@
</td>
</tr>
<tr>
<td colspan="2"><p>{$lang->about_editor_skin}</p></td>
<th rowspan="2"><div>{$lang->content_style}</div></th>
<td colspan="2"><p>{$lang->about_content_style}</p></td>
</tr>
<tr>
<th colspan="2"><div>{$lang->enable_html_grant}</div></th>
<td colspan="2">
<select name="content_style">
<!--@foreach($content_style_list as $key => $val)-->
<option value="{$key}" <!--@if($key==$editor_config->content_style)-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
</td>
</tr>
<tr>
<th rowspan="2"><div>{$lang->editor_height}</div></th>
<td colspan="2"><p>{$lang->about_editor_height}</p></td>
</tr>
<tr>
<td>
<input type="text" name="editor_height" value="{$editor_config->editor_height}" class="inputTypeText w80" />px
</td>
<td>
<input type="text" name="comment_editor_height" value="{$editor_config->comment_editor_height}" class="inputTypeText w80" />px
</td>
</tr>
<tr>
<th rowspan="2"><div>{$lang->enable_autosave}</div></th>
<td colspan="2"><p>{$lang->about_enable_autosave}</p></td>
</tr>
<tr>
<td colspan="2"><input type="checkbox" value="Y" name="enable_autosave" <!--@if($editor_config->enable_autosave=='Y')-->checked="checked"<!--@end-->/></td>
</tr>
<tr>
<th rowspan="2"><div>{$lang->enable_html_grant}</div></th>
<td colspan="2"><p>{$lang->about_enable_html_grant}</p></td>
</tr>
<tr>
<td>
@ -66,10 +98,8 @@
</td>
</tr>
<tr>
<td colspan="2"><p>{$lang->about_enable_html_grant}</p></td>
</tr>
<tr>
<th colspan="2"><div>{$lang->upload_file_grant}</div></th>
<th rowspan="2"><div>{$lang->upload_file_grant}</div></th>
<td colspan="2"><p>{$lang->about_upload_file_grant}</p></td>
</tr>
<tr>
<td>
@ -94,10 +124,8 @@
</td>
</tr>
<tr>
<td colspan="2"><p>{$lang->about_upload_file_grant}</p></td>
</tr>
<tr>
<th colspan="2"><div>{$lang->enable_default_component_grant}</div></th>
<th rowspan="2"><div>{$lang->enable_default_component_grant}</div></th>
<td colspan="2"><p>{$lang->about_default_component_grant}</p></td>
</tr>
<tr>
<td>
@ -120,10 +148,8 @@
</td>
</tr>
<tr>
<td colspan="2"><p>{$lang->about_default_component_grant}</p></td>
</tr>
<tr>
<th colspan="2"><div>{$lang->enable_component_grant}</div></th>
<th rowspan="2"><div>{$lang->enable_component_grant}</div></th>
<td colspan="2"><p>{$lang->about_component_grant}</p></td>
</tr>
<tr>
<td>
@ -148,33 +174,7 @@
</td>
</tr>
<tr>
<td colspan="2"><p>{$lang->about_component_grant}</p></td>
</tr>
<tr>
<th colspan="2"><div>{$lang->editor_height}</div></th>
</tr>
<tr>
<td>
<input type="text" name="editor_height" value="{$editor_config->editor_height}" class="inputTypeText w80" />px
</td>
<td>
<input type="text" name="comment_editor_height" value="{$editor_config->comment_editor_height}" class="inputTypeText w80" />px
</td>
</tr>
<tr>
<td colspan="2"><p>{$lang->about_editor_height}</p></td>
</tr>
<tr>
<th colspan="2"><div>{$lang->enable_autosave}</div></th>
</tr>
<tr>
<td colspan="2"><input type="checkbox" value="Y" name="enable_autosave" <!--@if($editor_config->enable_autosave=='Y')-->checked="checked"<!--@end-->/></td>
</tr>
<tr>
<td colspan="2"><p>{$lang->about_enable_autosave}</p></td>
</tr>
<tr>
<th class="button" colspan="2">
<th class="button" colspan="3">
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}"/></span>
</th>
</tr>