diff --git a/modules/editor/components/image_link/image_link.class.php b/modules/editor/components/image_link/image_link.class.php index 4517c17af..c9d7adfa6 100644 --- a/modules/editor/components/image_link/image_link.class.php +++ b/modules/editor/components/image_link/image_link.class.php @@ -44,10 +44,6 @@ Context::set("tpl_path", $tpl_path); - // 이모티콘을 모두 가져옴 - $image_link_list = FileHandler::readDir($tpl_path.'/images'); - Context::set('image_link_list', $image_link_list); - require_once("./classes/template/TemplateHandler.class.php"); $oTemplate = new TemplateHandler(); return $oTemplate->compile($tpl_path, $tpl_file); diff --git a/modules/editor/components/multimedia_link/multimedia_link.class.php b/modules/editor/components/multimedia_link/multimedia_link.class.php index 0f0f4ff56..330fb820f 100644 --- a/modules/editor/components/multimedia_link/multimedia_link.class.php +++ b/modules/editor/components/multimedia_link/multimedia_link.class.php @@ -44,10 +44,6 @@ Context::set("tpl_path", $tpl_path); - // 이모티콘을 모두 가져옴 - $multimedia_link_list = FileHandler::readDir($tpl_path.'/images'); - Context::set('multimedia_link_list', $multimedia_link_list); - require_once("./classes/template/TemplateHandler.class.php"); $oTemplate = new TemplateHandler(); return $oTemplate->compile($tpl_path, $tpl_file); diff --git a/modules/editor/components/quotation/quotation.class.php b/modules/editor/components/quotation/quotation.class.php new file mode 100644 index 000000000..052a2299a --- /dev/null +++ b/modules/editor/components/quotation/quotation.class.php @@ -0,0 +1,80 @@ +upload_target_srl = $upload_target_srl; + $this->component_path = $component_path; + } + + /** + * @brief 에디터에서 처음 요청을 받을 경우 실행이 되는 부분이다. + * execute의 경우 2가지 경우가 생긴다. + * 직접 에디터 아래의 component area로 삽입할 html 코드를 만드는 것과 popup 윈도우를 띄우는 것인데 + * popup윈도우를 띄울 경우는 getPopupContent() 이라는 method가 실행이 되니 구현하여 놓아야 한다 + **/ + function execute() { + + $url = sprintf('./?module=editor&act=dispPopup&target_srl=%s&component=quotation', $this->upload_target_srl); + + $this->add('tpl', ''); + $this->add('open_window', 'Y'); + $this->add('popup_url', $url); + } + + /** + * @brief popup window요청시 다시 call이 될 method. popup window에 출력할 내용을 추가하면 된다 + **/ + function getPopupContent() { + // 템플릿을 미리 컴파일해서 컴파일된 소스를 return + $tpl_path = $this->component_path.'tpl'; + $tpl_file = 'popup.html'; + + Context::set("tpl_path", $tpl_path); + + require_once("./classes/template/TemplateHandler.class.php"); + $oTemplate = new TemplateHandler(); + return $oTemplate->compile($tpl_path, $tpl_file); + } + + /** + * @brief 에디터 컴포넌트가 별도의 고유 코드를 이용한다면 그 코드를 html로 변경하여 주는 method + * + * 이미지나 멀티미디어, 설문등 고유 코드가 필요한 에디터 컴포넌트는 고유코드를 내용에 추가하고 나서 + * DocumentModule::transContent() 에서 해당 컴포넌트의 transHtml() method를 호출하여 고유코드를 html로 변경 + **/ + function transHTML($xml_obj) { + $src = $xml_obj->attrs->src; + $alt = $xml_obj->attrs->alt; + $width = $xml_obj->attrs->width; + $height = $xml_obj->attrs->height; + $align = $xml_obj->attrs->align; + $border = $xml_obj->attrs->border; + + $src = str_replace(array('&','"'), array('&','&qout;'), $src); + if(!$alt) $alt = $src; + + $output = array(); + $output = array("src=\"".$src."\""); + if($alt) $output[] = "alt=\"".$alt."\""; + if($width) $output[] = "width=\"".$width."\""; + if($height) $output[] = "height=\"".$height."\""; + if($align) $output[] = "align=\"".$align."\""; + if($border) $output[] = "border=\"".$border."\""; + return ""; + } + + } +?> diff --git a/modules/editor/components/quotation/quotation.html b/modules/editor/components/quotation/quotation.html deleted file mode 100644 index b0d4309c2..000000000 --- a/modules/editor/components/quotation/quotation.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - add Quotation - - - - - - - -
-
-
- quotation - fold -
- -
- - - - - - - - - - - - - - - -
bg color
border type - -
border color
-
- -
-
- - - - - - - -
- - - - - - - -
- -
-
-
-
- - - diff --git a/modules/editor/components/quotation/tpl/popup.css b/modules/editor/components/quotation/tpl/popup.css new file mode 100644 index 000000000..bb0d7fbd8 --- /dev/null +++ b/modules/editor/components/quotation/tpl/popup.css @@ -0,0 +1,52 @@ +.editor_window { + width:400px; + text-align:center; +} + +.header { + float:left; + width:100px; + clear:left; + text-align:left; + font-weight:bold; + margin:5px; + font-size:9pt; + font-size:9pt; +} + +.body { + float:left; + width:250px; + text-align:left; + margin:5px; + font-size:9pt; +} + +.body label { + cursor:pointer; + font-size:9pt; +} + +.multimedia_url { + width:240px; + border:1px solid #AAAAAA; +} + +.multimedia_size { + width:60px; + border:1px solid #AAAAAA; +} + +.editor_button_area { + clear:both; + text-align:center; + height:25px; + padding-top:3px; + background-color:#EEEEEE; +} + +.editor_button { + margin-top:4px; + background-color:#FFFFFF; + border:1px solid #AAAAAA; +} diff --git a/modules/editor/components/quotation/tpl/popup.html b/modules/editor/components/quotation/tpl/popup.html new file mode 100644 index 000000000..a89887214 --- /dev/null +++ b/modules/editor/components/quotation/tpl/popup.html @@ -0,0 +1,27 @@ + + + + +
+
+
{$lang->multimedia_url}
+
+ +
{$lang->multimedia_caption}
+
+ +
{$lang->multimedia_width}
+
px
+ +
{$lang->multimedia_height}
+
px
+ +
{$lang->multimedia_auto_start}
+
+ +
+ + +
+
+
diff --git a/modules/editor/components/quotation/tpl/popup.js b/modules/editor/components/quotation/tpl/popup.js new file mode 100644 index 000000000..56f315a2c --- /dev/null +++ b/modules/editor/components/quotation/tpl/popup.js @@ -0,0 +1,59 @@ +/** + * popup으로 열렸을 경우 부모창의 위지윅에디터에 select된 멀티미디어 컴포넌트 코드를 체크하여 + * 있으면 가져와서 원하는 곳에 삽입 + **/ +function getMultimedia() { + // 부모 위지윅 에디터에서 선택된 영역이 있는지 확인 + if(typeof(opener)=="undefined") return; + + var node = opener.editorPrevNode; + if(!node || node.nodeName != "DIV") return; + + var url = node.getAttribute("src"); + var caption = xInnerHtml(node); + var width = node.getAttribute("width"); + var height = node.getAttribute("height"); + var auto_start = node.getAttribute("auto_start"); + + xGetElementById("multimedia_url").value = url; + xGetElementById("multimedia_caption").value = caption; + xGetElementById("multimedia_width").value = width; + xGetElementById("multimedia_height").value = height; + if(auto_start=="true") xGetElementById("multimedia_auto_start").checked = true; + +} + +function insertMultimedia(obj) { + if(typeof(opener)=="undefined") return; + + var url = xGetElementById("multimedia_url").value; + + var caption = xGetElementById("multimedia_caption").value; + + var width = xGetElementById("multimedia_width").value; + if(!width) width = 640; + + var height = xGetElementById("multimedia_height").value; + if(!height) height= 480; + + var auto_start = "false"; + if(xGetElementById("multimedia_auto_start").checked) auto_start = "true"; + + if(!url) { + window.close(); + return; + } + + var text = "
"+caption+"
"; + + opener.editorFocus(opener.editorPrevSrl); + + var iframe_obj = opener.editorGetIFrame(opener.editorPrevSrl) + + opener.editorReplaceHTML(iframe_obj, text); + opener.editorFocus(opener.editorPrevSrl); + + window.close(); +} + +xAddEventListener(window, "load", getMultimedia);