컨텐츠 정보
본문
그누보드에 임시 저장 기능이 있어요.
그런데, 기본 기능이 제목과 컨텐츠(글작성)에만 적용이 됩니다. 해당 기능을 다른 필드에 적용하는 방법에 대해 알아볼께요.
임시 저장 기능 아래와 같은 기능인거죠..
https://mstoria.com/faq/글-작성하다-저장이-안되었다구요-그-때는/
임시 저장기능은 로그인한 상태에서 적용이 되는 기능입니다. ^^
여분필드 wr_1에 임시 저장 기능을 적용하기 위해 아래와 같이 적용을 합니다.
여분필드에 smarteditor2를 적용해서 임시 저장 기능을 사용해 보겠습니다.
총 6개의 파일 수정을 해야합니다.
1)
임시저장 테이블인 g5_autosave 에 as_wr_1 필드를 추가합니다. 최소한 text로 지정을 해야겠죠.
2)
에디터는 smarteditor2를 이용했습니다. 글쓰기 폼에는 아래와 같이 적용을 합니다.
write_skin.php 파일에서 여분필드 글쓰는 곳 적당한 곳에 아래와 같이 추가하세요.
<?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 "<subject><![CDATA[{$subject}]]></subject>n";
echo "<datetime>{$datetime}</datetime>n";
echo "</item>n";
}
echo "</list>";
5)
bbs/ajax.autosaveload.php 내용을 아래 내용으로 변경하세요.
<?php
include_once('./_common.php');
if (!$is_member) die('');
$as_id = isset($_REQUEST['as_id']) ? (int) $_REQUEST['as_id'] : 0;
$sql = " select as_subject, as_content, as_of_content from {$g5['autosave_table']} where mb_id = '{$member['mb_id']}' and as_id = {$as_id} ";
$row = sql_fetch($sql);
$subject = $row['as_subject'];
$wr_1 = $row['as_wr_1'];
$content = $row['as_content'];
echo "<?xml version="1.0" encoding="utf-8"?>n";
echo "<item>n";
echo "<subject><![CDATA[{$subject}]]></subject>n";
echo "<wr_1><![CDATA[{$wr_1}]]></wr_1>n";
echo "<content><![CDATA[{$content}]]></content>n";
echo "</item>n";
6)
이번엔 js/autosave.js 파일을 수정할꺼예요. 아래의 내용을 변경하시면 됩니다.
-
등록일 2024.04.15
-
등록일 2024.04.15
-
등록일 2024.04.05
-
등록일 2024.03.29
관련자료
-
이전
-
다음