스케줄 게시판에서 DHTML 에디터가 되게 하려면 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

스케줄 게시판에서 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)  ;
   }
?>

<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> -->
<?
$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);
//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;
 //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> 년
 <SELECT onchange="javascript:resetday('from');" name=fmon>
    <?=$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>
  </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>
    <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>
<? 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><? } ?>
<? 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_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>
<? 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>
<? } ?>
</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>
</td></tr></form></table>
<script language='Javascript'>
    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?>';
        }
    }
    function formcheck()
    {
     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 (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;  
  }
    }
</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"> 소스 누락분 추가.
=================================================================================================
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT