smart editor를 연결하는데, editor.php.lib 파일을 어떻게 작성해야하는지 모르겠습니다.
본문
일단 3개의 함수의 내용을 채워야 하는지는 알겠고, gc_editor_html에 에디터 html을 넣으면 되겠는데...
html에서 사용할 javascript file을 어디에 add시켜야할지 모르겠습니다;;
예전에 어떤 분이 올려주신 smartEditor 압축파일은 지금 그누커머스와 연동이 안되더라구요...
질문은,
1. <script type="text/javascript src="js/[file name]" ></script> 이걸 어느 함수에 어떻게 추가해야되는지..
2. gc_get_editor_js는 js file을 add시켜주는 함수인가요?
염치불구하고 코드를 붙여넣겠습니다.
읽어주셔서 감사합니다.
<?php
if( ! defined( 'ABSPATH' ) ) exit; // 개별 페이지 접근 불가
/*
환경설정에서 에디터 선택이 없는 경우에 사용하는 라이브러리 입니다.
에디터 선택시 "선택없음"이 아닌 경우 plugin/editor 하위 디렉토리의 각 에디터이름/editor.lib.php 를 수정하시기 바랍니다.
*/
Class GC_wp_editor{
public static function init() {
add_filter('gc_editor_return_html', array( __CLASS__, 'gc_editor_html' ), 10, 3 );
add_filter('gc_get_editor_script', array( __CLASS__, 'gc_get_editor_js' ), 10, 2 );
add_filter('gc_chk_editor_script', array( __CLASS__, 'gc_chk_editor_js' ), 10, 2 );
}
public static function gc_editor_html($return_content, $id, $content)
{
if (!defined('GC_BOARD_USE')){ //현재 게시판에서만 사용되게 한다.
return $return_content;
}
ob_start();
$html ="
<script type=\"text/javascript\" src=\"js/HuskyEZCreator.js\" charset=\"utf-8\"></script>
<h1>Delete todo My First Heading</h1>
<textarea name=\"content\" id=\"content\" rows=\"45\" style=\"width:500px;\"></textarea>
<script type=\"text/javascript\">
var oEditors = [];
nhn.husky.EZCreator.createInIFrame({
oAppRef: oEditors,
elPlaceHolder: \"content\",
sSkinURI:\"SmartEditor2Skin.html\",
fCreator:\"createSEditor2\"
});
</script>
";
//wp_editor($content, $id);
return $html;
}
// textarea 로 값을 넘긴다. javascript 반드시 필요
public static function gc_get_editor_js($return_content, $id)
{
if (!defined('GC_BOARD_USE')){ //현재 게시판에서만 사용되게 한다.
return $return_content;
}
//$js_code = "var {$id}_wp_editor = tinyMCE.get('$id');\n";
//$js_code = "var {$id}_wp_editor = tinyMCE.editors['$id'];\n";
//return $js_code;
return "var {$id}_editor = document.getElementById('{$id}');\n";
//$js_code = "var {$id}_wp_editor = tinyMCE.editors['$id'];\n";
//return $js_code;
}
// textarea 의 값이 비어 있는지 검사
public static function gc_chk_editor_js($return_content, $id)
{
if (!defined('GC_BOARD_USE')){ //현재 게시판에서만 사용되게 한다.
return $return_content;
}
return "jQuery('#{$id}-tmce').trigger('click');if (!jQuery.trim({$id}_wp_editor.getContent())) { alert(\"내용을 입력해 주십시오.\"); {$id}_wp_editor.focus(); return false; }\n";
}
}
GC_wp_editor::init();
?>
답변 1
안녕하세요.
워드프레스의 특성이 플러그인이나 테마를 자동 업데이트 하게 되면, 추가한 코드나 커스터마이징한 코드들이 전부 날라가게 됩니다. ( 그냥 초기화 됩니다. )
그래서 플러그인 같은 경우 커스터마이징 하고 싶다면 child 테마를 만들거나 별도의 플러그인을 만들고,
테마의 경우 child 테마를 만들어서 수정을 합니다.
수정은 hook 함수 ( add_action, add_filter, 기타 등등 ) 이용해서 해야 합니다.
질문내용과 같이 플러그인 등을 수정한다면, 나중에 자동 업데이트를 하게 되면 작업해 둔 것이 초기화 될것입니다. 따라서 질문내용과 같은 작업은 권하지 않습니다.
제가 나중에 시간이 되면 워드프레스 팁 게시판에 add_action 함수나 add_filter 함수를 이용해서 어떻게 스마트에디터로 변경할수 있는지 코드를 적어 놓겠습니다.