안녕하세요.
반갑습니다
1 .지금 보시면 댓글 입력란에 작성자 라고 있고 작성자 이름을 넣는 칸이 있는데 이것도 혹시 작성자가 댓글을 쓸때 작성자를 기입하지 않고 자동으로 암호화 되는 방법을 알고 싶네
요 그러니까 작성자를 따로 적지 않아도 암호화된 문자로 비밀법호만 넣을수 있게 가능할까요?
2. 상위 이미지에서 보면 작성자 암호화를 했더니 (여기 게시판 찾아서 암호화를 했습니다) 너무 길어져서 밑으로 밀리는데 한 8자리 정도로 줄일수가 있을까요?
감사합니다 ^^
안녕하세요~^^
KBoard 플러그인에서 게시글 및 댓글 작성자명을 수정하는 건
어떤 링크를 참고하셨는지요?
실제 추가하신 코드를 올려주시면 보다 정확한 답변을 받으실 수 있습니다.
에디터의 코드 스니펫 삽입 기능으로 코드를 올려주시겠어요?
고맙습니다.
테마의 functions.php 를 아래의 코드로 변환했구요
https://www.cosmosfarm.com/threads/document/27636 참고 하였습니다.
게시판 아이디를 지정해주는 if문을 삭제 하니 전체 게시판에 적용되게 되었습니다.
아래쪽은 댓글인거 같은데 ㅜㅜ 아직 기능이 안되고 있어요 ㅠㅠ
// 익명 암호화
add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4);
function my_kboard_document_insert($content_uid, $board_id, $content, $board){
{ // 실제 게시판 id로 적용해주세요.
if(!is_user_logged_in()){
$content->option->ip = kboard_user_ip();
}
$content->member_display = uniqid();
$content->updateContent();
}
}
add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 3);
function my_kboard_comments_insert($insert_id, $content_uid, $board){
if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
$content = new KBContent();
$content->initWithUID($content_uid);
$comment = new KBComment();
$comment->initWithUID($insert_id);
if(is_user_logged_in()){
if($comment->user_uid == $content->member_uid){
$comment->user_display = $content->member_display . ' (작성자)';
}
}
else if($content->option->ip == kboard_user_ip()){
$comment->user_display = $content->member_display . ' (작성자)';
}
$comment->update();
}
}
안녕하세요.
비회원 댓글 작성 시 작성자명을 입력하지 않고
랜덤 문자열로 표시하시려면 댓글 스킨 파일을 수정해주셔야 합니다.
FTP로 접속해서 /wp-content/plugins/kboard-comments/skin/사용중인스킨/list.php 파일에
아래의 코드를 찾아서
<?php if(is_user_logged_in()):?>
<input type="hidden" name="member_display" value="<?php echo $member_display?>">
<?php else:?>
<div class="comments-field field-member-display">
<label class="comments-field-label" for="comment_member_display_<?php echo $content_uid?>"><?php echo __('Author', 'kboard-comments')?></label>
<input type="text" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="<?php echo $temporary->member_display?>" placeholder="<?php echo __('Author', 'kboard-comments')?>..." required>
</div>
<div class="comments-field field-password">
<label class="comments-field-label" for="comment_password_<?php echo $content_uid?>"><?php echo __('Password', 'kboard-comments')?></label>
<input type="password" id="comment_password_<?php echo $content_uid?>" name="password" value="" placeholder="<?php echo __('Password', 'kboard-comments')?>..." required>
</div>
<?php endif?>
아래의 코드로 교체해보시겠어요?
<?php if(is_user_logged_in()):?>
<input type="hidden" name="member_display" value="<?php echo $member_display?>">
<?php else:?>
<?php if($board->id == '1'): // 실제 게시판 id로 적용해주세요.?>
<input type="hidden" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="익명">
<?php else:?>
<div class="comments-field field-member-display">
<label class="comments-field-label" for="comment_member_display_<?php echo $content_uid?>"><?php echo __('Author', 'kboard-comments')?></label>
<input type="text" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="<?php echo $temporary->member_display?>" placeholder="<?php echo __('Author', 'kboard-comments')?>..." required>
</div>
<?php endif?>
<div class="comments-field field-password">
<label class="comments-field-label" for="comment_password_<?php echo $content_uid?>"><?php echo __('Password', 'kboard-comments')?></label>
<input type="password" id="comment_password_<?php echo $content_uid?>" name="password" value="" placeholder="<?php echo __('Password', 'kboard-comments')?>..." required>
</div>
<?php endif?>
위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.
댓글 쪽 코드는
아래 링크를 참고해보시겠어요?
https://www.cosmosfarm.com/threads/document/36455#document-answer-36587
고맙습니다.
PHP uniqid 함수는 기본적으로 13자리로 표시됩니다.
앞에서부터 8자리는 초단위, 뒤의 5자리는 마이크로초단위를 16진수로 바꾼 값으로 표시됩니다.
문자열을 잘라서 표시하시려면 substr 함수를 사용하시면 될 듯합니다.
초단위는 마이크로초단위보다 비교적 시간이 길기 때문에
짧은 시간 동안 댓글이 달리면 앞부분이 고정되는 것처럼 보일 수 있습니다.
뒷부분 6자리로 표시되게 하시려면
uniqid() 부분을 substr(uniqid(), -6)로 모두 교체해보시겠어요?
8자리로 표시하시려면 -6 부분을 -8로 적용해보세요.
고맙습니다.
정말 제가 무지한건지 ㅜㅡㅜ 이해가 잘안가네요 하기사 제가 프로그래머도 아니니까 말이죠
일단 상위에 말씀 주신 코드로 FTP로 접속해서 /wp-content/plugins/kboard-comments/skin/사용중인스킨/list.php 파일을 수정했는데요
댓글창이 아예 없어졌어영 ㅜㅜ
그리고
PHP uniqid 함수는 기본적으로 13자리로 표시됩니다.
앞에서부터 8자리는 초단위, 뒤의 5자리는 마이크로초단위를 16진수로 바꾼 값으로 표시됩니다.
문자열을 잘라서 표시하시려면 substr 함수를 사용하시면 될 듯합니다.
초단위는 마이크로초단위보다 비교적 시간이 길기 때문에
짧은 시간 동안 댓글이 달리면 앞부분이 고정되는 것처럼 보일 수 있습니다.
뒷부분 6자리로 표시되게 하시려면
uniqid() 부분을 substr(uniqid(), -6)로 모두 교체해보시겠어요?
8자리로 표시하시려면 -6 부분을 -8로 적용해보세요.
고맙습니다.
요내용은 어떤 파일을 손을 봐야 하는지 모르겠습니다 ㅜㅜ
실제 편집하신 코드를 에디터의
코드 스니펫 삽입 기능으로 올려주시겠어요?
비회원으로도 확인 가능한 페이지 주소 알려주시면 살펴보겠습니다.
uniqid() 부분은 테마 쪽에 추가하신 코드 중에서 교체해보시겠어요?
kboard_document_insert 액션과 kboard_comments_insert 액션 쪽에서 수정해보세요.
고맙습니다.
1 . /wp-content/plugins/kboard-comments/skin/사용중인스킨/list.php 파일입니다
<?php
// 댓글 입력 필드 시작
ob_start();
?>
<?php if(is_user_logged_in()):?>
<input type="hidden" name="member_display" value="<?php echo $member_display?>">
<?php else:?>
<input type="hidden" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="익명">
<?php else:?>
<div class="comments-field field-member-display">
<label class="comments-field-label" for="comment_member_display_<?php echo $content_uid?>"><?php echo __('Author', 'kboard-comments')?></label>
<input type="text" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="<?php echo $temporary->member_display?>" placeholder="<?php echo __('Author', 'kboard-comments')?>..." required>
</div>
<?php endif?>
<div class="comments-field field-password">
<label class="comments-field-label" for="comment_password_<?php echo $content_uid?>"><?php echo __('Password', 'kboard-comments')?></label>
<input type="password" id="comment_password_<?php echo $content_uid?>" name="password" value="" placeholder="<?php echo __('Password', 'kboard-comments')?>..." required>
</div>
<?php endif?>
2. themes/테마/functoins.php 입니다.
// 익명 암호화
add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4);
function my_kboard_document_insert($content_uid, $board_id, $content, $board){
{ // 실제 게시판 id로 적용해주세요.
if(!is_user_logged_in()){
$content->option->ip = kboard_user_ip();
}
$content->member_display = uniqid();
$content->updateContent();
}
}
add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 3);
function my_kboard_comments_insert($insert_id, $content_uid, $board){
if($board->id == '1') $content = new KBContent();
$content->initWithUID($content_uid);
$comment = new KBComment();
$comment->initWithUID($insert_id);
if(is_user_logged_in()){
if($comment->user_uid == $content->member_uid){
$comment->user_display = $content->member_display . ' (작성자)';
}
}
else if($content->option->ip == kboard_user_ip()){
$comment->user_display = $content->member_display . ' (작성자)';
}
$comment->update();
}
}
입니다 잘부탁드립니다.
코드를 잘못 수정하신 듯합니다.
이전 댓글에 안내해드린 코드를 참고하셔서
아래의 코드를 추가해보시겠어요?
<?php if($board->id == '1'): // 실제 게시판 id로 적용해주세요.?>
고맙습니다.