miniwini.visualEditor v1.0.0.1 베이직 스킨에 적용하기
복잡하지 않은 이지윅인데 그누하고 상당히 잘 어울리네요.
설치방법입니다.
--------------
1. 압축을 풀고 홈페이지 젤 상위에 복사하세요. 제가 설치한 그림 첨부합니다.
2. miniwini.visualEditor.conf.php 을 수정합니다. 20줄째 줄쯤부터 시작합니다. 보시면서 고치세요
/*수정*/
$visualEditor = array(
// <FORM name="이거">..</FORM> 에서 '이거'
"formName" => "fgbform",
// <FORM...><TEXTAREA name="이거"></TEXTAREA></FORM> 에서 '이거'
"textareaName" => "wr_content",
// "HTML 사용"에 관련된 checkbox의 name
"useHTML" => "w",
// "TEXT 사용"에 관련된 checkbox의 name (미니보드?인가는 HTML 사용이 기본이고 "텍스트 사용"이 옵션이더군요
"useText" => "w",
// "자동 줄바꿈"에 관련된 checkbox의 name
"useAutoBr" => "wr_html",
// 에디터 생성 후 입력 부분에 자동으로 커서가 가게 설정합니다 (TRUE|FALSE)
"autoFocus" => TRUE,
// 게시물 수정 화면일 경우의 기본 내용
"defaultContent" => ($w == "u")?preg_replace("/\n/", "\n", stripslashes($write[wr_content])):"",
/*수정끝*/
3. 미니위니 자바스크립트를 그누와 합쳤습니다. 이쪽이 더 심플하니 좋더군요.
그누보드 javascript.js 파일을 엽니다.
/*추가*/
/*
===============================================================================
* FILENAME : miniwini.visualEditor.js
* VERSION : 0.1.0.1
===============================================================================
* AUTHOR : 위쯔~
* CONTACT : wizz@zezz.com
* URL : http://miniwini.com
===============================================================================
*/
function toggleVisualEditorMode()
{
if (g_bVisualEditor)
{
setVisualEditorMode(false);
}
else
{
setVisualEditorMode(true);
}
g_bVisualEditor = !g_bVisualEditor;
}
function setVisualEditorMode(bVisual)
{
var o1 = document.getElementById(g_sVisualEditor);
var o2 = document.getElementById(g_sVisualEditor+"_code");
if (bVisual)
{
o1.innerHTML = o2.value;
show(o1);
show(divToolbarsVisualTags);
hide(o2);
o1.focus();
}
else
{
o2.value = o1.innerHTML;
hide(o1);
hide(divToolbarsVisualTags);
show(o2);
o2.focus();
}
}
function finalizeVisualEditor()
{
var o1 = document.getElementById(g_sVisualEditor);
var o2 = document.getElementById(g_sVisualEditor+"_code");
if (g_bVisualEditor==true)
{
var sHTML = o1.innerHTML;
}
else
{
var sHTML = o2.value;
}
DivVisualEditorChecker.innerHTML = sHTML;
o2.value = DivVisualEditorChecker.innerHTML;
}
function captureEnterKey()
{
if (event.keyCode == 13)
{
if (event.shiftKey == false)
{
var sel = document.selection.createRange();
sel.pasteHTML('<br>');
event.cancelBubble = true;
event.returnValue = false;
sel.select();
sel.moveEnd("character", 1);
sel.moveStart("character", 1);
sel.collapse(false);
return false;
}
else
{
return event.keyCode = 13;
}
}
}
function fx(nNewPadding)
{
var el = event.srcElement;
while (el.tagName!="TD")
el = el.parentElement;
var nPadding = parseInt(el.getAttribute("nPadding"));
el.style.paddingTop=nPadding+nNewPadding;
}
function defx()
{
var el = event.srcElement;
while (el.tagName!="TD")
el = el.parentElement;
var nPadding = parseInt(el.getAttribute("nPadding"));
el.style.paddingTop = nPadding;
}
function show(obj)
{
obj.style.display = "";
}
function toggle(obj)
{
if (obj.style.display == 'none')
obj.style.display = '';
else
obj.style.display = 'none';
}
function hide(obj)
{
obj.style.display = "none";
}
function visualTag(sTag,obj)
{
obj.focus();
var rng = obj.document.selection.createRange();
switch(sTag)
{
case "bold":
obj.document.execCommand("Bold",false,null);
obj.focus();
break;
case "italic":
obj.document.execCommand("Italic",false,null);
obj.focus();
break;
case "underline":
obj.document.execCommand("Underline",false,null);
obj.focus();
break;
case "strike":
obj.document.execCommand("StrikeThrough",false,null);
obj.focus();
break;
case "insertImage":
var rnd = Math.random();
window.showModalDialog("./miniwini.visualEditor.dialogInsertImage.php?rnd="+rnd,obj,"status:no;dialogWidth:460px;dialogHeight:350px");
break;
case "color":
var sColor = getColorFromColorDlg();
obj.document.execCommand("ForeColor",false,sColor);
obj.focus();
break;
case "bgcolor":
var sColor = getColorFromColorDlg();
obj.document.execCommand("BackColor",false,sColor);
obj.focus();
break;
case "hilite":
obj.document.execCommand("BackColor",false,"FFFF00");
obj.document.execCommand("ForeColor",false,"000000");
break;
case "sup":
obj.document.execCommand("Superscript",false,null);
obj.focus();
break;
case "createLink":
var rnd = Math.random();
window.showModalDialog("./miniwini.visualEditor.dialogCreateLink.php?rnd="+rnd,obj,"status:no;dialogWidth:540px;dialogHeight:500px");
break;
case "insertEmoticons":
var rnd = Math.random();
window.showModalDialog("./miniwini.visualEditor.dialogInsertEmoticons.php?rnd="+rnd,obj,"status:no;dialogWidth:500px;dialogHeight:400px");
break;
}
}
function setImgAlignType(sAlign)
{
document.all.imgAlign1.className = "imgAlign";
document.all.imgAlign2.className = "imgAlign";
document.all.imgAlign3.className = "imgAlign";
event.srcElement.className = "imgAlignOn";
g_sAlign = sAlign;
}
function detectAgentVersion()
{
var ua = window.navigator.userAgent
var msie = ua.indexOf ("MSIE ")
if ( msie > 0 )
return parseFloat(ua.substring(msie+5,ua.indexOf(";", msie)))
else
return 0
}
function changeBorderColor(obj)
{
if (detectAgentVersion()>=6)
{
var sColor = getColorFromColorDlg();
obj.style.backgroundColor = sColor;
g_sBorderColor = "#"+sColor;
}
else
return;
}
function getColorFromColorDlg()
{
var dlgHelper = document.getElementById("dlgHelper");
if (detectAgentVersion()>=6)
{
sInitColor = null;
var sColor = dlgHelper.ChooseColorDlg(sInitColor);
sColor = sColor.toString(16);
if (sColor.length < 6)
{
var sTempString = "000000".substring(0,6-sColor.length);
sColor = sTempString.concat(sColor);
}
return sColor;
}
}
function playMultimediaFile(sUri,obj)
{
var nPlayState = obj.getAttribute("isPlaying");
if (nPlayState==0)
{
el = obj.previousSibling;
while (el.tagName!="A")
el = el.previousSibling;
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("이미 재생중입니다");
return;
}
}
/*추가끝*/
4.베이직 스킨에 적용하도록 하겠습니다. 미니위니 이지윅을 적용시키겠습니다.
gbform.skin.php 을 엽니다.
<textarea name='wr_content' style='border: 1px solid #C2C2C2; word-break:break-all; width:99%;' required rows=15 itemname='내용' class='textarea lh'><?=$content?></textarea>
을 찾으셔서 아래에 추가해주세요
<?include(getcwd()."/miniwini.visualEditor.php");?>
5.필요없는 부분이 보여서 추가합니다.
miniwini.visualEditor.php 열어서 수정하세요.
수정전
-------------------------------
try {oForm.<?=$visualEditor['useHTML']?>.checked = true;}
catch(e){}
try {oForm.<?=$visualEditor['useText']?>.checked = false;}
catch(e){}
try {oForm.<?=$visualEditor['useAutoBr']?>.checked = false;}
catch(e){}
--------------------------------
수정후
--------------------------------
try {oForm.<?=$visualEditor['useHTML']?>.checked = true;}
catch(e){}
/*
try {oForm.<?=$visualEditor['useText']?>.checked = false;}
catch(e){}
try {oForm.<?=$visualEditor['useAutoBr']?>.checked = false;}
catch(e){}
*/
6. 2004년 10월 23일 추가사항입니다.
수정부분은 글 폼이 글 쓰는 방법에 따라 가로폭이 무한정 늘어나는 현상을 잡았습니다.
(1)miniwini.visualEditor.conf.php 파일을 수정합니다.
45번째 줄 쯤에서
수정전
----------------------
"overflow" => "visible"
수정후
----------------------
"overflow" => "auto"
(2)miniwini.visualEditor.php 을 수정합니다.
48번줄쯤에서 이 부분을 찾습니다.
수정전
----------------------
<span id=DivVisualEditor style="width:<?=$visualEditor['width']?>;height:<?=$visualEditor['height']?>;display:none">
<table border=0 cellpadding=0 cellspacing=0 width=100% style="height:99%">
<tr>
<td><div onblur="finalizeVisualEditor()" onkeypress="captureEnterKey()" id="<?=$visualEditor['objectName']?>" style="<?=$visualEditor['styleWYSIWYG']?>;height:100%;overflow:<?=$visualEditor['overflow']?>" contentEditable><?=$visualEditor['defaultContent']?></div><textarea onblur="finalizeVisualEditor()" id="<?=$visualEditor['objectName']?>_code" name="<?=$visualEditor['textareaName']?>" style="<?=$visualEditor['styleTEXTAREA']?>;height:99%;overflow:<?=$visualEditor['overflow']?>"></textarea></div></td>
</tr>
</table>
</span>
수정후
-----------------------
<span id=DivVisualEditor style="width:<?=$visualEditor['width']?>;height:<?=$visualEditor['height']?>;display:none">
<table border=0 cellpadding=0 cellspacing=0 width=100% style="height:99%" style=table-layout:fixed>
<tr>
<td><div onblur="finalizeVisualEditor()" onkeypress="captureEnterKey()" id="<?=$visualEditor['objectName']?>" style="<?=$visualEditor['styleWYSIWYG']?>;height:100%;overflow:<?=$visualEditor['overflow']?>" contentEditable><?=$visualEditor['defaultContent']?></div><textarea onblur="finalizeVisualEditor()" id="<?=$visualEditor['objectName']?>_code" name="<?=$visualEditor['textareaName']?>" style="<?=$visualEditor['styleTEXTAREA']?>;height:99%;overflow:<?=$visualEditor['overflow']?>"></textarea></div></td>
</tr>
</table>
</span>
<table> 부분에서 width를 fixed 시켰습니다.
-------------------------------------
적용된 것은 홈페이지를 방문해 게시판에 글 써 보세요 ^^
설치방법입니다.
--------------
1. 압축을 풀고 홈페이지 젤 상위에 복사하세요. 제가 설치한 그림 첨부합니다.
2. miniwini.visualEditor.conf.php 을 수정합니다. 20줄째 줄쯤부터 시작합니다. 보시면서 고치세요
/*수정*/
$visualEditor = array(
// <FORM name="이거">..</FORM> 에서 '이거'
"formName" => "fgbform",
// <FORM...><TEXTAREA name="이거"></TEXTAREA></FORM> 에서 '이거'
"textareaName" => "wr_content",
// "HTML 사용"에 관련된 checkbox의 name
"useHTML" => "w",
// "TEXT 사용"에 관련된 checkbox의 name (미니보드?인가는 HTML 사용이 기본이고 "텍스트 사용"이 옵션이더군요
"useText" => "w",
// "자동 줄바꿈"에 관련된 checkbox의 name
"useAutoBr" => "wr_html",
// 에디터 생성 후 입력 부분에 자동으로 커서가 가게 설정합니다 (TRUE|FALSE)
"autoFocus" => TRUE,
// 게시물 수정 화면일 경우의 기본 내용
"defaultContent" => ($w == "u")?preg_replace("/\n/", "\n", stripslashes($write[wr_content])):"",
/*수정끝*/
3. 미니위니 자바스크립트를 그누와 합쳤습니다. 이쪽이 더 심플하니 좋더군요.
그누보드 javascript.js 파일을 엽니다.
/*추가*/
/*
===============================================================================
* FILENAME : miniwini.visualEditor.js
* VERSION : 0.1.0.1
===============================================================================
* AUTHOR : 위쯔~
* CONTACT : wizz@zezz.com
* URL : http://miniwini.com
===============================================================================
*/
function toggleVisualEditorMode()
{
if (g_bVisualEditor)
{
setVisualEditorMode(false);
}
else
{
setVisualEditorMode(true);
}
g_bVisualEditor = !g_bVisualEditor;
}
function setVisualEditorMode(bVisual)
{
var o1 = document.getElementById(g_sVisualEditor);
var o2 = document.getElementById(g_sVisualEditor+"_code");
if (bVisual)
{
o1.innerHTML = o2.value;
show(o1);
show(divToolbarsVisualTags);
hide(o2);
o1.focus();
}
else
{
o2.value = o1.innerHTML;
hide(o1);
hide(divToolbarsVisualTags);
show(o2);
o2.focus();
}
}
function finalizeVisualEditor()
{
var o1 = document.getElementById(g_sVisualEditor);
var o2 = document.getElementById(g_sVisualEditor+"_code");
if (g_bVisualEditor==true)
{
var sHTML = o1.innerHTML;
}
else
{
var sHTML = o2.value;
}
DivVisualEditorChecker.innerHTML = sHTML;
o2.value = DivVisualEditorChecker.innerHTML;
}
function captureEnterKey()
{
if (event.keyCode == 13)
{
if (event.shiftKey == false)
{
var sel = document.selection.createRange();
sel.pasteHTML('<br>');
event.cancelBubble = true;
event.returnValue = false;
sel.select();
sel.moveEnd("character", 1);
sel.moveStart("character", 1);
sel.collapse(false);
return false;
}
else
{
return event.keyCode = 13;
}
}
}
function fx(nNewPadding)
{
var el = event.srcElement;
while (el.tagName!="TD")
el = el.parentElement;
var nPadding = parseInt(el.getAttribute("nPadding"));
el.style.paddingTop=nPadding+nNewPadding;
}
function defx()
{
var el = event.srcElement;
while (el.tagName!="TD")
el = el.parentElement;
var nPadding = parseInt(el.getAttribute("nPadding"));
el.style.paddingTop = nPadding;
}
function show(obj)
{
obj.style.display = "";
}
function toggle(obj)
{
if (obj.style.display == 'none')
obj.style.display = '';
else
obj.style.display = 'none';
}
function hide(obj)
{
obj.style.display = "none";
}
function visualTag(sTag,obj)
{
obj.focus();
var rng = obj.document.selection.createRange();
switch(sTag)
{
case "bold":
obj.document.execCommand("Bold",false,null);
obj.focus();
break;
case "italic":
obj.document.execCommand("Italic",false,null);
obj.focus();
break;
case "underline":
obj.document.execCommand("Underline",false,null);
obj.focus();
break;
case "strike":
obj.document.execCommand("StrikeThrough",false,null);
obj.focus();
break;
case "insertImage":
var rnd = Math.random();
window.showModalDialog("./miniwini.visualEditor.dialogInsertImage.php?rnd="+rnd,obj,"status:no;dialogWidth:460px;dialogHeight:350px");
break;
case "color":
var sColor = getColorFromColorDlg();
obj.document.execCommand("ForeColor",false,sColor);
obj.focus();
break;
case "bgcolor":
var sColor = getColorFromColorDlg();
obj.document.execCommand("BackColor",false,sColor);
obj.focus();
break;
case "hilite":
obj.document.execCommand("BackColor",false,"FFFF00");
obj.document.execCommand("ForeColor",false,"000000");
break;
case "sup":
obj.document.execCommand("Superscript",false,null);
obj.focus();
break;
case "createLink":
var rnd = Math.random();
window.showModalDialog("./miniwini.visualEditor.dialogCreateLink.php?rnd="+rnd,obj,"status:no;dialogWidth:540px;dialogHeight:500px");
break;
case "insertEmoticons":
var rnd = Math.random();
window.showModalDialog("./miniwini.visualEditor.dialogInsertEmoticons.php?rnd="+rnd,obj,"status:no;dialogWidth:500px;dialogHeight:400px");
break;
}
}
function setImgAlignType(sAlign)
{
document.all.imgAlign1.className = "imgAlign";
document.all.imgAlign2.className = "imgAlign";
document.all.imgAlign3.className = "imgAlign";
event.srcElement.className = "imgAlignOn";
g_sAlign = sAlign;
}
function detectAgentVersion()
{
var ua = window.navigator.userAgent
var msie = ua.indexOf ("MSIE ")
if ( msie > 0 )
return parseFloat(ua.substring(msie+5,ua.indexOf(";", msie)))
else
return 0
}
function changeBorderColor(obj)
{
if (detectAgentVersion()>=6)
{
var sColor = getColorFromColorDlg();
obj.style.backgroundColor = sColor;
g_sBorderColor = "#"+sColor;
}
else
return;
}
function getColorFromColorDlg()
{
var dlgHelper = document.getElementById("dlgHelper");
if (detectAgentVersion()>=6)
{
sInitColor = null;
var sColor = dlgHelper.ChooseColorDlg(sInitColor);
sColor = sColor.toString(16);
if (sColor.length < 6)
{
var sTempString = "000000".substring(0,6-sColor.length);
sColor = sTempString.concat(sColor);
}
return sColor;
}
}
function playMultimediaFile(sUri,obj)
{
var nPlayState = obj.getAttribute("isPlaying");
if (nPlayState==0)
{
el = obj.previousSibling;
while (el.tagName!="A")
el = el.previousSibling;
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("이미 재생중입니다");
return;
}
}
/*추가끝*/
4.베이직 스킨에 적용하도록 하겠습니다. 미니위니 이지윅을 적용시키겠습니다.
gbform.skin.php 을 엽니다.
<textarea name='wr_content' style='border: 1px solid #C2C2C2; word-break:break-all; width:99%;' required rows=15 itemname='내용' class='textarea lh'><?=$content?></textarea>
을 찾으셔서 아래에 추가해주세요
<?include(getcwd()."/miniwini.visualEditor.php");?>
5.필요없는 부분이 보여서 추가합니다.
miniwini.visualEditor.php 열어서 수정하세요.
수정전
-------------------------------
try {oForm.<?=$visualEditor['useHTML']?>.checked = true;}
catch(e){}
try {oForm.<?=$visualEditor['useText']?>.checked = false;}
catch(e){}
try {oForm.<?=$visualEditor['useAutoBr']?>.checked = false;}
catch(e){}
--------------------------------
수정후
--------------------------------
try {oForm.<?=$visualEditor['useHTML']?>.checked = true;}
catch(e){}
/*
try {oForm.<?=$visualEditor['useText']?>.checked = false;}
catch(e){}
try {oForm.<?=$visualEditor['useAutoBr']?>.checked = false;}
catch(e){}
*/
6. 2004년 10월 23일 추가사항입니다.
수정부분은 글 폼이 글 쓰는 방법에 따라 가로폭이 무한정 늘어나는 현상을 잡았습니다.
(1)miniwini.visualEditor.conf.php 파일을 수정합니다.
45번째 줄 쯤에서
수정전
----------------------
"overflow" => "visible"
수정후
----------------------
"overflow" => "auto"
(2)miniwini.visualEditor.php 을 수정합니다.
48번줄쯤에서 이 부분을 찾습니다.
수정전
----------------------
<span id=DivVisualEditor style="width:<?=$visualEditor['width']?>;height:<?=$visualEditor['height']?>;display:none">
<table border=0 cellpadding=0 cellspacing=0 width=100% style="height:99%">
<tr>
<td><div onblur="finalizeVisualEditor()" onkeypress="captureEnterKey()" id="<?=$visualEditor['objectName']?>" style="<?=$visualEditor['styleWYSIWYG']?>;height:100%;overflow:<?=$visualEditor['overflow']?>" contentEditable><?=$visualEditor['defaultContent']?></div><textarea onblur="finalizeVisualEditor()" id="<?=$visualEditor['objectName']?>_code" name="<?=$visualEditor['textareaName']?>" style="<?=$visualEditor['styleTEXTAREA']?>;height:99%;overflow:<?=$visualEditor['overflow']?>"></textarea></div></td>
</tr>
</table>
</span>
수정후
-----------------------
<span id=DivVisualEditor style="width:<?=$visualEditor['width']?>;height:<?=$visualEditor['height']?>;display:none">
<table border=0 cellpadding=0 cellspacing=0 width=100% style="height:99%" style=table-layout:fixed>
<tr>
<td><div onblur="finalizeVisualEditor()" onkeypress="captureEnterKey()" id="<?=$visualEditor['objectName']?>" style="<?=$visualEditor['styleWYSIWYG']?>;height:100%;overflow:<?=$visualEditor['overflow']?>" contentEditable><?=$visualEditor['defaultContent']?></div><textarea onblur="finalizeVisualEditor()" id="<?=$visualEditor['objectName']?>_code" name="<?=$visualEditor['textareaName']?>" style="<?=$visualEditor['styleTEXTAREA']?>;height:99%;overflow:<?=$visualEditor['overflow']?>"></textarea></div></td>
</tr>
</table>
</span>
<table> 부분에서 width를 fixed 시켰습니다.
-------------------------------------
적용된 것은 홈페이지를 방문해 게시판에 글 써 보세요 ^^
첨부파일
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 43개
getcwd() 함수가 그누 index.php 있는 곳을 root 로 잡아 경로를 return 합니다. 그누 index.php 곳에 미니위니
폴더변경마시고 넣어보세요. 2번에서 문제가 있는것 같습니다. 그리고 getcwd() 가 안되면 직접 경로를 넣어주셔도
되겠습니다.
아래를 보시고 진단좀 해주세요...
1
위의 설명대로 다 수정했습니다.
2.
miniwini.visualEditor 라는 디렉으로 그누보드 안에 넣었습니다.
3.
그누보드 javascript.js 을 수정해서 다시 올렸습니다.
4.
베이직스킨을 아래와같이 수정해서 올렸습니다.
-----------------------
<tr>
<td valign=top><img src='<?=$board_skin?>/icon_nemo.gif' width=7 height=7 align=absmiddle> 내 용</td>
<td><textarea name='wr_content' style='border: 1px solid #C2C2C2; word-break:break-all; width:99%;' required rows=15 itemname='내용' class='textarea lh'><?=$content?></textarea>
<? include(getcwd()."/miniwini.visualEditor.php"); ?>
</td>
</tr>
---------------------- 57번째줄도 수정
<? if ($is_html) { ?><input type=hidden name=wr_html value=1 checked onclick="html_auto_br(this)"><? } ?>
**** 그런대도 basic스킨에서는 아무런 변화가 없습니다.
이곳에 가시면 원 제작자의 설명과 다른 팁(?)을 보실 수 있습니다.
제가 워낙 아는 것이 없어서 도움이 없다면 이런 기능을 사용할 수가 없거든요.
miniwini.visualEditor.conf.php 을 수정합니다.
"defaultContent" => ($w == "u")?preg_replace("/\n/", "\n", stripslashes($write[wr_content])):"",
57번째줄을 이렇게 수정합니다.
<? if ($is_html) { ?><input type=hidden name=wr_html value=1 checked onclick="html_auto_br(this)"><? } ?>
위지윅을 사용하면 자동적으로 html이 사용되어야 하고 글쓰기 폼의 html체크 박스도 보여질 필요가 없는데요.
위지윅을 단 상태에서 글 쓰기 폼에 html체크박스에 계속 체크를 해야하는 불편함이 그대로 존재하는데요.
이부분은 어찌 처리를 해야하는지요?
어느분이 이팁을 보고 적용하더라도 완벽하면 좋겠지만 오류가난다면 최소한의 오류를 가지고
실행할수있기를 바라는마음에서...몇자적었었습니다..
대략 48번째줄쯤 됩니다. 이렇게 수정하세요.
<span id=DivVisualEditor style="width:<?=$visualEditor['width']?>;height:<?=$visualEditor['height']?>;display:none">
<table border=0 cellpadding=0 cellspacing=0 width=100% style="height:99%" style=table-layout:fixed>
<tr>
<td><div onblur="finalizeVisualEditor()" onkeypress="captureEnterKey()" id="<?=$visualEditor['objectName']?>" style="<?=$visualEditor['styleWYSIWYG']?>;height:100%;overflow:<?=$visualEditor['overflow']?>" contentEditable><?=$visualEditor['defaultContent']?></div><textarea onblur="finalizeVisualEditor()" id="<?=$visualEditor['objectName']?>_code" name="<?=$visualEditor['textareaName']?>" style="<?=$visualEditor['styleTEXTAREA']?>;height:99%;overflow:<?=$visualEditor['overflow']?>"></textarea></div></td>
</tr>
</table>
</span>
자세히 보시면 <table> 안에 style=table-layout:fixed 해서 가로폭을 고정시켰습니다.
퍼올때보면 가로로 쭈욱 쓴 글이 간혹가다 있긴한데 잘 정렬됩니다. 흠..대충 보니깐 영문자가 한줄에 쭈욱 있으면
그 폭이 늘어나고 스페이스또한 한줄에 쭈욱 있으면 늘어나네요.
한글이 들어가면 늘어나지 않습니다. ㅋ
줄 44번째쯤 overflow 부분 세팅을 바꿉니다.
"overflow" => "auto"
이러면 적어도 스페이스칠때 이지윅상태에서는 가로폭이 늘어나질 않는군요.
소스보기에서...글쓰기 폼이쭉~~~늘어나는현상은?.....뷰폼에서 알아서정렬되는군여...
영문자를쭉써었다거나.1부터 10까지 숫자...페이스등을 쭉~~나열한다면 늘어나는현상이 있는데..
무슨방법이없을까요??..요상한건..한글자음이나모음완성은...그런현상이없는데...
설치와 적용은 별어려움이 없이 사용할 수 있는 팁인것같습니다.(때에따라선어려울수도...)
일단설치화면은 깔끔하고 가볍지만....실제사용하는데에있어서는 문제점이 몇가지있는듯합니다.
그누의 기본게시판이나 기존에 만들어놓은 스킨에 인클루트 방식을 취하다보니..
적용하고서 게시판에 엔터없이계속해서 글을쓴다거나..생성된위니미니의툴바를이용해서
소스보기를 한다면 끊임없이 글쓰기입력폼이늘어납니다....위에 링크된 실험용게시판에서도 그러겠지만..
물론 삽질을많이한다면 고정형으로도 만들수있겠지만..꽤많은 삽질이필요할듯....
좀 무식한 방법일지 모르지만 일단 파일명을 하나 변경해 소기면 어떨런지요..
답이 되지는 못할 것 같지만요.
아시는분을 긴급수배합니다....수배료없음...
게시판에서 html기능을 부여한자체가 이미 보안에 노출된상태입니다..
특별히...중요한사이트는 html.쓰기기능을 부여하지 마세용....
근데..개인사이트치고..해킹해볼만한데가없음....
그런데 혹여 이것이 보안면에서 어떤 영향을 줄 수 있는지요? 만일 치명적이라면 안하는 것이 좋겠지요.
경로는 맞는 것 같은데..왜 안띄워질까요??...
미니위니를 설치한 루트는..자바는 합치고 폴더는 구누인덱스딜렉에설치한상태인데ㅣ..
모든것이 정상인듯한데...유독히...이티모콘이안뜨네요...쩝...좀더삽질을해봐야지
그누 bbs/gbview.php 에서 209째 줄쯤 되는데 이렇게 수정하세요. 보시면 쉽게 적용하실 수 있을듯 싶네요.
//$list[$i][content] = conv_content($row[wr_content], 0);
$list[$i][content] = nl2br($row[wr_content]);
$list[$i][datetime] = substr($row[wr_datetime],2,14);
//$comment_content = conv_content($row[wr_content], 0);
$comment_content = nl2br($row[wr_content]);
주석처리하고 파일고쳤습니다.
소스가 그대로 출력되어버리는 문제가...
이부분은 html이 사용가능하도록 되어야 할 것 같군요.
문제는 이러면 본문의 위지윅도 줄어드는데 miniwini.visualEditor.php 하나더 만드셔야 될지도 모르겠네요.
<span id=DivVisualEditor style="width:<?=$visualEditor['width']?>;height:<?=$visualEditor['height']?>;display:none">
<table border=0 cellpadding=0 cellspacing=0 width=100% style="height:100%">
<tr>
<td><div onblur="finalizeVisualEditor()" onkeypress="captureEnterKey()" id="<?=$visualEditor['objectName']?>" style="<?=$visualEditor['styleWYSIWYG']?>;height:100%;overflow:<?=$visualEditor['overflow']?>" contentEditable><?=$visualEditor['defaultContent']?></div><textarea onblur="finalizeVisualEditor()" id="<?=$visualEditor['objectName']?>_code" name="<?=$visualEditor['textareaName']?>" style="<?=$visualEditor['styleTEXTAREA']?>;height:99%;overflow:<?=$visualEditor['overflow']?>;"></textarea></div></td>
</tr>
</table>
</span>
<?include(getcwd()."/miniwini.visualEditor.php");?> 붙여넣으면 작동이 되네요.ㅎㅎㅎ
히 어디를 가르치는지 함수부분을 체크하지 못했네요.
쉽게 하는 방법은 자바스크립트를 그누 javascript.js 랑 합치시고 miniwini.visualEditor.php 이부분인걸로 기억하
는데 거기서 미니위니스크립트를 제거 해보시겠어요?
정말로 답답했었거든요..
자바소스를 그누의자바소스에 붙여서 넣은상태라면
미니위니.비쥬얼에디터파일 / 미니위니.비쥬얼에디터.다이얼로그인서트이미지 파일에서
<script src="<?=$visualEditor['url']['lib']?>../javascript.js" type="text/javascript"></script>이런식으로
스크립트 경로를 제지정하셔야됩니다..
무엇보다..파일딜렉을 어디에위치하는냐에따라서..때로는 7개의파일을 드믄드믄..수정해야될수도있는데..
님의경우에는 스크립트경로 인것같습니다.
개체가 필요합니다라는 문구와 함께
http://www.sacho.pe.kr/board/miniwini.visualEditor.dialogInsertImage.php?rnd=0.3409700771532371이런 주소가 나오는 스크립트 에러입니다.
이 오류의 원인은 무엇일까요? 잘 모르니 스크립트를 새로 올려도 보고 다시 js파일에 소스 붙이고 올리고 여러가지를 해보았는데 왜 이부분에서만 에러가 발생하는지 원인을 찾을 수가 없어서 답답합니다.
spaw보다..게시판이 가볍고 설치도 쉬운편이네요...
catch(e){}
198
오류: 개체가 이 속성 또는 메서드를 지원하지 않습니다.라고 나오네요.. ㅜ.ㅜ
표현하는 것 같습니다. 인쿠르드 부분을 수정하시거나 이지윅을 그누 기준 최상위 폴더로 올려주세요.
Warning: main(): Failed opening '/home/my3040/public_html/gnu3/miniwini.visualEditor/miniwini.visualEditor.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/my3040/public_html/gnu3/bbs/skin/board/green/gbform.skin.php on line 66
에러가 나는데요 최상위에 폴더 생성하고 수정 하였습니다.
속도는 빠르네요..
콘텐츠를 금방 가져올 수 있더군요. 놀랬어요 >_<.
아니면 최상위 폴더로 해야 하는지? 현재gnu3 사용중인데요
베이직 스킨 그누버전에 차이가 있는건지요? 현재 3.34 사용중이라서요
그럼 답변 기다리겠습니다