안녕하세요 케이보드에 더욱더 큰 활성화를 위해 정말 기도하는 사람중한명입니다ㅠㅠ
두가지 질문을 드려용
1.적용은 테마펑션파일에 다음과 같은 방식으로 했습니다. 관리자일경우 12번게시판만 적용되게끔 하려고한것입니다.
add_action('kboard_skin_field_after_title', 'my_kboard_skin_field_after_title', 10 , 3);
function my_kboard_skin_field_after_title($field, $content, $board){
if($board->id == '12' && $board->isAdmin()){
?>
<div class="kboard-attr-row">
<label class="attr-name" for="kboard-input-author"><?php echo __('Author', 'kboard')?></label>
<div class="attr-value">
<input type="text" id="kboard-input-author" name="member_display" value="<?php echo $content->member_display?>">
</div>
</div>
<div class="kboard-attr-row">
<label class="attr-name">날짜</label>
<div class="attr-value"><input type="text" name="date" value="<?php echo $content->date?>"></div>
</div>
<?php
}
게시판에 작성자명은 name값 member_display를 갖는 인풋창을 만드니, 그 인풋창에다 쓴 것이 작성자로 변경이 잘됩니다.
근데 date쪽은 변경이 되질 않네요ㅠㅠ 반드시 글을 쓴뒤에 수정하면 변경이되는데, 아예 글을쓸때 날짜를 지정해주려하면 그 값으로 날짜가 표기되지 않습니다ㅠㅠ
글수정시 날짜변경이 아닌, 글을 쓸떄도 아예 날짜가 변경되려면 어떻게 해야하나요?ㅠ
2. 댓글도 마찬가지로, 댓글을 쓸때 작성자명과 날짜를 임의로 지정하고 싶습니다.
add_action('init', 'kboard_comments_field_reshape');
function kboard_comments_field_reshape(){
if($board->isAdmin()){
remove_action('kboard_comments_field', 'kboard_comments_field', 10, 4);
add_action('kboard_comments_field', 'my_kboard_comments_field', 10, 4);
}
}
function my_kboard_comments_field($field_html, $board, $content_uid, $comment_builder){
?>
<div class="comments-field">
<label class="comments-field-label" for="comment_member_display"><?php echo __('Author', 'kboard-comments')?></label>
<input type="text" id="comment_member_display" name="member_display" value="" placeholder="<?php echo __('Author', 'kboard-comments')?>..." required>
</div>
<div class="comments-field">
<label class="comments-field-label" for="comment_date"><?php echo __('date', 'kboard-comments')?></label>
<input type="text" id="comment_date" name="date" value="" placeholder="<?php echo __('date', 'kboard-comments')?>..." required>
</div>
<?php
}
역시 댓글도 게시판처럼 작성자는 잘 변경이 되는데, 날짜는 작성시 바로 적용이 안됩니다ㅠㅠ
이것저것 삽질해보고있는데ㅠㅠㅠ 스레드봇님 꼭 도와주십쇼ㅠㅠㅠ
게시판이나 댓글이나 작성시에도 바로 날짜를 임의지정해서 넣고 싶슴다ㅠ
안녕하세요~^^
KBoard 플러그인에서 작성일을 직접 입력한 값으로 적용하시려면
올려주신 코드 아래에
아래의 코드도 추가해보시겠어요?
add_filter('kboard_insert_data', 'my_kboard_insert_data', 10, 2);
function my_kboard_insert_data($data, $board_id){
if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
$date = isset($_POST['date']) ? sanitize_text_field($_POST['date']) : '';
if($date){
$data['date'] = $date;
}
}
return $data;
}
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로 적용해주세요.
$date = isset($_POST['date']) ? sanitize_text_field($_POST['date']) : '';
if($date){
$comment = new KBComment();
$comment->initWithUID($insert_id);
$comment->created = $date;
$comment->update();
}
}
}
위의 코드에서 $board_id == '1' 부분은 실제 게시판 id로 적용해주세요.
날짜 입력 시에는 20191115120000 이런식으로 년월일시분초 형식으로 입력해보시겠어요?
고맙습니다.
kboard_comments_field_reshape 함수 내에서
$board->isAdmin() 함수는 정상적으로 동작하지 않습니다.
아래의 코드로 교체해서도 확인해보시겠어요?
add_action('init', 'kboard_comments_field_reshape');
function kboard_comments_field_reshape(){
$uid = kboard_uid();
if($uid){
$content = new KBContent();
$content->initWithUID($uid);
$board = $content->getBoard();
if($board->isAdmin()){
remove_action('kboard_comments_field', 'kboard_comments_field', 10, 4);
add_action('kboard_comments_field', 'my_kboard_comments_field', 10, 4);
}
}
}
고맙습니다.