웹마스터 팁
xe 에디터를 외부페이지에사용하기
2012.07.11 10:20
xe에디터를 외부페이지에서사용하는방법
* 일반적인 생각
<?
$oEditorModel = &getModel('editor');
// 에디터 스킨 목록을 구함
Context::set('editor_skin_list', $oEditorModel->getEditorSkinList());
// 에디터를 받음
$option->primary_key_name = 'no';
$option->content_key_name = 'memo';
$option->allow_fileupload = true;
$option->enable_autosave = false;
$option->enable_default_component = true;
$option->enable_component = false;
$option->resizable = true;
$option->height = 300;
$option->skin = "default";
$editor = $oEditorModel->getEditor($row[no], $option);
// $editor->editor_sequence
?>
<form name="폼이름">
<input type="hidden" name="memo" id="memo" value="<?=htmlspecialchars($row[memo]))?>">
<?=$editor?>
</form>
;;;
이렇게 사용하시리라 밎습니다. 문제는 외부페이지에서 경로와 특수문자가 변경이 된다는 것입니다.
그래서 첨부나 태그가 이상하게 변한다는것이죠 그래서
<input type="hidden" name="memo" id="memo" value="<?=htmlspecialchars($row[memo]))?>">
다름에
<script type="text/javascript">
//<![CDATA[
var m = String;
m = "<?=str_replace("\n", "\\\n", htmlspecialchars($row[memo]))?>";
m = m.replace(/외부페이지의 경로/g, "");
m = m.replace(/&/g, '"');
m = m.replace(/"/g, '"');
m = m.replace(/'/g, '\'');
m = m.replace(/</g, '<');
m = m.replace(/>/g, '>');
폼이름.memo.value = m;
//]]>
</script>
을 추가해줍니다. 변환된 특수문자와 경로를 원래로 바꾸는것이죠
* 외부페이지의 경로는 xe가설치된곳부터 : 예) www밑에 2단하위에 있다면 "/1단폴더/2단폴더/" 를 "\/1단폴더\/2단폴더\/" 로 하면됩니다.
이상 모르는 분만 모르는 팁입니다.