스토리아

2024.03.24 21:09

그누 여분필드에 임시 저장 기능 넣기

그누보드에 임시 저장 기능이 있어요.

그런데, 기본 기능이 제목과 컨텐츠(글작성)에만 적용이 됩니다. 해당 기능을 다른 필드에 적용하는 방법에 대해 알아볼께요.


임시 저장 기능 아래와 같은 기능인거죠..

https://mstoria.com/faq/%EA%B8%80-%EC%9E%91%EC%84%B1%ED%95%98%EB%8B%A4-%EC%A0%80%EC%9E%A5%EC%9D%B4-%EC%95%88%EB%90%98%EC%97%88%EB%8B%A4%EA%B5%AC%EC%9A%94-%EA%B7%B8-%EB%95%8C%EB%8A%94/ 


임시 저장기능은 로그인한 상태에서 적용이 되는 기능입니다. ^^


여분필드 wr_1에 임시 저장 기능을 적용하기 위해 아래와 같이 적용을 합니다. 

여분필드에 smarteditor2를 적용해서 임시 저장 기능을 사용해 보겠습니다.

총 6개의 파일 수정을 해야합니다.


953782581e068eb6511f8a176a83e02d_1711282090_7717.png
 


1) 

임시저장 테이블인 g5_autosave 에 as_wr_1 필드를 추가합니다. 최소한 text로 지정을 해야겠죠.

 

2)

에디터는 smarteditor2를 이용했습니다. 글쓰기 폼에는 아래와 같이 적용을 합니다.

write_skin.php 파일에서 여분필드 글쓰는 곳 적당한 곳에 아래와 같이 추가하세요.

C

opy

		<?php echo editor_html("wr_1", $wr_1, $is_dhtml_editor); ?>
		<?php if($is_dhtml_editor) { ?>
			<style> #wr_1 { display:none; } </style>
		<?php } else { ?>
			<script> $("#wr_1").hide().addClass("form-control").show(); </script>
		<?php } ?>


하단에 스크립트도 추가합니다.

function fwrite_submit(f) {


    <?php echo get_editor_js("wr_1"); ?> //해당 부분과
    <?php echo chk_editor_js("wr_1"); ?> //해당 부분이 추가된 내용이예요.
	<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함   ?>


3)

bbs/ajax.autosave.php 파일 내용을 아래와 내용으로 변경하세요.

<?php
include_once('./_common.php');


if (!$is_member) die('0');


$uid     = isset($_REQUEST['uid']) ? preg_replace('/[^0-9]/', '', $_REQUEST['uid']) : 0;
$subject = isset($_REQUEST['subject']) ? trim($_REQUEST['subject']) : '';
$wr_1 = isset($_REQUEST['wr_1']) ? trim($_REQUEST['wr_1']) : '';
$content = isset($_REQUEST['content']) ? trim($_REQUEST['content']) : '';


if ($subject || $wr_1 || $content) {
	$sql = " select count(*) as cnt from {$g5['autosave_table']} where mb_id = '{$member['mb_id']}' and as_subject = '$subject' and as_content = '$content' and as_wr_1 = '$wr_1' ";
	$row = sql_fetch($sql);
	if (!$row['cnt']) {
		$sql = " insert into {$g5['autosave_table']} set mb_id = '{$member['mb_id']}', as_uid = '{$uid}', as_subject = '$subject', as_content = '$content', as_wr_1 = '$wr_1', as_datetime = '".G5_TIME_YMDHIS."' on duplicate key update as_subject = '$subject', as_content = '$content', as_wr_1 = '$wr_1', as_datetime = '".G5_TIME_YMDHIS."' ";
		$result = sql_query($sql, false);


		echo autosave_count($member['mb_id']);
	}
}


4)

bbs/ajax.autosavelist.php 내용을 아래 내용으로 변경하면 됩니다.

<?php
include_once('./_common.php');


if (!$is_member) die('');


$sql = " select as_id, as_uid, as_subject, as_datetime from {$g5['autosave_table']} where mb_id = '{$member['mb_id']}' order by as_id desc ";
$result = sql_query($sql);
echo "<?xml version="1.0" encoding="utf-8"?>n";
echo "<list>n";
for ($i=0; $row=sql_fetch_array($result); $i++) {
	if($row['as_subject']) {
		$subject  = htmlspecialchars(utf8_strcut($row['as_subject'], 25), ENT_QUOTES);
	} else {
		$subject  = "제목 없음";
	}
    $datetime = substr($row['as_datetime'],2,14);
    echo "<item>n";
    echo "<id>{$row['as_id']}</id>n";
    echo "<uid>{$row['as_uid']}</uid>n";
    echo "<su

🔒 이 글의 핵심 인사이트와 결론이 숨겨져 있습니다.

무료 공개 구간이 끝났습니다. 프리미엄 구독 멤버가 되시면
지금 보시는 글의 전체 내용을 제한 없이 모두 확인하실 수 있습니다.

첫 달 0원으로 나머지 내용 이어보기
  • 공유링크 복사
    미니홈 쪽지 구독하기
    구독하고 알림받기
  • 이전글캘리그라피 배우기 1일차2024.03.27
  • 다음글소리없는 세계에2024.03.16
  • 댓글목록

    등록된 댓글이 없습니다.