From da7e33354a6ae17ebe9f935ca6272a332891931b Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 8 Jun 2007 04:02:00 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@1574 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/blog/blog.model.php | 8 ++- modules/blog/blog.view.php | 18 ++++-- modules/board/board.view.php | 16 ++++- modules/editor/editor.model.php | 78 +++++++++++++++------- modules/editor/tpl/editor.html | 97 +++++++++++++++------------- modules/editor/tpl/js/editor.js | 20 +++--- modules/member/member.admin.view.php | 16 ++++- modules/member/member.view.php | 16 ++++- modules/page/page.admin.view.php | 8 ++- 9 files changed, 184 insertions(+), 93 deletions(-) diff --git a/modules/blog/blog.model.php b/modules/blog/blog.model.php index 7668aee92..2e8945ff1 100644 --- a/modules/blog/blog.model.php +++ b/modules/blog/blog.model.php @@ -25,7 +25,13 @@ // 에디터 모듈의 getEditor를 호출하여 세팅 $oEditorModel = &getModel('editor'); - $comment_editor = $oEditorModel->getEditor($upload_target_srl, false); + $option->allow_fileupload = $this->grant->comment_fileupload; + $option->enable_autosave = false; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = true; + $option->height = 100; + $comment_editor = $oEditorModel->getEditor($upload_target_srl, $option); // 변수 설정 Context::set('comment_editor', $comment_editor); diff --git a/modules/blog/blog.view.php b/modules/blog/blog.view.php index b4b16bdd3..6fdae13c1 100644 --- a/modules/blog/blog.view.php +++ b/modules/blog/blog.view.php @@ -191,7 +191,13 @@ // 에디터 모듈의 getEditor를 호출하여 세팅 $oEditorModel = &getModel('editor'); - $editor = $oEditorModel->getEditor($document_srl, $this->grant->fileupload, true); + $option->allow_fileupload = $this->grant->fileupload; + $option->enable_autosave = true; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = true; + $option->height = 400; + $editor = $oEditorModel->getEditor($document_srl, $option); Context::set('editor', $editor); $this->setTemplateFile('write_form'); @@ -359,10 +365,14 @@ $comment_srl = getNextSequence(); Context::set('comment_srl', $comment_srl); } - - // 에디터 모듈의 getEditor를 호출하여 세팅 $oEditorModel = &getModel('editor'); - $comment_editor = $oEditorModel->getEditor($comment_srl, $this->grant->fileupload); + $option->allow_fileupload = $this->grant->comment_fileupload; + $option->enable_autosave = false; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = true; + $option->height = 400; + $comment_editor = $oEditorModel->getEditor($comment_srl, $option); Context::set('comment_editor', $comment_editor); } diff --git a/modules/board/board.view.php b/modules/board/board.view.php index f7007d44c..6da627af5 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -153,7 +153,13 @@ // 에디터 모듈의 getEditor를 호출하여 세팅 $oEditorModel = &getModel('editor'); - $editor = $oEditorModel->getEditor($document_srl, $this->grant->fileupload, true); + $option->allow_fileupload = $this->grant->fileupload; + $option->enable_autosave = true; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = true; + $option->height = 400; + $editor = $oEditorModel->getEditor($document_srl, $option); Context::set('editor', $editor); $this->setTemplateFile('write_form'); @@ -323,7 +329,13 @@ } // 에디터 모듈의 getEditor를 호출하여 세팅 $oEditorModel = &getModel('editor'); - $comment_editor = $oEditorModel->getEditor($comment_srl, $this->grant->comment_fileupload); + $option->allow_fileupload = $this->grant->comment_fileupload; + $option->enable_autosave = false; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = true; + $option->height = 100; + $comment_editor = $oEditorModel->getEditor($comment_srl, $option); Context::set('comment_editor', $comment_editor); } diff --git a/modules/editor/editor.model.php b/modules/editor/editor.model.php index 9d87250dd..99682130b 100644 --- a/modules/editor/editor.model.php +++ b/modules/editor/editor.model.php @@ -10,37 +10,69 @@ /** * @brief 에디터를 return **/ - function getEditor($upload_target_srl, $allow_fileupload = false, $enable_autosave = false) { - // 저장된 임시본이 있는지 검사 + function getEditor($upload_target_srl, $option = null) { + // 옵션 설정 + if(!$option->allow_fileupload) $allow_fileupload = false; + else $allow_fileupload = true; + + if(!$option->enable_autosave) $enable_autosave = false; + else $enable_autosave = true; + + if(!$option->enable_default_component) $enable_default_component = false; + else $enable_default_component = true; + + if(!$option->enable_component) $enable_component = false; + else $enable_component = true; + + if(!$option->resizable) $resizable = 'false'; + else $resizable = 'true'; + + if(!$option->height) $editor_height = 400; + else $editor_height = $option->height; + + // 대상 문서 번호 설정 + Context::set('upload_target_srl', $upload_target_srl); + + // 업로드 가능 변수 설정 + if($allow_fileupload) { + // 첨부파일 모듈의 정보를 구함 + $logged_info = Context::get('logged_info'); + if($logged_info->member_srl && $logged_info->is_admin == 'Y') { + $file_config->allowed_filesize = 1024*1024*1024; + $file_config->allowed_attach_size = 1024*1024*1024; + $file_config->allowed_filetypes = '*.*'; + } else { + $oModuleModel = &getModel('module'); + $file_config = $oModuleModel->getModuleConfig('file'); + $file_config->allowed_filesize = $file_config->allowed_filesize * 1024; + $file_config->allowed_attach_size = $file_config->allowed_attach_size * 1024; + } + Context::set('file_config',$file_config); + } + Context::set('allow_fileupload', $allow_fileupload); + + // 자동백업 기능 체크 if($enable_autosave) { $saved_doc = $this->getSavedDoc($upload_target_srl); Context::set('saved_doc', $saved_doc); } Context::set('enable_autosave', $enable_autosave); - // 업로드를 위한 변수 설정 - Context::set('upload_target_srl', $upload_target_srl); - Context::set('allow_fileupload', $allow_fileupload); - - // 에디터 컴포넌트를 구함 - if(!Context::get('component_list')) { - $component_list = $this->getComponentList(); - Context::set('component_list', $component_list); + // 에디터 컴포넌트 체크 + if($enable_component) { + if(!Context::get('component_list')) { + $component_list = $this->getComponentList(); + Context::set('component_list', $component_list); + } } + Context::set('enable_component', $enable_component); + Context::set('enable_default_component', $enable_default_component); - // 첨부파일 모듈의 정보를 구함 - $logged_info = Context::get('logged_info'); - if($logged_info->member_srl && $logged_info->is_admin == 'Y') { - $file_config->allowed_filesize = 1024*1024*1024; - $file_config->allowed_attach_size = 1024*1024*1024; - $file_config->allowed_filetypes = '*.*'; - } else { - $oModuleModel = &getModel('module'); - $file_config = $oModuleModel->getModuleConfig('file'); - $file_config->allowed_filesize = $file_config->allowed_filesize * 1024; - $file_config->allowed_attach_size = $file_config->allowed_attach_size * 1024; - } - Context::set('file_config',$file_config); + // resizable 가능한지 변수 설정 + Context::set('enable_resizable', $resizable); + + // 에디터 크기 설정 + Context::set('editor_height', $editor_height); // 템플릿을 미리 컴파일해서 컴파일된 소스를 return $tpl_path = $this->module_path.'tpl'; diff --git a/modules/editor/tpl/editor.html b/modules/editor/tpl/editor.html index 34fec94e2..fd932c413 100644 --- a/modules/editor/tpl/editor.html +++ b/modules/editor/tpl/editor.html @@ -4,7 +4,7 @@ @@ -16,60 +16,64 @@
+ +
- -
- + +
+ - + - -
+ +
- -
- {$lang->edit->help_fontcolor} - {$lang->edit->help_fontbgcolor} - {$lang->edit->help_bold} - {$lang->edit->help_italic} - {$lang->edit->help_underline} - {$lang->edit->help_strike} - {$lang->edit->help_undo} - {$lang->edit->help_redo} -
+ +
+ {$lang->edit->help_fontcolor} + {$lang->edit->help_fontbgcolor} + {$lang->edit->help_bold} + {$lang->edit->help_italic} + {$lang->edit->help_underline} + {$lang->edit->help_strike} + {$lang->edit->help_undo} + {$lang->edit->help_redo} +
-
- {$lang->edit->help_align_left} - {$lang->edit->help_align_center} - {$lang->edit->help_align_right} - {$lang->edit->help_remove_indent} - {$lang->edit->help_add_indent} - {$lang->edit->help_list_number} - {$lang->edit->help_list_bullet} -
+
+ {$lang->edit->help_align_left} + {$lang->edit->help_align_center} + {$lang->edit->help_align_right} + {$lang->edit->help_remove_indent} + {$lang->edit->help_add_indent} + {$lang->edit->help_list_number} + {$lang->edit->help_list_bullet} +
+ +
@@ -80,6 +84,7 @@
+
{$lang->about_dblclick_in_editor} diff --git a/modules/editor/tpl/js/editor.js b/modules/editor/tpl/js/editor.js index 818a03ddb..8aafbec01 100755 --- a/modules/editor/tpl/js/editor.js +++ b/modules/editor/tpl/js/editor.js @@ -17,17 +17,19 @@ function editorGetIFrame(upload_target_srl) { } // editor 초기화를 onload이벤트 후에 시작시킴 -function editorInit(upload_target_srl) { - var start_func = function() { editorStart(upload_target_srl); } - xAddEventListener(window, 'load', start_func); +function editorInit(upload_target_srl, resizable, height) { + xAddEventListener(window, 'load', function() { editorStart(upload_target_srl, resizable, height); }); } // editor 시작 (upload_target_srl로 iframe객체를 얻어서 쓰기 모드로 전환) -function editorStart(upload_target_srl) { +function editorStart(upload_target_srl, resizable, height) { + if(typeof(height)=="undefined"||!height) height = 350; + if(typeof(resizable)=="undefined"||!resizable) resizable = false; + else resizable = true; // iframe_area를 찾음 var iframe_area = xGetElementById("editor_iframe_area_"+upload_target_srl); - xInnerHtml(iframe_area, ""); + xInnerHtml(iframe_area, ""); // iframe obj를 찾음 var iframe_obj = editorGetIFrame(upload_target_srl); @@ -54,9 +56,6 @@ function editorStart(upload_target_srl) { // 대상 form의 content object에서 데이터를 구함 var content = fo_obj.content.value; - // 기본 폰트를 가져옴 - var default_font = xGetElementById('editor_font_'+upload_target_srl).options[1].value; - // iframe내의 document object var contentDocument = iframe_obj.contentWindow.document; @@ -104,10 +103,7 @@ function editorStart(upload_target_srl) { if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, upload_target_srl); // 팝업 윈도우일 경우 드래그바 숨김 - if(typeof(_isPoped)!="undefined" && _isPoped) { - xGetElementById("editor_drag_bar_"+upload_target_srl).style.display = "none"; - setFixedPopupSize(); - } + if(resizable == false) xGetElementById("editor_drag_bar_"+upload_target_srl).style.display = "none"; } // 여러개의 편집기를 예상하여 전역 배열 변수에 form, iframe의 정보를 넣음 diff --git a/modules/member/member.admin.view.php b/modules/member/member.admin.view.php index 1ad1a3014..26a9827ce 100644 --- a/modules/member/member.admin.view.php +++ b/modules/member/member.admin.view.php @@ -72,7 +72,13 @@ // 에디터를 받음 $oEditorModel = &getModel('editor'); - $editor = $oEditorModel->getEditor(0, false, false); + $option->allow_fileupload = false; + $option->enable_autosave = false; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = true; + $option->height = 300; + $editor = $oEditorModel->getEditor(0, $option); Context::set('editor', $editor); // 템플릿 파일 지정 @@ -105,7 +111,13 @@ // 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅 if($this->member_info->member_srl) { $oEditorModel = &getModel('editor'); - $editor = $oEditorModel->getEditor($this->member_info->member_srl, false, false); + $option->allow_fileupload = false; + $option->enable_autosave = false; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = false; + $option->height = 200; + $editor = $oEditorModel->getEditor($this->member_info->member_srl, $option); Context::set('editor', $editor); } diff --git a/modules/member/member.view.php b/modules/member/member.view.php index 45ef92a95..96b39a955 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -95,7 +95,13 @@ // 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅 if($member_info->member_srl) { $oEditorModel = &getModel('editor'); - $editor = $oEditorModel->getEditor($member_info->member_srl, false, false); + $option->allow_fileupload = false; + $option->enable_autosave = false; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = false; + $option->height = 200; + $editor = $oEditorModel->getEditor($member_info->member_srl, $option); Context::set('editor', $editor); } @@ -220,7 +226,13 @@ // 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅 $oEditorModel = &getModel('editor'); - $editor = $oEditorModel->getEditor($logged_info->member_srl, false, false); + $option->allow_fileupload = false; + $option->enable_autosave = false; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = false; + $option->height = 300; + $editor = $oEditorModel->getEditor($logged_info->member_srl, $option); Context::set('editor', $editor); $this->setTemplateFile('send_message'); diff --git a/modules/page/page.admin.view.php b/modules/page/page.admin.view.php index 7f65b4c8e..30f1042df 100644 --- a/modules/page/page.admin.view.php +++ b/modules/page/page.admin.view.php @@ -127,7 +127,13 @@ // 에디터 모듈의 getEditor를 호출하여 세팅 $oEditorModel = &getModel('editor'); - $editor = $oEditorModel->getEditor($module_srl, true); + $option->allow_fileupload = true; + $option->enable_autosave = false; + $option->enable_default_component = true; + $option->enable_component = true; + $option->resizable = true; + $option->height = 600; + $editor = $oEditorModel->getEditor($module_srl, $option); Context::set('editor', $editor); // 템플릿 파일 지정