스케줄 게시판에서 DHTML 에디터가 되게 하려면 정보
스케줄 게시판에서 DHTML 에디터가 되게 하려면본문
스케줄 게시판에서 DHTML 에디터가 되게 하려면어떻게 해야 할까요? DHTML 에디터가 안 되면 적어도 일반 HTML 태그라도 먹게 하고 싶은데...
아래는 write.skin.php 소스입니다.
에 있는 것입니다. 초짜입니다. 도와주세요~!
==============================================================
<?
if(strlen($f_date)>0&&strlen($t_date)>0) { // 받은 날짜 argument 가 있을때..
$f_year = (int)substr($f_date,0,4);$f_mon = (int)substr($f_date,4,2);$f_day = (int)substr($f_date,6,2);
$t_year = (int)substr($t_date,0,4);$t_mon = (int)substr($t_date,4,2);$t_day = (int)substr($t_date,6,2);
$q_year = $f_year ; // $qstr2 변수값 지정
$q_month = $f_mon ;
}
else { // 받은 날짜 argument 가 없거나, 이상할 때 오늘날짜로 세팅...
$today = getdate();
$f_mon = $today['mon'];$f_day = $today['mday'];$f_year = $today['year'];
$t_mon = $today['mon'];$t_day = $today['mday'];$t_year = $today['year'];
$f_date = $t_year.sprintf("%02d",$t_mon).$t_day;
$t_date = $t_year.sprintf("%02d",$t_mon).$t_day;
$q_year = (int)substr($link[1],0,4) ; // $qstr2 변수값 지정
$q_month = (int)substr($link[1],4,2) ;
}
?>
$q_month = (int)substr($link[1],4,2) ;
}
?>
<table width='<?=$width?>' align=center><tr><td>
<table border=1 cellpadding=3 cellspacing=0 width=100% bgcolor=white bordercolor=white bordercolorlight=#c8d8e0>
<form name=fgbform method=post action='<?="./write_update.php"?>' enctype='multipart/form-data' onsubmit='return formcheck()'>
<!-- <tr><td colspan=2 align=center bgcolor=#f7f7f7><b><?=$html_title?></b></td></tr> -->
<form name=fgbform method=post action='<?="./write_update.php"?>' enctype='multipart/form-data' onsubmit='return formcheck()'>
<!-- <tr><td colspan=2 align=center bgcolor=#f7f7f7><b><?=$html_title?></b></td></tr> -->
<?
$start_date = $link[1];
$end_date = $link[2];
//echo "<script language='javascript'>alert('$link[1]$link[2]');</script>";
$start_date = $link[1];
$end_date = $link[2];
//echo "<script language='javascript'>alert('$link[1]$link[2]');</script>";
$start_date_y = substr($start_date,0,4);
$start_date_m = substr($start_date,4,2);
$start_date_d = substr($start_date,6,2);
$end_date_y = substr($end_date,0,4);
$end_date_m = substr($end_date,4,2);
$end_date_d = substr($end_date,6,2);
$end_date_m = substr($end_date,4,2);
$end_date_d = substr($end_date,6,2);
//echo "<script language='javascript'>alert('$start_date$end_date');</script>";
?>
<?
if (strlen($start_date) == 8) // 기존에 들어있는 값이 있을 경우엔 기존의 값을 이용한다.
{
//(int)
$f_year =(int)$start_date_y;
$f_mon =(int)$start_date_m;
$f_day = (int)$start_date_d;
// echo "<script language='javascript'>alert('$f_year$f_mon$f_day');</script>";
$t_year = (int)$end_date_y;
$t_mon =(int)$end_date_m;
$t_day = (int)$end_date_d;
$t_mon =(int)$end_date_m;
$t_day = (int)$end_date_d;
//echo "<script language='javascript'>alert('$t_year$t_mon$t_day');</script>";
}
// 날짜 관련 listbox html 생성 시작
$lastday=array(0,31,28,31,30,31,30,31,31,30,31,30,31);
if ($year%4 == 0) $lastday[2] = 29;
for ($i=1;$i <= $lastday[$t_mon];$i++) {
$temp_year = $t_year - 4 + $i;
if($i <= 7) { // 년도 선택 listbox html 생성
if ($temp_year==$f_year) { $htm_fyear .= " <OPTION value=$temp_year selected>$temp_year</OPTION>\n"; }
else { $htm_fyear .= " <OPTION value=$temp_year>$temp_year</OPTION>\n"; }
if ($temp_year==$t_year) { $htm_tyear .= " <OPTION value=$temp_year selected>$temp_year</OPTION>\n"; }
else { $htm_tyear .= " <OPTION value=$temp_year>$temp_year</OPTION>\n"; }
}
if($i <=12) { // 월 선택 listbox html 생성
$temp_mon = sprintf ("%02d",$i);
if ($i==$f_mon) { $htm_fmon .= " <OPTION value=$temp_mon selected>$i</OPTION>\n"; }
else { $htm_fmon .= " <OPTION value=$temp_mon>$i</OPTION>\n"; }
if ($i==$t_mon) { $htm_tmon .= " <OPTION value=$temp_mon selected>$i</OPTION>\n"; }
else { $htm_tmon .= " <OPTION value=$temp_mon>$i</OPTION>\n"; }
}
// 일 선택 listbox html 생성
$temp_day = sprintf ("%02d",$i);
if ($i==$f_day) { $htm_fday .= " <OPTION value=$temp_day selected>$i</OPTION>\n"; }
else { $htm_fday .= " <OPTION value=$temp_day>$i</OPTION>\n"; }
if ($i==$t_day) { $htm_tday .= " <OPTION value=$temp_day selected>$i</OPTION>\n"; }
else { $htm_tday .= " <OPTION value=$temp_day>$i</OPTION>\n"; }
}
// 날짜 관련 listbox html 생성 끝
?>
<tr>
<td bgcolor=#f7f7f7 align="center" width="100"><strong>시작일</td>
<td>
<SELECT onchange="javascript:resetday('from');" name=fyear>
<?=$htm_fyear?>
<?//echo "<script language='javascript'>alert('$htm_fyear');</script>";?>
</SELECT> 년
<td bgcolor=#f7f7f7 align="center" width="100"><strong>시작일</td>
<td>
<SELECT onchange="javascript:resetday('from');" name=fyear>
<?=$htm_fyear?>
<?//echo "<script language='javascript'>alert('$htm_fyear');</script>";?>
</SELECT> 년
<SELECT onchange="javascript:resetday('from');" name=fmon>
<?=$htm_fmon?>
</SELECT> 월
<?=$htm_fmon?>
</SELECT> 월
<SELECT onchange="javascript:resetday('from');" name=fday>
<?=$htm_fday?>
</SELECT> 일<input type=hidden name='wr_link1' itemname='링크 #1' value='<?=$f_date?>' class='input' size=60>
<?=$htm_fday?>
</SELECT> 일<input type=hidden name='wr_link1' itemname='링크 #1' value='<?=$f_date?>' class='input' size=60>
</td>
</tr>
<tr>
<td bgcolor=#f7f7f7 align="center"><strong>종료일</td>
<td>
<SELECT onchange="javascript:resetday('to');" name=tyear>
<?=$htm_tyear?>
</SELECT> 년
<SELECT onchange="javascript:resetday('to');" name=tmon>
<?=$htm_tmon?>
</SELECT> 월
<SELECT onchange="javascript:resetday('to');" name=tday>
<?=$htm_tday?>
</SELECT> 일<input type=hidden name='wr_link2' itemname='링크 #2' value='<?=$t_date?>' class='input' size=60>
</td>
</tr>
</tr>
<tr>
<td bgcolor=#f7f7f7 align="center"><strong>종료일</td>
<td>
<SELECT onchange="javascript:resetday('to');" name=tyear>
<?=$htm_tyear?>
</SELECT> 년
<SELECT onchange="javascript:resetday('to');" name=tmon>
<?=$htm_tmon?>
</SELECT> 월
<SELECT onchange="javascript:resetday('to');" name=tday>
<?=$htm_tday?>
</SELECT> 일<input type=hidden name='wr_link2' itemname='링크 #2' value='<?=$t_date?>' class='input' size=60>
</td>
</tr>
<tr>
<td bgcolor=#f7f7f7 align="center"><strong>
<?
$qstr2 = "&year=$q_year&month=$q_month" ;
?>
<input type=hidden name=w value='<?=$w?>'>
<input type=hidden name=bo_table value='<?=$bo_table?>'>
<input type=hidden name=wr_id value='<?=$wr_id?>'>
<input type=hidden name=sselect value='<?=$sselect?>'>
<input type=hidden name=stext value='<?=$stext?>'>
<input type=hidden name=section value='<?=$section?>'>
<input type=hidden name=ssort value='<?=$ssort?>'>
<input type=hidden name=sorder value='<?=$sorder?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=qstr2 value='<?=$qstr2?>'>
분류</td>
<td>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY><!--아이콘은 슈퍼보드의 아이콘을 사용하였습니다. http://superboard.com-->
<? for ($j=1 ; $j<=6 ; $j++) {
echo "<TR>" ;
for ( $i=$j*5-4 ; $i<=$j*5 ; $i++ ){
echo "<TD><INPUT type=radio value=bull_".$i." name=wr_1 " ;
if($write[wr_1] == "bull_".$i)
echo "checked ";
echo "><img src='$board_skin_path/img/bull_".$i.".gif' border=0> </TD>" ;
}
echo "</TR>" ;
}
?>
</TBODY></TABLE>
</td>
</tr>
</tr>
<? if ($is_name) { ?>
<tr><td align="center" bgcolor=#f7f7f7 ><strong>이름</td><td><input type=text name='wr_name' size=60 maxlength=20 required itemname='이름' value='<?=$name?>' class=input></td></tr><? } ?>
<tr><td align="center" bgcolor=#f7f7f7 ><strong>이름</td><td><input type=text name='wr_name' size=60 maxlength=20 required itemname='이름' value='<?=$name?>' class=input></td></tr><? } ?>
<? if ($is_password) { ?><tr><td align="center" bgcolor=#f7f7f7 ><strong>비밀번호</td><td><input type=password name='wr_password' size=20 maxlength=20 <?=$password_required?> itemname='비밀번호' class=input></td></tr><? } ?>
<? if ($is_email) { ?><tr><td align="center" bgcolor=#f7f7f7 ><strong>E-MAIL</td><td><input type=text name='wr_email' size=60 maxlength=100 email itemname='E-MAIL' value='<?=$email?>' class='input w99'></td></tr><? } ?>
<? if ($is_homepage) { ?><tr><td align="center" bgcolor=#f7f7f7 ><strong>홈페이지</td><td><input type=text name='wr_homepage' size=60 itemname='홈페이지' value='<?=$wr_homepage?>' class='input w99'></td></tr><? } ?>
<? if ($is_email) { ?><tr><td align="center" bgcolor=#f7f7f7 ><strong>E-MAIL</td><td><input type=text name='wr_email' size=60 maxlength=100 email itemname='E-MAIL' value='<?=$email?>' class='input w99'></td></tr><? } ?>
<? if ($is_homepage) { ?><tr><td align="center" bgcolor=#f7f7f7 ><strong>홈페이지</td><td><input type=text name='wr_homepage' size=60 itemname='홈페이지' value='<?=$wr_homepage?>' class='input w99'></td></tr><? } ?>
<? if ($is_category) { ?><tr><td align="center" bgcolor=#f7f7f7 ><strong>분류</td><td><select name=ca_id><?=$category_option?></select></td></tr><? } ?>
<tr><td bgcolor=#f7f7f7 align="center"><strong>제목</td><td><input class=ed type=text name='wr_subject' required itemname='제목' value='<?=$subject?>' size=90 class='input w99'></td></tr>
<tr><td bgcolor=#f7f7f7 align="center"><strong>내용</td><td><textarea class=ed name='wr_content' required style='word-break:break-all;' cols=100 rows=10 itemname='내용' class='textarea w99 lh'><?=$content?></textarea></td></tr>
<tr><td bgcolor=#f7f7f7 align="center"><strong>내용</td><td><textarea class=ed name='wr_content' required style='word-break:break-all;' cols=100 rows=10 itemname='내용' class='textarea w99 lh'><?=$content?></textarea></td></tr>
<? if ($is_norobot) { ?>
<tr>
<td bgcolor=#f7f7f7 align="center"><?=$norobot_str?></td>
<td>
<input type=input name='wr_key' required itemname='자동등록방지' size=10 class=input>
왼쪽의 글자중 빨간글자만 순서대로 입력하세요.
</td>
</tr>
<? } ?>
<tr>
<td bgcolor=#f7f7f7 align="center"><?=$norobot_str?></td>
<td>
<input type=input name='wr_key' required itemname='자동등록방지' size=10 class=input>
왼쪽의 글자중 빨간글자만 순서대로 입력하세요.
</td>
</tr>
<? } ?>
</table>
<p>
<div align=center>
<input name=btnsubmit type=submit value=' 확 인 ' class=button onclick="javascript:resetday('all');" >
<? //if ($is_imagesave) { ?>
<input type=button value=' 취 소 ' onclick="history.back();">
<? //} ?>
</div>
<input name=btnsubmit type=submit value=' 확 인 ' class=button onclick="javascript:resetday('all');" >
<? //if ($is_imagesave) { ?>
<input type=button value=' 취 소 ' onclick="history.back();">
<? //} ?>
</div>
</td></tr></form></table>
<script language='Javascript'>
var f = document.fgbform;
var f = document.fgbform;
if (f.w.value == 'i' && typeof(f.wr_name) != 'undefined') {
f.wr_name.focus();
} else if (f.w.value == 'u') {
f.wr_subject.focus();
if (typeof(f.ca_id) != 'undefined') {
f.ca_id.value = '<?=$ca_id?>';
}
}
f.wr_name.focus();
} else if (f.w.value == 'u') {
f.wr_subject.focus();
if (typeof(f.ca_id) != 'undefined') {
f.ca_id.value = '<?=$ca_id?>';
}
}
function formcheck()
{
if (fgbform.wr_link2.value-fgbform.wr_link1.value<0) {
alert("시작날짜보다 종료날짜가 빠릅니다.\n\n확인 후 다시 입력하시기 바랍니다.");
fgbform.fyear.focus();
return false;
}
fgbform.btnsubmit.disabled = true;
{
if (fgbform.wr_link2.value-fgbform.wr_link1.value<0) {
alert("시작날짜보다 종료날짜가 빠릅니다.\n\n확인 후 다시 입력하시기 바랍니다.");
fgbform.fyear.focus();
return false;
}
fgbform.btnsubmit.disabled = true;
return true;
}
}
function html_auto_br(obj)
{
if (obj.checked) {
result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
if (result) {
obj.value = 2;
} else {
obj.value = 1;
}
} else {
obj.value = 1;
}
}
function resetday(a_val)
{
if (a_val=="from") {
fgbform.wr_link1.value = fgbform.fyear.value+fgbform.fmon.value+fgbform.fday.value;
}
if (a_val=="to") {
fgbform.wr_link2.value = fgbform.tyear.value+fgbform.tmon.value+fgbform.tday.value;
}
{
if (obj.checked) {
result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
if (result) {
obj.value = 2;
} else {
obj.value = 1;
}
} else {
obj.value = 1;
}
}
function resetday(a_val)
{
if (a_val=="from") {
fgbform.wr_link1.value = fgbform.fyear.value+fgbform.fmon.value+fgbform.fday.value;
}
if (a_val=="to") {
fgbform.wr_link2.value = fgbform.tyear.value+fgbform.tmon.value+fgbform.tday.value;
}
if (a_val=="all") {
fgbform.wr_link1.value = fgbform.fyear.value+fgbform.fmon.value+fgbform.fday.value;
fgbform.wr_link2.value = fgbform.tyear.value+fgbform.tmon.value+fgbform.tday.value;
}
}
fgbform.wr_link1.value = fgbform.fyear.value+fgbform.fmon.value+fgbform.fday.value;
fgbform.wr_link2.value = fgbform.tyear.value+fgbform.tmon.value+fgbform.tday.value;
}
}
</script>
===========================================================================
댓글 전체
말씀하신 스킨을 사용해 보지는 않았으나, basic 스킨과 비교해서 해당 소스만 삽입해 주면 될 듯 합니다.
================================ write.skin.php ===========================
1. 상단에 아래소스 삽입.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if ($is_dhtml_editor) {
include_once("$g4[path]/lib/cheditor.lib.php");
echo "<script src='$g4[editor_path]/cheditor.js'></script>";
echo cheditor1('wr_content', $content);
}
?>
2. 내용이 들어가는 소스는 아래 코드로 대체.
<tr>
<td style='padding-left:20px;'>· 내용</td>
<td style='padding:5 0 5 0;'>
<? if ($is_dhtml_editor) { ?>
<?=cheditor2('fwrite', 'wr_content', '100%', '350');?>
<? } else { ?>
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td width=50% align=left valign=bottom>
<span style="cursor: pointer;" onclick="textarea_decrease('wr_content', 10);"><img src="<?=$board_skin_path?>/img/up.gif"></span>
<span style="cursor: pointer;" onclick="textarea_original('wr_content', 10);"><img src="<?=$board_skin_path?>/img/start.gif"></span>
<span style="cursor: pointer;" onclick="textarea_increase('wr_content', 10);"><img src="<?=$board_skin_path?>/img/down.gif"></span></td>
<td width=50% align=right><? if ($write_min || $write_max) { ?><span id=char_count></span>글자<?}?></td>
</tr>
</table>
<textarea id="wr_content" name="wr_content" class=tx style='width:100%; word-break:break-all;' rows=10 itemname="내용" required
<? if ($write_min || $write_max) { ?>onkeyup="check_byte('wr_content', 'char_count');"<?}?>><?=$content?></textarea>
<? if ($write_min || $write_max) { ?><script language="javascript"> check_byte('wr_content', 'char_count'); </script><?}?>
<? } ?>
</td>
</tr>
3. basic 스킨의 write.skin.php 파일과 비교해서 <script language="javascript"> 소스 누락분 추가.
=================================================================================================
================================ write.skin.php ===========================
1. 상단에 아래소스 삽입.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if ($is_dhtml_editor) {
include_once("$g4[path]/lib/cheditor.lib.php");
echo "<script src='$g4[editor_path]/cheditor.js'></script>";
echo cheditor1('wr_content', $content);
}
?>
2. 내용이 들어가는 소스는 아래 코드로 대체.
<tr>
<td style='padding-left:20px;'>· 내용</td>
<td style='padding:5 0 5 0;'>
<? if ($is_dhtml_editor) { ?>
<?=cheditor2('fwrite', 'wr_content', '100%', '350');?>
<? } else { ?>
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td width=50% align=left valign=bottom>
<span style="cursor: pointer;" onclick="textarea_decrease('wr_content', 10);"><img src="<?=$board_skin_path?>/img/up.gif"></span>
<span style="cursor: pointer;" onclick="textarea_original('wr_content', 10);"><img src="<?=$board_skin_path?>/img/start.gif"></span>
<span style="cursor: pointer;" onclick="textarea_increase('wr_content', 10);"><img src="<?=$board_skin_path?>/img/down.gif"></span></td>
<td width=50% align=right><? if ($write_min || $write_max) { ?><span id=char_count></span>글자<?}?></td>
</tr>
</table>
<textarea id="wr_content" name="wr_content" class=tx style='width:100%; word-break:break-all;' rows=10 itemname="내용" required
<? if ($write_min || $write_max) { ?>onkeyup="check_byte('wr_content', 'char_count');"<?}?>><?=$content?></textarea>
<? if ($write_min || $write_max) { ?><script language="javascript"> check_byte('wr_content', 'char_count'); </script><?}?>
<? } ?>
</td>
</tr>
3. basic 스킨의 write.skin.php 파일과 비교해서 <script language="javascript"> 소스 누락분 추가.
=================================================================================================