Merge branch 'master' of github.com:gnuboard/g4s
This commit is contained in:
@ -185,7 +185,7 @@ $pg_anchor = '<ul class="anchor">
|
|||||||
<th scope="row"><label for="gr_id">그룹<strong class="sound_only">필수</strong></label></th>
|
<th scope="row"><label for="gr_id">그룹<strong class="sound_only">필수</strong></label></th>
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
<?php echo get_group_select('gr_id', $board['gr_id'], 'required'); ?>
|
<?php echo get_group_select('gr_id', $board['gr_id'], 'required'); ?>
|
||||||
<!-- <?php if ($w=='u') { ?><script>document.write("<a href='javascript:;' onclick=\"location.href='./board_list.php?sfl=a.gr_id&stx='+document.getElementById('gr_id').value;\">동일 그룹 목록</a>");</script><?php } ?> -->
|
<?php if ($w=='u') { ?><a href="javascript:document.location.href='./board_list.php?sfl=a.gr_id&stx='+document.fboardform.gr_id.value;" class="btn_frmline">동일그룹 게시판목록</a><?php } ?></td>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@ -63,13 +63,34 @@ if(!isset($config['cf_facebook_appid'])) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// uniqid 테이블이 없을 경우 생성
|
// uniqid 테이블이 없을 경우 생성
|
||||||
if(!sql_query(" select uq_id from {$g4['uniqid_table']} limit 1 ", false)) {
|
if(!sql_query(" DESC {$g4['uniqid_table']} ", false)) {
|
||||||
sql_query(" CREATE TABLE IF NOT EXISTS `{$g4['uniqid_table']}` (
|
sql_query(" CREATE TABLE IF NOT EXISTS `{$g4['uniqid_table']}` (
|
||||||
`uq_id` bigint(20) unsigned NOT NULL,
|
`uq_id` bigint(20) unsigned NOT NULL,
|
||||||
|
`uq_ip` varchar(255) NOT NULL,
|
||||||
PRIMARY KEY (`uq_id`)
|
PRIMARY KEY (`uq_id`)
|
||||||
) ", false);
|
) ", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!sql_query(" SELECT uq_ip from {$g4['uniqid_table']} limit 1 ", false)) {
|
||||||
|
sql_query(" ALTER TABLE {$g4['uniqid_table']} ADD `uq_ip` VARCHAR(255) NOT NULL ");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 임시저장 테이블이 없을 경우 생성
|
||||||
|
if(!sql_query(" DESC {$g4['autosave_table']} ", false)) {
|
||||||
|
sql_query(" CREATE TABLE IF NOT EXISTS `{$g4['autosave_table']}` (
|
||||||
|
`as_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`mb_id` varchar(20) NOT NULL,
|
||||||
|
`as_uid` bigint(20) unsigned NOT NULL,
|
||||||
|
`as_subject` varchar(255) NOT NULL,
|
||||||
|
`as_content` text NOT NULL,
|
||||||
|
`as_datetime` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`as_id`),
|
||||||
|
UNIQUE KEY `as_uid` (`as_uid`),
|
||||||
|
KEY `mb_id` (`mb_id`)
|
||||||
|
) ", false);
|
||||||
|
}
|
||||||
|
|
||||||
$g4['title'] = '환경설정';
|
$g4['title'] = '환경설정';
|
||||||
include_once ('./admin.head.php');
|
include_once ('./admin.head.php');
|
||||||
|
|
||||||
|
|||||||
20
bbs/ajax.autosave.php
Normal file
20
bbs/ajax.autosave.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
include_once('./_common.php');
|
||||||
|
|
||||||
|
if (!$is_member) die('0');
|
||||||
|
|
||||||
|
$uid = escape_trim($_REQUEST['uid']);
|
||||||
|
$subject = escape_trim(stripslashes($_REQUEST['subject']));
|
||||||
|
$content = escape_trim(stripslashes($_REQUEST['content']));
|
||||||
|
|
||||||
|
if ($subject && $content) {
|
||||||
|
$sql = " select count(*) as cnt from {$g4['autosave_table']} where mb_id = '{$member['mb_id']}' and as_subject = '$subject' and as_content = '$content' ";
|
||||||
|
$row = sql_fetch($sql);
|
||||||
|
if (!$row['cnt']) {
|
||||||
|
$sql = " insert into {$g4['autosave_table']} set mb_id = '{$member['mb_id']}', as_uid = '{$uid}', as_subject = '$subject', as_content = '$content', as_datetime = '".G4_TIME_YMDHIS."' on duplicate key update as_subject = '$subject', as_content = '$content', as_datetime = '".G4_TIME_YMDHIS."' ";
|
||||||
|
$result = sql_query($sql, false);
|
||||||
|
|
||||||
|
echo autosave_count($member['mb_id']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
15
bbs/ajax.autosavedel.php
Normal file
15
bbs/ajax.autosavedel.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
include_once("./_common.php");
|
||||||
|
|
||||||
|
if (!$is_member) die("0");
|
||||||
|
|
||||||
|
$as_id = (int)$_REQUEST['as_id'];
|
||||||
|
|
||||||
|
$sql = " delete from {$g4['autosave_table']} where mb_id = '{$member['mb_id']}' and as_id = {$as_id} ";
|
||||||
|
$result = sql_query($sql);
|
||||||
|
if (!$result) {
|
||||||
|
echo "-1";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo autosave_count($member['mb_id']);
|
||||||
|
?>
|
||||||
21
bbs/ajax.autosavelist.php
Normal file
21
bbs/ajax.autosavelist.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
include_once('./_common.php');
|
||||||
|
|
||||||
|
if (!$is_member) die('');
|
||||||
|
|
||||||
|
$sql = " select as_id, as_uid, as_subject, as_datetime from {$g4['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++) {
|
||||||
|
$subject = htmlspecialchars(utf8_strcut($row['as_subject'], 25), ENT_QUOTES);
|
||||||
|
$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>";
|
||||||
|
?>
|
||||||
18
bbs/ajax.autosaveload.php
Normal file
18
bbs/ajax.autosaveload.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
include_once('./_common.php');
|
||||||
|
|
||||||
|
if (!$is_member) die('');
|
||||||
|
|
||||||
|
$as_id = (int)$_REQUEST['as_id'];
|
||||||
|
|
||||||
|
$sql = " select as_subject, as_content from {$g4['autosave_table']} where mb_id = '{$member['mb_id']}' and as_id = {$as_id} ";
|
||||||
|
$row = sql_fetch($sql);
|
||||||
|
$subject = $row['as_subject'];
|
||||||
|
$content = $row['as_content'];
|
||||||
|
|
||||||
|
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
|
||||||
|
echo "<item>\n";
|
||||||
|
echo "<subject><![CDATA[{$subject}]]></subject>\n";
|
||||||
|
echo "<content><![CDATA[{$content}]]></content>\n";
|
||||||
|
echo "</item>\n";
|
||||||
|
?>
|
||||||
@ -380,6 +380,9 @@ if (!G4_IS_MOBILE && $board['bo_use_dhtml_editor'] && $member['mb_level'] >= $bo
|
|||||||
}
|
}
|
||||||
$editor_html = editor_html('wr_content', $content, $is_dhtml_editor);
|
$editor_html = editor_html('wr_content', $content, $is_dhtml_editor);
|
||||||
|
|
||||||
|
// 임시 저장된 글 갯수
|
||||||
|
$autosave_count = autosave_count($member['mb_id']);
|
||||||
|
|
||||||
include_once(G4_PATH.'/head.sub.php');
|
include_once(G4_PATH.'/head.sub.php');
|
||||||
@include_once ($board_skin_path.'/write.head.skin.php');
|
@include_once ($board_skin_path.'/write.head.skin.php');
|
||||||
include_once('./board_head.php');
|
include_once('./board_head.php');
|
||||||
|
|||||||
@ -555,6 +555,9 @@ for ($i=(int)$row['max_bf_no']; $i>=0; $i--)
|
|||||||
// 파일의 갯수를 게시물에 업데이트 한다.
|
// 파일의 갯수를 게시물에 업데이트 한다.
|
||||||
$row = sql_fetch(" select count(*) as cnt from {$g4['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' ");
|
$row = sql_fetch(" select count(*) as cnt from {$g4['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' ");
|
||||||
sql_query(" update {$write_table} set wr_file = '{$row['cnt']}' where wr_id = '{$wr_id}' ");
|
sql_query(" update {$write_table} set wr_file = '{$row['cnt']}' where wr_id = '{$wr_id}' ");
|
||||||
|
|
||||||
|
// 자동저장된 레코드를 삭제한다.
|
||||||
|
sql_query(" delete from g4s_autosave where as_uid = '{$uid}' ");
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
// 비밀글이라면 세션에 비밀글의 아이디를 저장한다. 자신의 글은 다시 패스워드를 묻지 않기 위함
|
// 비밀글이라면 세션에 비밀글의 아이디를 저장한다. 자신의 글은 다시 패스워드를 묻지 않기 위함
|
||||||
|
|||||||
@ -75,6 +75,7 @@ if ($is_admin) {
|
|||||||
<?php
|
<?php
|
||||||
if(G4_IS_MOBILE) {
|
if(G4_IS_MOBILE) {
|
||||||
echo '<script> set_cookie("device_width", screen.width, 6, g4_cookie_domain); </script>'.PHP_EOL;
|
echo '<script> set_cookie("device_width", screen.width, 6, g4_cookie_domain); </script>'.PHP_EOL;
|
||||||
|
echo '<script src="<?php echo G4_URL; ?>/js/modernizr.custom.70111.js"></script>'.PHP_EOL; // overflow scroll 감지
|
||||||
}
|
}
|
||||||
//if(!defined('G4_IS_ADMIN'))
|
//if(!defined('G4_IS_ADMIN'))
|
||||||
echo $config['cf_add_script'];
|
echo $config['cf_add_script'];
|
||||||
|
|||||||
@ -647,3 +647,22 @@ CREATE TABLE IF NOT EXISTS `g4s_syndi_log` (
|
|||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `g4s_autosave`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `g4s_autosave`;
|
||||||
|
CREATE TABLE IF NOT EXISTS `g4s_autosave` (
|
||||||
|
`as_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`mb_id` varchar(20) NOT NULL,
|
||||||
|
`as_uid` bigint(20) unsigned NOT NULL,
|
||||||
|
`as_subject` varchar(255) NOT NULL,
|
||||||
|
`as_content` text NOT NULL,
|
||||||
|
`as_datetime` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`as_id`),
|
||||||
|
UNIQUE KEY `as_uid` (`as_uid`),
|
||||||
|
KEY `mb_id` (`mb_id`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- --------------------------------------------------------
|
||||||
|
|||||||
@ -206,6 +206,7 @@ fwrite($f, "\$g4['visit_table'] = G4_TABLE_PREFIX.'visit'; // 방문자 테이
|
|||||||
fwrite($f, "\$g4['visit_sum_table'] = G4_TABLE_PREFIX.'visit_sum'; // 방문자 합계 테이블\n");
|
fwrite($f, "\$g4['visit_sum_table'] = G4_TABLE_PREFIX.'visit_sum'; // 방문자 합계 테이블\n");
|
||||||
fwrite($f, "\$g4['uniqid_table'] = G4_TABLE_PREFIX.'uniqid'; // 유니크한 값을 만드는 테이블\n");
|
fwrite($f, "\$g4['uniqid_table'] = G4_TABLE_PREFIX.'uniqid'; // 유니크한 값을 만드는 테이블\n");
|
||||||
fwrite($f, "\$g4['syndi_log_table'] = G4_TABLE_PREFIX.'syndi_log'; // 네이버 신디케이션 컨텐츠 삭제 로그 테이블\n");
|
fwrite($f, "\$g4['syndi_log_table'] = G4_TABLE_PREFIX.'syndi_log'; // 네이버 신디케이션 컨텐츠 삭제 로그 테이블\n");
|
||||||
|
fwrite($f, "\$g4['autosave_table'] = G4_TABLE_PREFIX.'autosave'; // 게시글 작성시 일정시간마다 글을 임시 저장하는 테이블\n");
|
||||||
fwrite($f, " ?>");
|
fwrite($f, " ?>");
|
||||||
|
|
||||||
fclose($f);
|
fclose($f);
|
||||||
|
|||||||
98
js/autosave.js
Normal file
98
js/autosave.js
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
// 임시 저장하는 시간을 초단위로 설정한다.
|
||||||
|
var AUTOSAVE_INTERVAL = 60; // 초
|
||||||
|
|
||||||
|
// 글의 제목과 내용을 바뀐 부분이 있는지 비교하기 위하여 저장해 놓는 변수
|
||||||
|
var save_wr_subject = null;
|
||||||
|
var save_wr_content = null;
|
||||||
|
|
||||||
|
function autosave() {
|
||||||
|
$("form#fwrite").each(function() {
|
||||||
|
if (typeof(CKEDITOR.instances.wr_content)!="undefined")
|
||||||
|
this.wr_content.value = CKEDITOR.instances.wr_content.getData();
|
||||||
|
// 변수에 저장해 놓은 값과 다를 경우에만 임시 저장함
|
||||||
|
if (save_wr_subject != this.wr_subject.value || save_wr_content != this.wr_content.value) {
|
||||||
|
$.ajax({
|
||||||
|
url: g4_bbs_url+"/ajax.autosave.php",
|
||||||
|
data: {
|
||||||
|
"uid" : this.uid.value,
|
||||||
|
"subject": this.wr_subject.value,
|
||||||
|
"content": this.wr_content.value
|
||||||
|
},
|
||||||
|
type: "POST",
|
||||||
|
success: function(data){
|
||||||
|
if (data) {
|
||||||
|
$("#autosave_count").html(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
save_wr_subject = this.wr_subject.value;
|
||||||
|
save_wr_content = this.wr_content.value;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(function(){
|
||||||
|
|
||||||
|
if (g4_is_member) {
|
||||||
|
setInterval(autosave, AUTOSAVE_INTERVAL * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 임시저장된 글목록을 가져옴
|
||||||
|
$("#btn_autosave").click(function(){
|
||||||
|
if ($("#autosave_pop").is(":hidden")) {
|
||||||
|
$.get(g4_bbs_url+"/ajax.autosavelist.php", function(data){
|
||||||
|
//alert(data);
|
||||||
|
//console.log( "Data: " + data);
|
||||||
|
$("#autosave_pop ul").empty();
|
||||||
|
if ($(data).find("list").find("item").length > 0) {
|
||||||
|
$(data).find("list").find("item").each(function(i) {
|
||||||
|
var id = $(this).find("id").text();
|
||||||
|
var uid = $(this).find("uid").text();
|
||||||
|
var subject = $(this).find("subject").text();
|
||||||
|
var datetime = $(this).find("datetime").text();
|
||||||
|
$("#autosave_pop ul").append('<li><a href="#none" class="autosave_load">'+subject+'</a><span>'+datetime+' <button type="button" class="autosave_del">삭제</button></span></li>');
|
||||||
|
$.data(document.body, "autosave_id"+i, id);
|
||||||
|
$.data(document.body, "autosave_uid"+i, uid);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, "xml");
|
||||||
|
$("#autosave_pop").show();
|
||||||
|
} else {
|
||||||
|
$("#autosave_pop").hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 임시저장된 글 제목과 내용을 가져와서 제목과 내용 입력박스에 노출해 줌
|
||||||
|
$(".autosave_load").live("click", function(){
|
||||||
|
var i = $(this).parents("li").index();
|
||||||
|
var as_id = $.data(document.body, "autosave_id"+i);
|
||||||
|
var as_uid = $.data(document.body, "autosave_uid"+i);
|
||||||
|
$("#fwrite input[name='uid']").val(as_uid);
|
||||||
|
$.get(g4_bbs_url+"/ajax.autosaveload.php", {"as_id":as_id}, function(data){
|
||||||
|
var subject = $(data).find("item").find("subject").text();
|
||||||
|
var content = $(data).find("item").find("content").text();
|
||||||
|
$("#wr_subject").val(subject);
|
||||||
|
if (typeof(CKEDITOR.instances.wr_content)!="undefined") {
|
||||||
|
CKEDITOR.instances.wr_content.setData(content);
|
||||||
|
} else {
|
||||||
|
$("#fwrite #wr_content").val(content);
|
||||||
|
}
|
||||||
|
}, "xml");
|
||||||
|
$("#autosave_pop").hide();
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".autosave_del").live("click", function(){
|
||||||
|
var i = $(this).parents("li").index();
|
||||||
|
var as_id = $.data(document.body, "autosave_id"+i);
|
||||||
|
$.get(g4_bbs_url+"/ajax.autosavedel.php", {"as_id":as_id}, function(data){
|
||||||
|
if (data == -1) {
|
||||||
|
alert("임시 저장된글을 삭제중에 오류가 발생하였습니다.");
|
||||||
|
} else {
|
||||||
|
$("#autosave_count").html(data);
|
||||||
|
$("#autosave_pop ul > li").eq(i).remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".autosave_close").click(function(){ $("#autosave_pop").hide(); });
|
||||||
|
});
|
||||||
4
js/modernizr.custom.70111.js
vendored
Normal file
4
js/modernizr.custom.70111.js
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
|
||||||
|
* Build: http://modernizr.com/download/#-cssclasses-testallprops-css_overflow_scrolling
|
||||||
|
*/
|
||||||
|
;window.Modernizr=function(a,b,c){function x(a){j.cssText=a}function y(a,b){return x(prefixes.join(a+";")+(b||""))}function z(a,b){return typeof a===b}function A(a,b){return!!~(""+a).indexOf(b)}function B(a,b){for(var d in a){var e=a[d];if(!A(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function C(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:z(f,"function")?f.bind(d||b):f}return!1}function D(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+n.join(d+" ")+d).split(" ");return z(b,"string")||z(b,"undefined")?B(e,b):(e=(a+" "+o.join(d+" ")+d).split(" "),C(e,b,c))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m="Webkit Moz O ms",n=m.split(" "),o=m.toLowerCase().split(" "),p={},q={},r={},s=[],t=s.slice,u,v={}.hasOwnProperty,w;!z(v,"undefined")&&!z(v.call,"undefined")?w=function(a,b){return v.call(a,b)}:w=function(a,b){return b in a&&z(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=t.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(t.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(t.call(arguments)))};return e});for(var E in p)w(p,E)&&(u=E.toLowerCase(),e[u]=p[E](),s.push((e[u]?"":"no-")+u));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)w(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},x(""),i=k=null,e._version=d,e._domPrefixes=o,e._cssomPrefixes=n,e.testProp=function(a){return B([a])},e.testAllProps=D,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+s.join(" "):""),e}(this,this.document),Modernizr.addTest("overflowscrolling",function(){return Modernizr.testAllProps("overflowScrolling")});
|
||||||
@ -1722,7 +1722,7 @@ function get_uniqid()
|
|||||||
// 년월일시분초에 100분의 1초 두자리를 추가함 (1/100 초 앞에 자리가 모자르면 0으로 채움)
|
// 년월일시분초에 100분의 1초 두자리를 추가함 (1/100 초 앞에 자리가 모자르면 0으로 채움)
|
||||||
$key = date('ymdHis', time()) . str_pad((int)(microtime()*100), 2, "0", STR_PAD_LEFT);
|
$key = date('ymdHis', time()) . str_pad((int)(microtime()*100), 2, "0", STR_PAD_LEFT);
|
||||||
|
|
||||||
$result = sql_query(" insert into {$g4['uniqid_table']} values ('$key') ", false);
|
$result = sql_query(" insert into {$g4['uniqid_table']} set uq_id = '$key', uq_ip = '{$_SERVER['REMOTE_ADDR']}' ", false);
|
||||||
if ($result) break; // 쿼리가 정상이면 빠진다.
|
if ($result) break; // 쿼리가 정상이면 빠진다.
|
||||||
|
|
||||||
// insert 하지 못했으면 일정시간 쉰다음 다시 유일키를 만든다.
|
// insert 하지 못했으면 일정시간 쉰다음 다시 유일키를 만든다.
|
||||||
@ -2078,4 +2078,18 @@ function googl_short_url($longUrl)
|
|||||||
|
|
||||||
return $json->id;
|
return $json->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 임시 저장된 글 갯수
|
||||||
|
function autosave_count($mb_id)
|
||||||
|
{
|
||||||
|
global $g4;
|
||||||
|
|
||||||
|
if ($mb_id) {
|
||||||
|
$row = sql_fetch(" select count(*) as cnt from {$g4['autosave_table']} where mb_id = '$mb_id' ");
|
||||||
|
return (int)$row['cnt'];
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
@ -57,7 +57,7 @@ function get_editor_js($id, $ckeditor=true)
|
|||||||
function chk_editor_js($id, $ckeditor=true, $textarea_name="내용을")
|
function chk_editor_js($id, $ckeditor=true, $textarea_name="내용을")
|
||||||
{
|
{
|
||||||
if ( $ckeditor ) {
|
if ( $ckeditor ) {
|
||||||
return "if (!{$id}_editor_data) { alert(\"$textarea_name 입력해 주십시오.\"); CKEDITOR.instances.{$id}.focus(); return false; }\n";
|
return "if (!{$id}_editor_data) { alert(\"$textarea_name 입력해 주십시오.\"); CKEDITOR.instances.{$id}.focus(); return false; }\nif (typeof(f.wr_content)!=\"undefined\") f.wr_content.value = {$id}_editor_data;\n";
|
||||||
} else {
|
} else {
|
||||||
return "if (!{$id}_editor.value) { alert(\"$textarea_name 입력해 주십시오.\"); {$id}_editor.focus(); return false; }\n";
|
return "if (!{$id}_editor.value) { alert(\"$textarea_name 입력해 주십시오.\"); {$id}_editor.focus(); return false; }\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,17 +0,0 @@
|
|||||||
<?php
|
|
||||||
include_once("./_common.php");
|
|
||||||
|
|
||||||
// prepare an array of wavfiles
|
|
||||||
$wavs_dir = $g4['path'].'/plugin/captcha/wavs/';
|
|
||||||
$wav = $wavs_dir.'0.wav';
|
|
||||||
|
|
||||||
$fields = join('/',array( 'H8ChunkID', 'VChunkSize', 'H8Format',
|
|
||||||
'H8Subchunk1ID', 'VSubchunk1Size',
|
|
||||||
'vAudioFormat', 'vNumChannels', 'VSampleRate',
|
|
||||||
'VByteRate', 'vBlockAlign', 'vBitsPerSample' ));
|
|
||||||
|
|
||||||
$fp = fopen($wav,'rb');
|
|
||||||
$header = fread($fp,36);
|
|
||||||
$info = unpack($fields,$header);
|
|
||||||
print_r2($info);
|
|
||||||
?>
|
|
||||||
BIN
skin/board/basic/img/btn_close.gif
Normal file
BIN
skin/board/basic/img/btn_close.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 211 B |
@ -33,6 +33,21 @@
|
|||||||
#bo_sch {margin-bottom:10px;padding-top:5px;text-align:center}
|
#bo_sch {margin-bottom:10px;padding-top:5px;text-align:center}
|
||||||
#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
|
#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
|
||||||
|
|
||||||
|
/* 게시판 쓰기 */
|
||||||
|
#autosave_wrapper {position:relative}
|
||||||
|
#autosave_pop {display:none;z-index:10;position:absolute;top:24px;right:117px;padding:8px;width:350px;height:auto !important;height:180px;max-height:180px;border:1px solid #565656;background:#fff;overflow-y:scroll}
|
||||||
|
html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !important} /* overflow 미지원 기기 대응 */
|
||||||
|
#autosave_pop strong {position:absolute;font-size:0;line-height:0;overflow:hidden}
|
||||||
|
#autosave_pop div {text-align:right}
|
||||||
|
#autosave_pop button {margin:0;padding:0;border:0;background:transparent}
|
||||||
|
#autosave_pop ul {margin:10px 0;padding:0;border-top:1px solid #e9e9e9;list-style:none}
|
||||||
|
#autosave_pop li {padding:8px 5px;border-bottom:1px solid #e9e9e9;zoom:1}
|
||||||
|
#autosave_pop li:after {display:block;visibility:hidden;clear:both;content:""}
|
||||||
|
#autosave_pop a {display:block;float:left}
|
||||||
|
#autosave_pop span {display:block;float:right}
|
||||||
|
.autosave_close {cursor:pointer;}
|
||||||
|
.autosave_content {display:none;}
|
||||||
|
|
||||||
/* 게시판 읽기 */
|
/* 게시판 읽기 */
|
||||||
#bo_v {margin-bottom:20px;padding-bottom:20px}
|
#bo_v {margin-bottom:20px;padding-bottom:20px}
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
|||||||
|
|
||||||
<!-- 게시물 작성/수정 시작 { -->
|
<!-- 게시물 작성/수정 시작 { -->
|
||||||
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
|
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
|
||||||
|
<input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
|
||||||
<input type="hidden" name="w" value="<?php echo $w ?>">
|
<input type="hidden" name="w" value="<?php echo $w ?>">
|
||||||
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
|
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
|
||||||
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
|
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
|
||||||
@ -102,7 +103,21 @@ echo $option_hidden;
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><label for="wr_subject">제목<strong class="sound_only">필수</strong></label></th>
|
<th scope="row"><label for="wr_subject">제목<strong class="sound_only">필수</strong></label></th>
|
||||||
<td><input type="text" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input required" size="50" maxlength="255"></td>
|
<td>
|
||||||
|
<div id="autosave_wrapper">
|
||||||
|
<input type="text" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input required" size="50" maxlength="255">
|
||||||
|
<?php if ($is_member) { // 임시 저장된 글 기능 ?>
|
||||||
|
<script src="<?php echo G4_JS_URL; ?>/autosave.js"></script>
|
||||||
|
<button type="button" id="btn_autosave" class="btn_frmline">임시 저장된 글 (<span id="autosave_count"><?php echo $autosave_count; ?></span>)</button>
|
||||||
|
<div id="autosave_pop">
|
||||||
|
<strong>임시 저장된 글 목록</strong>
|
||||||
|
<div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
|
||||||
|
<ul></ul>
|
||||||
|
<div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
|
||||||
|
</div>
|
||||||
|
<?php } ?>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@ -102,7 +102,19 @@ echo $option_hidden;
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><label for="wr_subject">제목<strong class="sound_only">필수</strong></label></th>
|
<th scope="row"><label for="wr_subject">제목<strong class="sound_only">필수</strong></label></th>
|
||||||
<td><input type="text" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input required" size="50" maxlength="255"></td>
|
<td>
|
||||||
|
<input type="text" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input required" size="50" maxlength="255">
|
||||||
|
<?php if ($is_member) { // 임시 저장된 글 기능 ?>
|
||||||
|
<script src="<?php echo G4_JS_URL; ?>/autosave.js"></script>
|
||||||
|
<button type="button" id="btn_autosave" class="btn_frmline">임시 저장된 글 (<span id="autosave_count"><?php echo $autosave_count; ?></span>)</button>
|
||||||
|
<div id="autosave_pop">
|
||||||
|
<strong>임시 저장된 글 목록</strong>
|
||||||
|
<div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
|
||||||
|
<ul></ul>
|
||||||
|
<div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
|
||||||
|
</div>
|
||||||
|
<?php } ?>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@ -16,7 +16,8 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
|||||||
<tbody>
|
<tbody>
|
||||||
<?php
|
<?php
|
||||||
for ($i=0; $i<count($list); $i++) {
|
for ($i=0; $i<count($list); $i++) {
|
||||||
$location = conv_content($list[$i]['lo_location'], 0);
|
//$location = conv_content($list[$i]['lo_location'], 0);
|
||||||
|
$location = $list[$i]['lo_location'];
|
||||||
// 최고관리자에게만 허용
|
// 최고관리자에게만 허용
|
||||||
// 이 조건문은 가능한 변경하지 마십시오.
|
// 이 조건문은 가능한 변경하지 마십시오.
|
||||||
if ($list[$i]['lo_url'] && $is_admin == 'super') $display_location = "<a href=\"".$list[$i]['lo_url']."\">".$location."</a>";
|
if ($list[$i]['lo_url'] && $is_admin == 'super') $display_location = "<a href=\"".$list[$i]['lo_url']."\">".$location."</a>";
|
||||||
|
|||||||
Reference in New Issue
Block a user