태터 1.0 Classic에 미니위니 비쥬얼에디터 붙이기

태터툴즈 1.0 Classic 기준입니다. 0.93 이하는 이쪽을 참고해주시고 그 외의 버전은 검색사이트를 찾아보셔야 합니다;;

주의 : 이 방법대로 에디터를 붙이게 되면 태터 0.94부터 추가된 현재 커서위치에 그림파일 넣기, 태그넣기 등이 동작하지 않습니다. 0.93 처럼 무조건 태그는 선택영역을 만들어야 적용되고 그림파일 삽입 등은 무조건 문서에 맨 끝에 붙게됩니다.

1. 비쥬얼에디터 다운로드
미니위니 에디터는 EUC-KR 인코딩으로 작성돼있기 때문에 모두 UTF-8 인코딩으로 변경해줘야 합니다. 아래 via crizin.net 링크를 눌러 다운로드 하면 UTF-8로 변경된 파일을 받을 수 있습니다.

via 미니위니 / via crizin.net (utf-8)

2. 다운받은 파일을 태터툴즈가 설치된 폴더 (이하 /tt) 아래 admin 폴더 밑에 집어넣는다.

3. miniwini.visualEditor.conf.php 파일중 아래 표시된 부분만 따라서 수정한다.
"formName"       => "article_edit",
"textareaName"   => "body",
"defaultContent" => trim(str_replace(""","\"", str_replace("'","'",$body))),
"width"          => 423,
"overflow"       => "auto",
"styleWYSIWYG"   => "background-color:white;text-align:left;padding:5px;border:1px solid #cdcdcd;width:100%;word-break:break-all",

3-1. miniwini.visualEditor.conf.php 파일 맨 끝에 아래의 한줄을 추가한다
<meta http-equiv="content-type" content="text/html; charset=utf-8">

4. /tt/admin/miniwini.visualEditor.js 파일을 수정한다.
아래의 문장을 찾아
var o1 = document.getElementById(g_sVisualEditor);
var o2 = document.getElementById(g_sVisualEditor+"_code");

바로 뒤에 아래의 문장을 추가한다.
o1.style.width = "423px";
o2.style.width = "423px";

5. /tt/admin/article_edit.php 파일을 수정한다.

450번째줄의 아래 문장을, (450번째 줄은 수정하지 않습니다. 이미 수정하신분들의 원상복구를 위해 남겨놓습니다.)


350번째줄의 이 부분을 찾아,
<textarea name="body" rows="18" cols="62" onselect="save_pos(this)" onclick="save_pos(this)" onkeyup="save_pos(this)" style="width:423; margin:5px 0 0 18px;"><?=str_replace("&", "&amp;", trim(set_body($body)))?></textarea><br>

이렇게 고친다
<div style="text-align: center; margin: 5px 0px 5px 1px; overflow: auto"><textarea name="body" rows="18" cols="62" onselect="save_pos(this)" onclick="save_pos(this)" onkeyup="save_pos(this)" style="width:423; margin:5px 0 0 18px;"><?=str_replace("&", "&amp;", trim(set_body($body)))?></textarea></div>
<? include(dirname(__FILE__)."/miniwini.visualEditor.php"); ?>

키워드 수정 화면(/tt/admin/keyword_edit.php)도 위와 같은 방법으로 수정해준다.
각각 195, 135번째줄.

6. /tt/lib.js 파일을 수정한다.
440번째줄의 set_tag_support(obj, prefix, postfix) { ... } 부분을 아래의 내용으로 교체
function set_tag_support(obj, prefix, postfix) {
    if( obj.style.display == "none" )
    {
        var oRng = document.selection.createRange();

        if( oRng.text == "" )
            alert('\n본문에서 태그를 추가할 영역을 선택해 주세요.\t\n\n(마우스 드래그 또는 shift + 방향키)');
        else
            oRng.pasteHTML(prefix + oRng.htmlText + postfix);
    }
    else
        alert("소스보기 상태에서는 태그를 넣을 수 없어요 >.<");
}

237번째줄부터 나오는 to_article_1l, to_article_1c, to_article_1r, to_article_2c, to_article_3c, to_article_free, to_article_slide 총 7개의 함수 끝쪽의

set_tag_support(obj2, buffer, '');

이부분을 아래처럼 수정한다
document.getElementById("iView").innerHTML += "<br>" + buffer;

마지막으로 아래의 함수를 파일 끝에 추가한다. (--> 앞쪽에 넣을 것)
function playMultimediaFile(sUri,obj)
{
    var nPlayState = obj.getAttribute("isPlaying");

    if( nPlayState == 0 )
    {
        var el = obj.previousSibling;

        while (el.tagName != "A")
            el = el.previousSibling;

        try
        {
            el.insertAdjacentHTML("beforeBegin", "<EMBED autostart=true src='" + sUri + "'><br>");

            obj.setAttribute("isPlaying", 1);
        }
        catch(e)
        {
            var oMedia = document.createElement("EMBED");
            oMedia.style.display = "block";
            oMedia.src = sUri;
            oMedia.autostart = true;
            obj.parentNode.appendChild(oMedia);                
        }

        obj.setAttribute("isPlaying", 1);
    }
    else
        alert("이미 재생중입니다");
}

6-1. /admin/attach_image_pop.php 파일을 수정한다.
43번째줄의 아래 문장을,
set_tag_support(opener.form.body, '<?=addslashes(put_script($buffer))?>', '');

아래처럼 바꾼다
opener.document.getElementById("iView").innerHTML += "<br><?=addslashes(put_script($buffer))?>"

7. index.php 파일을 수정한다. (index.php 파일은 수정하지 않습니다. 이미 수정하신분들의 원상복구를 위해 남겨놓습니다.)


7-1. inc_function.php 파일의 222번째줄 nl2brc($str) { ... } 함수를 아래의 내용으로 교체한다
function nl2brc($str) {
    return str_replace("[HTML]", "", str_replace("[/HTML]", "", $str));
}

8. 사용하고 있는 스킨 파일의 skin.html 파일 <head></head> 사이에 아래의 문장을 추가한다.
<link rel="StyleSheet" href="admin/miniwini.visualEditor.css">

9. 아래의 SQL을 실행해서 입력돼있는 게시물의 줄바꿈문자를 <br />로 모두 바꿔준다. (기존에 태터 기본 에디터를 써오다 비쥬얼에디터를 처음 설치하는 경우에만 실행하면 됨)
주의1 : 비쥬얼에디터로 작성된 글에는 이 쿼리가 적용되면 안되고 태터 기본 에디터로 작성된 글에만 적용돼야 하니 비쥬얼에디터를 처음 설치하는 경우에만 실행해야 됨.

주의2 : 이 쿼리를 실행하면 [HTML][/HTML] 태그로 묶여있는 부분은 제대로 출력되지 않는다. 이럴땐 [HTML][/HTML] 태그를 제거해주면 제대로 출력 된다.

UPDATE t3_tts_10ofmg SET body=replace(body, '\r\n', '<br />');
UPDATE t3_tts_10ofmg_keyword SET body=replace(body, '\r\n', '<br />');


실행이 어려우신 분들은 아래 nl2br.php 파일을 태터툴즈가 설치된 디렉토리에 업로드 해서 실행해주시면 됩니다.
태그 :