git-svn-id: http://xe-core.googlecode.com/svn/trunk@522 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-03-19 02:48:13 +00:00
parent a2eba30a0c
commit 00fe8b71f6
5 changed files with 74 additions and 0 deletions

View file

@ -0,0 +1,41 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Edit Html</title>
<link rel='stylesheet' href='../css/editor.css' type='text/css' />
<script type='text/javascript' src='../../common/js/x.js'></script>
<script type='text/javascript' src='../../common/js/common.js'></script>
<script type='text/javascript' src='../js/editor.js'></script>
<script type='text/javascript'>
function setText() {
if(typeof(opener)=='undefined') return;
var text = opener.editorGetSelectedHtml(opener.editorPrevSrl);
var fo_obj = xGetElementById('fo');
fo_obj.text.value = text;
self.focus();
}
function insertHtml() {
if(typeof(opener)=='undefined') return;
var fo_obj = xGetElementById('fo');
var text = fo_obj.text.value;
if(!text) return;
opener.editorInsertHTML(text);
opener.focus();
self.close();
}
xAddEventListener(window, 'load', setText);
xAddEventListener(window, 'load', setFixedPopupSize);
</script>
</head>
<body class="editor_pop_body">
<form action='./' method='post' id='fo' onSubmit="return false" style="display:inline">
<div class="editor_window">
<div><textarea name="text" id='editor' class="editor_textarea"></textarea></div>
<div><input type='button' id='manual_url_submit' class="editor_submit" value='insert' onClick='insertHtml()' /></div>
</div>
</form>
</body>
</html>

View file

@ -0,0 +1,57 @@
<?php
/**
* @class html_editor
* @author zero (zero@nzeo.com)
* @brief 에디터에서 url링크하는 기능 제공. 단순 팝업.
**/
class html_editor extends EditorHandler {
// upload_target_srl 는 에디터에서 필수로 달고 다녀야 함....
var $upload_target_srl = 0;
var $component_path = '';
/**
* @brief upload_target_srl과 컴포넌트의 경로를 받음
**/
function html_editor($upload_target_srl, $component_path) {
$this->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=html_editor', $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);
// 이모티콘을 모두 가져옴
$html_editor_list = FileHandler::readDir($tpl_path.'/images');
Context::set('html_editor_list', $html_editor_list);
require_once("./classes/template/TemplateHandler.class.php");
$oTemplate = new TemplateHandler();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,023 B

View file

@ -0,0 +1,9 @@
#emoticon_area {
width:230px;
padding:10px 0px 10px 0px;
text-align:center;
}
#emoticon_area img {
margin:2px;
}

View file

@ -0,0 +1,8 @@
function insertImage(obj) {
if(typeof(opener)=='undefined') return;
opener.editorInsertEmoticon(obj);
opener.editorFocus(opener.editorPrevSrl);
window.close();
}