웹마스터 팁

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(/&amp;/g, '"');
m = m.replace(/&quot;/g, '"');
m = m.replace(/&#39;/g, '\''); 
m = m.replace(/&lt;/g, '<');
m = m.replace(/&gt;/g, '>'); 
폼이름.memo.value = m;
 //]]>
</script>
을 추가해줍니다.  변환된 특수문자와 경로를 원래로 바꾸는것이죠

 * 외부페이지의 경로는 xe가설치된곳부터 : 예) www밑에 2단하위에 있다면 "/1단폴더/2단폴더/"  를 "\/1단폴더\/2단폴더\/" 로 하면됩니다.

 

 

 

이상 모르는 분만 모르는 팁입니다.