Initial import from local backup (Documents-Playground/pakerpale)

This commit is contained in:
jeonghwa
2026-07-03 05:27:41 +09:00
commit 5b1bfe3390
2223 changed files with 561621 additions and 0 deletions

221
assets/js/comment.js Normal file
View File

@@ -0,0 +1,221 @@
if (typeof(COMMENT_JS) === 'undefined') {
var COMMENT_JS = true;
var is_submit_comment = false;
function view_comment(id, post_id, page, opt, message) {
if (opt) {
$('html, body').animate({
scrollTop: $('#' + id).offset().top - 100
}, 0);
}
var comment_url = cb_url + '/comment_list/lists/' + post_id + '?page=' + page;
var hash = window.location.hash;
$('#' + id).load(comment_url, function() {
if (message) {
$('.alert-comment-list-message-content').html(message);
$('.alert-comment-list-message').addClass('alert-success').removeClass('alert-warning').show(0).delay(2500).hide(0);
}
if (hash) {
var st = $(hash).offset().top;
$('html, body').animate({ scrollTop: st }, 200); //200ms duration
}
if (typeof(SyntaxHighlighter) !== 'undefined') {
SyntaxHighlighter.highlight();
}
});
}
function view_comment_password(cmt_id, post_id) {
var comment_url = cb_url + '/comment_list/password/' + cmt_id + '/' + post_id;
document.location.href=comment_url;
}
function add_comment(f, post_id) {
if (is_submit_comment === true) {
return false;
}
is_submit_comment = true;
if ($('#char_count')) {
if (char_min > 0 || char_max > 0) {
var cnt = parseInt(check_byte('cmt_content', 'char_count'));
if (char_min > 0 && char_min > cnt) {
alert('내용은 ' + char_min + '글자 이상 쓰셔야 합니다.');
f.cmt_content.focus();
is_submit_comment = false;
return false;
} else if (char_max > 0 && char_max < cnt) {
alert('내용은 ' + char_max + '글자 이하로 쓰셔야 합니다.');
f.cmt_content.focus();
is_submit_comment = false;
return false;
}
}
}
$('#fcomment').validate();
if ($('#fcomment').valid()) // check if form is valid
{
// do some stuff
}
else
{
is_submit_comment = false;
return false;
// just show validation errors, dont post
}
var content = '';
$.ajax({
url: cb_url + '/postact/filter_spam_keyword',
type: 'post',
data: {
title: '',
content: f.cmt_content.value,
csrf_test_name: cb_csrf_hash
},
dataType: 'json',
async: false,
cache: false,
success: function(data) {
content = data.content;
}
});
if (content) {
alert('내용에 금지단어(\'' + content + '\')가 포함되어있습니다');
f.cmt_content.focus();
is_submit_comment = false;
return false;
}
$.ajax({
url : cb_url + '/comment_write/update',
type : 'POST',
cache : false,
data : $('#fcomment').serialize(),
dataType : 'json',
success : function(data) {
is_submit_comment = false;
if (data.error) {
$('.alert-comment-message-content').html(data.error);
$('.alert-comment-message').addClass('alert-warning').removeClass('alert-success').show(0).delay(2500).hide(0);
return false;
} else if (data.success) {
$('.alert-comment-message-content').html(data.success);
$('.alert-comment-message').addClass('alert-success').removeClass('alert-warning').show(0).delay(2500).hide(0);
view_comment('viewcomment', post_id, '', '')
if ($('#char_count')) {
if (char_min > 0 || char_max > 0) {
check_byte('cmt_content', 'char_count');
}
}
init_comment_box();
}
},
error : function(data) {
is_submit_comment = false;
alert('오류가 발생하였습니다.');
return false;
}
});
}
function delete_comment(cmt_id, post_id, page) {
if (confirm("정말 삭제 하시겠습니까?\n\n삭제하신 후에는 복구가 불가능합니다.")) {
$.ajax({
url : cb_url + '/postact/delete_comment',
type : 'POST',
cache : false,
data : {cmt_id:cmt_id, csrf_test_name: cb_csrf_hash},
dataType : 'json',
success : function(data) {
if (data.error) {
$('.alert-comment-list-message-content').html(data.error);
$('.alert-comment-list-message').addClass('alert-warning').removeClass('alert-success').show();
return false;
} else if (data.password) {
$('.alert-comment-list-message-content').html(data.password);
$('.alert-comment-list-message').addClass('alert-warning').removeClass('alert-success').show();
view_comment_password(post_id, cmt_id);
return false;
} else if (data.success) {
view_comment('viewcomment', post_id, '', '', data.success);
init_comment_box();
}
},
error : function(data) {
alert('오류가 발생하였습니다.');
return false;
}
});
}
}
function comment_page(post_id, page) {
view_comment('viewcomment', post_id, page, '');
comment_cur_page = page;
}
function init_comment_box() {
$('#cmt_nickname').val('');
$('#cmt_password').val('');
$('#cmt_content').val('');
$('#captcha').trigger('click');
$('#captcha_key').val('');
$('#cmt_btn_submit').prop('disabled', false);
check_byte('cmt_content', 'char_count');
comment_box('', 'c');
}
var save_before = '';
var save_html = document.getElementById('comment_write_box').innerHTML;
function comment_box(cmt_id, work) {
var el_id;
// 댓글 아이디가 넘어오면 답변, 수정
if (cmt_id) {
if (work === 'c') {
el_id = 'reply_' + cmt_id;
} else {
el_id = 'edit_' + cmt_id;
}
} else {
el_id = 'comment_write_box';
}
if (save_before !== el_id) {
if (save_before) {
$('#' + save_before).css('display', 'none');
$('#' + save_before).html('');
}
$('#' + el_id).css('display', '');
$('#' + el_id).html(save_html);
// 댓글 수정
if (work === 'cu') {
$('#cmt_content').val($('#save_comment_' + cmt_id).val());
if (typeof char_count !== 'undefined') {
check_byte('cmt_content', 'char_count');
}
if ($('#secret_comment_' + cmt_id).val() === '1') {
$('#cmt_secret').prop('checked', true);
} else {
$('#cmt_secret').prop('checked', false);
}
}
$('#cmt_id').val(cmt_id);
$('#mode').val(work);
if (save_before) {
$('#captcha').trigger('click');
}
save_before = el_id;
}
}
comment_box('', 'c');
}